Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.callab.ai/llms.txt

Use this file to discover all available pages before exploring further.

User can create custom integrations to connect Callab AI with external systems. Integrations automate workflows between calls and third-party platforms.
Integrations are advanced workflows that execute automatically based on call events. Different from webhooks which send data to a single endpoint.

What are Integrations?

Integrations allow user to:
  • Connect to external APIs
  • Trigger multi-step workflows
  • Transform and route data
  • Integrate with CRM, calendar, email
  • Automate business processes
  • Build custom logic flows
Use Cases:
  • Update CRM after calls
  • Send emails to leads
  • Create calendar appointments
  • Post to Slack/Teams
  • Update databases
  • Trigger marketing automation
  • Sync with helpdesk systems

Integrations vs Webhooks

Webhooks:
  • Simple POST request
  • Single endpoint
  • One-way data send
  • User handles all logic
  • Good for simple cases
Integrations:
  • Multi-step workflows
  • Multiple actions
  • Built-in transformations
  • No-code logic builder
  • Good for complex automation

Create Integration

User can create integration:
  1. Navigate to Integrations section
  2. Click “Create Integration” button
  3. Configure integration steps

Step 1: Integration Configuration

Integrations > new integration > step 1 > section 1 User must configure integration basics: Integration Name:
  • Enter descriptive name
  • Example: “Update CRM on Call End”
  • Example: “Send Welcome Email”
  • Example: “Create Support Ticket”
  • Helps identify integration
Trigger Event: Integrations > new integration > step 1 > section 2 User selects which event triggers integration: Call Started:
  • Fires when call begins
  • Use for: Call notifications, live updates
  • Available data: Caller info, agent info
Call Answered:
  • Fires when contact answers
  • Use for: Answer tracking, real-time alerts
  • Available data: Call start time, caller info
Call Ended:
  • Fires when call completes (most common)
  • Use for: CRM updates, follow-ups
  • Available data: Full call details, outcomes
Call Outcome Extracted:
  • Fires when outcomes processed
  • Use for: Data routing, conditional logic
  • Available data: Extracted outcomes, transcript
Voicemail Detected:
  • Fires when voicemail detected
  • Use for: Voicemail notifications
  • Available data: Voicemail status
Transfer Completed:
  • Fires when call transferred
  • Use for: Transfer tracking
  • Available data: Transfer details
Filter Conditions: Integrations > new integration > step 1 > section 3 User can filter which calls trigger integration: By Campaign:
  • Select specific campaigns
  • Example: Only “Sales Outbound”
  • Narrows trigger scope
By Agent:
  • Select specific agents
  • Example: Only “Support Agent”
  • Filters by agent type
By Outcome:
  • Filter by call outcomes
  • Example: Only if interested == true
  • Conditional execution
By Call Duration:
  • Filter by call length
  • Example: Only calls > 60 seconds
  • Excludes short/dropped calls
By Phone Number:
  • Filter by caller/recipient number
  • Example: Only specific area codes
  • Geographic filtering
Filter Example:
Trigger: Call Ended
Campaign: Sales Outbound Q1
Outcome Condition: interested == true
Minimum Duration: 120 seconds
Click “Next” to configure actions.

Step 2: Add Actions

Integrations > new integration > step 2 > section 1 User must add actions to execute: Action Types: HTTP Request:
  • Call external API
  • POST/GET/PUT/DELETE
  • Send data to any endpoint
  • Most flexible option
Email:
  • Send email notification
  • To customer or team
  • Use templates
  • Include call data
Slack:
  • Post message to Slack
  • Specific channel
  • Rich formatting
  • Team notifications
CRM Integration:
  • Update Salesforce
  • Update HubSpot
  • Create/update records
  • Sync call data
Calendar:
  • Create calendar event
  • Update appointment
  • Send invites
  • Book meetings
Database:
  • Insert record
  • Update record
  • Query data
  • Store call info
Conditional Logic:
  • If/then/else branches
  • Multiple conditions
  • Different actions per outcome
  • Complex workflows

Configure Action: HTTP Request

Integrations > new integration > step 2 > section 2 User configures HTTP request action: Request URL:
  • Enter endpoint URL
  • Example: https://api.crm.com/leads
  • Must be valid URL
  • HTTPS recommended
HTTP Method:
  • GET: Retrieve data
  • POST: Create resource (most common)
  • PUT: Update resource
  • DELETE: Remove resource
  • PATCH: Partial update
Headers:
  • Add HTTP headers
  • Authorization tokens
  • Content-Type
  • Custom headers
Headers Example:
Authorization: Bearer sk_abc123xyz
Content-Type: application/json
X-API-Key: your_api_key
Request Body: User can build request body with call data: Available Variables:
  • {{call_id}} - Unique call ID
  • {{caller_number}} - Caller phone number
  • {{duration}} - Call duration (seconds)
  • {{timestamp}} - Call timestamp
  • {{agent_name}} - Agent name
  • {{campaign_name}} - Campaign name
  • {{transcript}} - Call transcript
  • {{recording_url}} - Recording URL
  • {{outcome.field_name}} - Extracted outcomes
  • {{contact.field_name}} - Contact data
Body Template Example:
{
  "phone": "{{caller_number}}",
  "call_duration": {{duration}},
  "interested": {{outcome.interested}},
  "notes": "{{outcome.notes}}",
  "source": "Callab AI - {{campaign_name}}",
  "call_recording": "{{recording_url}}"
}
Response Handling:
  • Save response data
  • Use in subsequent actions
  • Error handling
  • Retry logic

Add Multiple Actions

Integrations > new integration > step 2 > add new step section 1 User can add multiple sequential actions: Click “Add Action”:
  • Add another action
  • Executes after previous
  • Can use previous response data
  • Build complex workflows
Action Sequence Example:
Action 1: HTTP Request to CRM
  → Save response as {{lead_id}}

Action 2: Send Email
  → To: {{contact.email}}
  → Subject: "Follow-up from Call"
  → Body: Include {{lead_id}}

Action 3: Post to Slack
  → Channel: #sales
  → Message: "New lead {{lead_id}} created"

Conditional Actions

Integrations > new integration > step 2 > add new step section 2 User can add conditional logic: If/Then/Else Branches: Condition:
  • Check outcome value
  • Example: outcome.interested == true
  • Example: duration > 180
  • Example: outcome.appointment_booked == true
Then Actions:
  • Execute if condition true
  • Example: Send to sales team
  • Can have multiple actions
Else Actions:
  • Execute if condition false
  • Example: Add to nurture campaign
  • Optional branch
Conditional Example:
IF outcome.interested == true
THEN:
  - HTTP Request: Create lead in CRM
  - Email: Send to sales team
  - Slack: Post to #hot-leads
ELSE:
  - HTTP Request: Add to nurture list
  - Email: Send thank you note
Multiple Conditions:
  • AND logic: All must be true
  • OR logic: Any can be true
  • Nested conditions
  • Complex decision trees
Click “Next” to review.

Step 3: Review and Test

Integrations > new integration > step 3 User reviews integration configuration: Review Summary:
  • Integration name
  • Trigger event
  • Filter conditions
  • All actions listed
  • Action sequence
Test Integration:
  • Click “Test” button
  • Uses sample data
  • Executes all actions
  • Shows results
  • Verifies connectivity
Test Results:
  • Each action status
  • HTTP response codes
  • Error messages (if any)
  • Execution time
  • Success/failure indicators
Save Integration:
  • Click “Create” to save
  • Integration activates immediately
  • Triggers on matching calls
  • Logs all executions

Integration Examples

Example 1: CRM Lead Creation

Goal: Create lead in CRM when interested prospect calls Configuration:
Name: Create CRM Lead - Interested Callers
Trigger: Call Ended
Filters:
  - Campaign: Sales Outbound
  - Outcome: interested == true
  - Duration: > 60 seconds

Actions:
1. HTTP Request to CRM
   URL: https://api.crm.com/leads
   Method: POST
   Headers:
     Authorization: Bearer {{api_key}}
   Body:
     {
       "first_name": "{{contact.first_name}}",
       "last_name": "{{contact.last_name}}",
       "phone": "{{caller_number}}",
       "company": "{{contact.company}}",
       "source": "AI Sales Call",
       "interest_level": "{{outcome.interest_level}}",
       "notes": "{{outcome.notes}}",
       "call_recording": "{{recording_url}}"
     }

2. Send Email to Sales
   To: sales@company.com
   Subject: New Hot Lead from AI Call
   Body: Lead {{contact.first_name}} showed interest...

3. Post to Slack
   Channel: #sales-leads
   Message: 🔥 New lead: {{contact.first_name}} from {{contact.company}}

Example 2: Appointment Booking

Goal: Create calendar event when appointment booked Configuration:
Name: Book Calendar Appointment
Trigger: Call Outcome Extracted
Filters:
  - Outcome: appointment_booked == true

Actions:
1. HTTP Request to Calendar API
   URL: https://api.calendar.com/events
   Method: POST
   Body:
     {
       "title": "Meeting with {{contact.first_name}} {{contact.last_name}}",
       "date": "{{outcome.appointment_date}}",
       "time": "{{outcome.appointment_time}}",
       "attendees": ["{{contact.email}}"],
       "notes": "{{outcome.meeting_notes}}"
     }

2. Send Email Confirmation
   To: {{contact.email}}
   Subject: Appointment Confirmed
   Body: Your appointment is confirmed for {{outcome.appointment_date}}...

3. HTTP Request to CRM
   URL: https://api.crm.com/contacts/{{contact.id}}/update
   Method: PUT
   Body:
     {
       "next_appointment": "{{outcome.appointment_date}}",
       "status": "appointment_scheduled"
     }

Example 3: Support Ticket Creation

Goal: Create support ticket for issues reported during call Configuration:
Name: Create Support Ticket
Trigger: Call Ended
Filters:
  - Campaign: Customer Support
  - Outcome: issue_reported == true

Actions:
1. HTTP Request to Helpdesk
   URL: https://api.helpdesk.com/tickets
   Method: POST
   Body:
     {
       "customer_phone": "{{caller_number}}",
       "customer_name": "{{contact.first_name}} {{contact.last_name}}",
       "issue_type": "{{outcome.issue_type}}",
       "priority": "{{outcome.priority}}",
       "description": "{{outcome.issue_description}}",
       "call_transcript": "{{transcript}}",
       "recording_url": "{{recording_url}}"
     }

2. IF outcome.priority == "high"
   THEN:
     - Send Email to Manager
     - Post to Slack #urgent-support
   ELSE:
     - Add to regular queue

Example 4: Multi-Step Sales Workflow

Goal: Complex workflow with multiple systems Configuration:
Name: Complete Sales Workflow
Trigger: Call Ended
Filters:
  - Campaign: Sales Outbound
  - Duration: > 90 seconds

Actions:
1. HTTP Request: Check if lead exists in CRM
   URL: `https://api.crm.com/leads/search?phone={{caller_number}}`
   Method: GET
   Save response as: `{{existing_lead}}`

2. IF `{{existing_lead}}` exists
   THEN:
     - Update existing lead
     - Add call notes
     - Update status
   ELSE:
     - Create new lead
     - Set source as AI call

3. IF `outcome.interested == true`
   THEN:
     - Assign to sales rep
     - Create follow-up task
     - Send internal notification
     - Add to hot leads list

4. IF `outcome.appointment_booked == true`
   THEN:
     - Create calendar event
     - Send confirmation email
     - Add to upcoming meetings
     - Notify assigned rep

5. Always:
   - Log call to database
   - Update analytics
   - Send summary email to team

Managing Integrations

View Integrations:
  • Navigate to Integrations section
  • See all active integrations
  • Filter by trigger event
  • Search by name
Edit Integration:
  • Click integration name
  • Modify any settings
  • Update actions
  • Change conditions
  • Save changes
Enable/Disable:
  • Toggle integration on/off
  • Keeps configuration
  • Stops execution
  • Can re-enable anytime
Delete Integration:
  • Permanently removes
  • Cannot be undone
  • Execution logs preserved
Duplicate Integration:
  • Copy existing integration
  • Modify for new use case
  • Saves configuration time

Integration Logs

User can view execution logs: Log Information:
  • Timestamp of execution
  • Trigger event details
  • Call information
  • Each action result
  • Success/failure status
  • Error messages
  • Execution time
  • Response data
Filter Logs:
  • By integration
  • By status (success/failed)
  • By date range
  • By campaign
Debug Failed Integrations:
  • View error details
  • Check request/response
  • Identify issues
  • Test fixes

Variables Reference

Call Variables:
  • {{call_id}} - Unique call identifier
  • {{caller_number}} - Caller phone number
  • {{recipient_number}} - Recipient phone number
  • {{duration}} - Call duration in seconds
  • {{timestamp}} - ISO 8601 timestamp
  • {{call_status}} - answered/no-answer/voicemail
  • {{recording_url}} - Call recording URL
  • {{transcript}} - Full call transcript
Agent Variables:
  • {{agent_id}} - Agent identifier
  • {{agent_name}} - Agent name
  • {{agent_language}} - Agent language
Campaign Variables:
  • {{campaign_id}} - Campaign identifier
  • {{campaign_name}} - Campaign name
  • {{campaign_type}} - inbound/outbound
Contact Variables:
  • {{contact.first_name}} - Contact first name
  • {{contact.last_name}} - Contact last name
  • {{contact.email}} - Contact email
  • {{contact.company}} - Contact company
  • {{contact.*}} - Any custom contact field
Outcome Variables:
  • {{outcome.field_name}} - Any extracted outcome
  • Example: {{outcome.interested}}
  • Example: {{outcome.appointment_date}}
  • Example: {{outcome.notes}}
Dynamic Variables:
  • {{variable_name}} - Agent dynamic variables
  • Populated from contact mapping
  • Used during call
System Variables:
  • {{workspace_id}} - Workspace identifier
  • {{workspace_name}} - Workspace name
  • {{execution_id}} - Integration execution ID

Best Practices

Integration Design:
  • Keep integrations focused
  • One clear purpose per integration
  • Use descriptive names
  • Document complex logic
  • Test thoroughly
Error Handling:
  • Add retry logic for failures
  • Handle API errors gracefully
  • Log all errors
  • Set up error notifications
  • Monitor execution logs
Performance:
  • Minimize API calls
  • Use batch operations when possible
  • Avoid long-running actions
  • Optimize request payloads
  • Cache data when appropriate
Security:
  • Use HTTPS for all requests
  • Store API keys securely
  • Rotate credentials regularly
  • Follow least privilege principle
  • Audit integration access
Maintenance:
  • Review logs regularly
  • Monitor success rates
  • Update API endpoints as needed
  • Test after changes
  • Keep documentation current

Troubleshooting

Integration not triggering:
  • Is integration enabled?
  • Do filter conditions match?
  • Is trigger event correct?
  • Check integration logs
  • Verify call matches filters
Action failing:
  • Is API endpoint correct?
  • Are credentials valid?
  • Is request format correct?
  • Check API rate limits
  • Review error in logs
Variables not populating:
  • Is variable name correct?
  • Does field exist in call data?
  • Check variable syntax (double braces)
  • Review outcome extraction
  • Test with sample data
Slow execution:
  • Check API response times
  • Reduce number of actions
  • Optimize request payloads
  • Remove unnecessary steps
  • Check external service status

Advanced Topics

Transformations:
  • Format data before sending
  • Convert timestamps
  • Calculate values
  • String manipulations
  • Data mapping
Loops:
  • Iterate over arrays
  • Process multiple items
  • Batch operations
  • Repeat actions
Error Recovery:
  • Automatic retries
  • Fallback actions
  • Error notifications
  • Graceful degradation
Rate Limiting:
  • Respect API limits
  • Queue actions
  • Throttle requests
  • Batch when possible
Testing:
  • Use test mode
  • Sample data testing
  • Dry run executions
  • Validate before production

Integration Templates

Callab provides pre-built templates: CRM Templates:
  • Salesforce lead creation
  • HubSpot contact update
  • Pipedrive deal creation
Communication Templates:
  • Slack notifications
  • Email workflows
  • SMS follow-ups
Calendar Templates:
  • Google Calendar booking
  • Outlook appointment
  • Calendly integration
Custom Templates:
  • Save your integrations as templates
  • Share with team
  • Reuse across workspaces

Next Steps

After creating integration:
  1. Test thoroughly - Verify all actions work
  2. Monitor logs - Check execution success
  3. Optimize performance - Improve speed
  4. Document workflow - Record integration purpose
  5. Train team - Ensure team understands flow
Start with simple integrations (single HTTP request) before building complex multi-step workflows. Test each action independently first.
Rate Limits:Integrations execute in real-time during calls. Ensure external APIs can handle your call volume. Add error handling for rate limit errors.