Integrations
Connect your CRM, messaging, and webhook integrations so signals flow in and actions execute out.
Overview
Integrations connect external systems to the Signals pipeline. Every integration follows the same contract:
Inbound Event → Normalize → Pipeline → ActionsYou don't need to understand the internals. Just connect your accounts and signals flow automatically.
Supported integrations
GoHighLevel (GHL)
Status: Full integration (OAuth, inbound webhooks, outbound messaging, CRM write-back)
What it does:
- Receives inbound messages, contact creates, opportunity updates, form submissions, and appointments via webhook
- Sends replies through GHL Conversations API
- Updates contacts (tags, custom fields, notes) and manages opportunity pipeline stages
- Per-location tenant mapping for agency/sub-account setups
Supported events: Messages, contact creates/updates/deletes, opportunity creates/deletes, form submissions, appointments (create/update/delete)
Setup:
Option 1: GHL Marketplace (recommended)
- Install the Warpflow app from the GHL Marketplace
- Your account is provisioned automatically
- Complete the claim flow by verifying your email in the Signals dashboard
- Webhooks register automatically and messages start flowing
Option 2: Manual OAuth
- Go to Voice & Channels → Connections in the sidebar
- Click Connect GoHighLevel and authorize access to your GHL location
- Webhooks register automatically
Tokens are stored encrypted and refreshed automatically. For agencies, installing at the agency level automatically maps all locations to tenant configurations.
Voice & SMS
Status: Full integration (voice calls, SMS, WebRTC softphone, voicemail, recordings)
What it does:
- Provisions phone numbers (DID and toll-free)
- Receives inbound calls and routes to ring groups via WebRTC or PSTN forwarding
- Sends outbound SMS with automatic business name prepend (10DLC compliant)
- Handles voicemail with auto-transcription
- Records calls with encrypted storage and secure playback
- Powers the in-browser softphone for agents
Setup:
Phone numbers and voice features are configured through the Phone Setup wizard in the dashboard. See Set up phone & voice.
SMS requires 10DLC registration. See SMS Compliance.
Twilio
Status: Inbound webhooks + outbound SMS only
What it does:
- Receives inbound SMS and missed call webhooks
- Sends outbound SMS
- Validates webhook signatures for security
Note: Voice calls are handled by the Voice & SMS integration, not Twilio. Twilio is an SMS-only integration.
Setup:
- Configure your Twilio webhook URLs to point to the Warpflow API endpoints (provided during onboarding)
- Set your Twilio credentials in Voice & Channels → Connections
Zapier
Status: Inbound triggers + outbound actions
What it does:
- Receives events from any Zapier-connected app via webhook
- Provides triggers (new signal, lead scored, lead escalated) for Zapier workflows
- Supports authentication via API key
Setup:
- Use the Warpflow Zapier integration (or configure a custom webhook)
- Events sent to the Zapier webhook endpoint are normalized and processed through the full pipeline
Status: New email connections are not available yet
What it does:
- Accounts with an existing connection can view its current status
- Existing connections remain manageable, and account owners can disconnect them
- Account policy may restrict availability further
Setup:
If your account already has an email connection, use the existing email page to review or disconnect it.
Custom webhooks
Status: Available for any system that can POST JSON
What it does:
- Accepts flexible JSON payloads from any source
- Normalizes and processes through the pipeline
- Supports async mode (default, full pipeline) and sync mode (rules-only, immediate response)
Sync mode: Get an immediate response with classification, score, and matched rules. Useful for form submissions, Typeform, Calendly, or any system that needs a real-time response.
Async mode: The event is queued for full pipeline processing (classify → score → route → reply → actions). The endpoint returns immediately with a confirmation.
Example payload:
{
"contact": {
"name": "Jane Doe",
"phone": "+15551234567",
"email": "jane@example.com"
},
"content": {
"body": "I need a quote for a kitchen remodel. Budget is $40k.",
"subject": "Quote Request"
},
"channel": "webhook",
"source": "typeform"
}Ideal for: Typeform submissions, Calendly events, custom CRM webhooks, IoT alerts, monitoring systems, or anything that can POST JSON.
How integrations work in the pipeline
┌─────────────────────────────────────────────┐
│ INBOUND SOURCES │
│ GHL │ Voice/SMS │ Existing email │ Zapier │ Custom │
└──┬───┴───┬────┴───┬────┴───┬────┴───┬───────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
┌─────────────────────────────────────────────┐
│ NORMALIZE │
│ Each source converts to a standard format │
└──────────────────┬──────────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ PIPELINE (same for all sources) │
│ classify → score → route → reply → guard │
└──────────────────┬──────────────────────────┘
▼
┌─────────────────────────────────────────────┐
│ ACTION EXECUTION │
│ Send message │ Update CRM │ Escalate │
│ (GHL/SMS) │ (GHL/...) │ (Slack/SMS) │
└─────────────────────────────────────────────┘Email represents an existing connection in this diagram; new email connections are not available yet.
The key insight: every integration flows through the same pipeline. A GHL inbound message and a custom webhook event get the same classification, scoring, routing, and Signal Guard treatment.
Outbound adapters
When routing rules fire actions, the system uses provider-specific adapters:
| Action | GHL Adapter | Voice & SMS Adapter | Twilio Adapter | No Adapter (dry-run) |
|---|---|---|---|---|
| send_template | GHL Conversations | SMS | SMS | Logged only |
| update_crm | GHL Contacts/Opps | — | — | Logged only |
| escalate | GHL + Slack | SMS + Slack | SMS + Slack | Logged only |
| forward_call | — | Call Control | — | Logged only |
Actions degrade gracefully. If no adapter is connected, the action logs what it would have done instead of failing.
CRM operations
The update_crm action supports these operations:
| Operation | Description |
|---|---|
create_contact | Create a new contact in the CRM |
update_contact | Update existing contact fields |
add_note | Add a note to the contact record |
add_tag | Tag the contact (for example, "hot-lead," "ai-scored") |
update_stage | Move an opportunity to a pipeline stage |
Example: hot lead pipeline rule
{
"conditions": [{ "field": "score.tier", "op": "eq", "value": "hot" }],
"actions": [
{
"type": "update_crm",
"data": {
"operation": "update_stage",
"fields": {
"pipeline_id": "sales_pipeline_001",
"stage_id": "qualified",
"monetary_value": 5000
}
}
},
{
"type": "update_crm",
"data": {
"operation": "add_tag",
"fields": { "tags": ["hot-lead", "ai-scored"] }
}
}
]
}AI provider
Voice & Channels → Connections → AI Provider lets you configure how AI features (classification, scoring, reply generation, Signal Guard judge) are powered:
- Platform-managed (default): Warpflow provides the AI. No API key needed. Cost included in your plan.
- Bring Your Own Key (BYOK): Enter your own API key. Keys are stored securely. Use the "Test" button to validate your key before saving.
Tips
- GHL is the primary integration. It provides the richest feature set (messaging, CRM, pipeline management).
- Custom webhooks are the fastest path for any system not directly supported.
- Use sync mode for custom webhooks when you need an immediate response (for example, form submission acknowledgment).
- Check the Connections page to verify integration status and troubleshoot connectivity issues.
- Actions degrade gracefully. You can configure
update_crmrules before connecting a CRM. They log in dry-run mode until you connect.
For developers
Building a custom integration or connecting via API? See the Developer Docs for API authentication, webhook payloads, supported API operations, Zapier actions, and code examples.
Test runner
Simulates a signal through the full pipeline so you can preview classification, scoring, routing, and reply generation before going live.
Industry presets
One-click configuration that loads routing rules, templates, brand voice, scoring weights, and Signal Guard rules tailored to your industry.