This guide shows how to create a Custom AI Action in Spur that automatically syncs lead data with Runo CRM when prospects express interest through WhatsApp, Instagram, Facebook, or Live Chat.
Prerequisites
Active Spur account with AI Actions access
Runo CRM API key (obtain from your Runo dashboard). Their docs are available here.
Basic understanding of JSON and API calls
Step 1: Open the Actions Workspace
In Spur's left rail, navigate to AI → Actions.
Click Create New Action under Create Custom Action.
Step 2: Define the Action
Fill in the following fields:
Field | Value | Purpose |
Action Name |
| Unique identifier (no spaces) |
When to use this action | "When a user shows interest in our services, wants a callback, requests a quote, or asks to be contacted by sales. Examples: 'I'm interested in your property', 'Can someone call me?', 'I want more details', 'Schedule a meeting'" | LLM trigger conditions |
Parameters | Click + Add Parameter and add: | Variables for API request |
| - | Customer's full name |
| - | Phone with country code |
| - | Customer's email |
| - | Interest/requirements |
Available Channels | ✓ WhatsApp, ✓ Instagram, ✓ Facebook, ✓ Live Chat | Enable all relevant channels |
Click Next →.
Step 3: Configure the HTTP Request
Basic Configuration
Request Method:
POST
Request URL:
https://api.runo.in/api/crm/allocations
Headers
Click + Add Field under Headers:
Key | Value |
|
|
|
|
Request Body
Click + Add Field under Body and configure as JSON:
{ "customer": { "name": "{{name}}", "phoneNumber": "{{phone_number}}", "email": "{{email}}" }, "priority": 2, "notes": "Lead from Spur - {{notes}}", "processName": "Spur Leads", "assignedTo": "+919876543210" }
Parameter Mapping
Use +Param button to insert:
{{name}}
,{{phone_number}}
,{{email}}
,{{notes}}
Replace
+919876543210
with your sales team member's phone (with country code)Adjust
processName
to match your Runo CRM process structure
Click Save.
Step 4: Response Handling
Choose Send Full Response for simplicity.
Test the Integration
Click Run Test
Enter sample data:
Name: "John Doe"
Phone: "+919999999999"
Email: "[email protected]"
Notes: "Interested in 2BHK apartment"
Verify successful response from Runo API
Click Save Configuration
Step 5: Enable the Action
Return to AI → Actions and toggle your runoLeadSync
action ON.
The action is now live and will automatically trigger when users express interest.
Alternative API Endpoints
Option 1: Create Interaction (Recommended for Tracking)
POST https://api.runo.in/api/crm/interactions
Request Body:
{ "customer": { "name": "{{name}}", "phoneNumber": "{{phone_number}}", "email": "{{email}}" }, "priority": 2, "notes": "Spur lead - {{notes}}. Channel: WhatsApp/Instagram/Facebook", "processName": "Spur Leads", "assignedTo": "+919876543210" }
Option 2: Multiple Lead Sources
For different lead priorities, create separate actions:
High Priority Leads (runoHotLeadSync
):
{ "customer": { "name": "{{name}}", "phoneNumber": "{{phone_number}}", "email": "{{email}}" }, "priority": 3, "notes": "HOT lead from Spur - {{notes}}", "processName": "Hot Leads" }
Step 6: Enhance with Smart Triggers
Advanced Trigger Examples
For Real Estate:
"When users ask about properties, flats, apartments, buying/selling real estate, property investment, home loans, or express interest in viewing properties. Examples: 'Show me 2BHK flats', 'I want to buy a house', 'Property rates in Bangalore'"
For General Business:
"When users want to know pricing, request quotes, ask for consultations, or show purchase intent. Examples: 'What are your rates?', 'I need a quote', 'Can we discuss this?', 'I'm ready to buy'"
Step 7: Monitor and Debug
View Execution Logs
Go to AI → Automations
Check execution status, payloads, and responses
Use View Trigger for detailed request/response inspection
Common Issues & Fixes
Issue | Cause | Solution |
Action never fires | Vague trigger description | Add specific keywords like "interested", "callback", "quote" |
403 Forbidden | Invalid API key | Verify Runo API key in headers |
400 Bad Request | Missing required fields | Ensure |
Agent asks for phone repeatedly | Parameter name mismatch | Use exact parameter name: |
Step 8: Advanced Configuration
Multi-Process Routing
Create different actions for different lead sources:
{ "processName": "{{source}}-leads" }
Add source
parameter with options: "whatsapp", "instagram", "facebook", "webchat"
Lead Scoring Integration
Add dynamic priority based on user behavior:
{ "priority": "{{lead_score}}", "userFields": [ { "name": "Source", "value": "Spur-{{channel}}" }, { "name": "Lead_Score", "value": "{{lead_score}}" } ] }
Step 9: Testing Checklist
Test with real phone numbers (with country codes)
Verify leads appear in Runo CRM dashboard
Check assignment to correct team members
Validate custom fields and notes
Test across all enabled channels (WhatsApp, Instagram, etc.)
Step 10: Scaling the Integration
Create Additional Actions:
Follow-up Scheduler - Books appointments via Runo
Lead Status Updates - Updates lead progression
Customer Data Enrichment - Adds conversation context
Best Practices:
Use specific process names for different campaigns
Include UTM parameters in notes for tracking
Set up automated lead assignment rules
Monitor API rate limits (Runo allows reasonable usage)
Complete API Reference
Required Headers:
Content-Type: application/json Auth-Key: YOUR_RUNO_API_KEY
Create Allocation Endpoint:
POST https://api.runo.in/api/crm/allocations
Create Interaction Endpoint:
POST https://api.runo.in/api/crm/interactions
Both endpoints accept the same customer object structure and will create/update leads in your Runo CRM automatically.
Success! Your Spur AI agent will now automatically sync qualified leads to Runo CRM, ensuring no prospect falls through the cracks.