Getting Started — Alvio Integration
This guide walks you step by step through integrating Alvio with your system. After a first failed call attempt, Alvio takes over on WhatsApp to qualify the lead and schedule an appointment when relevant.
Don't have a custom CRM?
This guide is for companies with their own system or a custom CRM that requires technical integration.
If you don't need deep integration, Alvio can simply provide a shared calendar that your teams subscribe to. Each confirmed appointment appears automatically with all details (summary, transcript, contact info). Contact us for this option.
Flow overview
┌─────────────────────────────────────────────────────────────────────────┐
│ YOUR SYSTEM │
│ │
│ Call #1 failed ──────▶ Send lead to Alvio (POST webhook) │
│ (no answer / busy) { crm_contact_id, phone_number } │
│ │
└─────────────────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ ALVIO │
│ │
│ WhatsApp contact ──────▶ Qualification ──────▶ Booking │
│ │
└─────────────────────────────────────┬───────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ YOUR SYSTEM │
│ │
│ Receive Alvio status ──────▶ Update CRM │
│ (MEETING_BOOKED / NO_WHATSAPP / CONTACT_STOP_REQUESTED) │
│ │
└─────────────────────────────────────────────────────────────────────────┘Integration checklist
Phase 1 — Preparation (Your team)
| # | Task | Owner | Status |
|---|---|---|---|
| 1.1 | Identify the trigger in your system (e.g. call #1 failed) | Business | ☐ |
| 1.2 | Define fields to send to Alvio (crm_contact_id, phone_number, name, etc.) | Business | ☐ |
| 1.3 | Prepare a webhook endpoint to receive Alvio statuses | Tech | ☐ |
| 1.4 | Define CRM actions for each status (MEETING_BOOKED, CONTACT_STOP_REQUESTED, etc.) | Business + Tech | ☐ |
Phase 2 — Configuration (Alvio + You)
| # | Task | Owner | Status |
|---|---|---|---|
| 2.1 | Retrieve the source URL and token from the campaign | Alvio | ☐ |
| 2.2 | Configure a receiving destination and subscriptions in Webhooks | Your tech team | ☐ |
| 2.3 | WhatsApp Business number configuration | Your marketing team | ☐ |
| 2.4 | Create and approve WhatsApp templates | Your marketing team | ☐ |
| 2.5 | Connect WhatsApp number to Alvio | Alvio + You | ☐ |
Phase 3 — Development (Your team)
| # | Task | Description | Status |
|---|---|---|---|
| 3.1 | Send leads | Implement POST call to Alvio webhook | ☐ |
| 3.2 | Receive statuses | Implement callback endpoint | ☐ |
| 3.3 | Handle MEETING_BOOKED | Create appointment in CRM + notify sales rep | ☐ |
| 3.4 | Handle NO_WHATSAPP | Mark the contact as unreachable on WhatsApp | ☐ |
| 3.5 | Handle CONTACT_STOP_REQUESTED | Stop calls or all contact according to data.scope | ☐ |
| 3.6 | Handle SEND_FAILED | Investigate the error and update CRM tracking | ☐ |
What you need to prepare
1. Sending leads to Alvio
Your system must send an HTTP POST when a call fails:
{
"crm_contact_id": "CRM_123456",
"phone_number": "+33612345678"
}Recommended optional fields: name, email, business context, assigned rep. See the webhook integration guide for the full payload.
2. Callback endpoint (receiving statuses)
You must expose an HTTPS URL to receive Alvio events:
POST https://your-domain.com/api/alvio/callbackCampaign notifications use event_type: "update" and an event_name. Configure a subscription for each event your CRM needs.
| Event | Meaning | Suggested action |
|---|---|---|
NO_WHATSAPP | Contact unreachable on WhatsApp | Plan another permitted channel |
CONTACT_STOP_REQUESTED | Confirmed request to stop contact | Apply all_contact or phone_calls according to data.scope |
MEETING_BOOKED | Appointment confirmed | Sync the appointment and notify the sales rep |
LEAD_RECEIVED | Lead accepted by the campaign source | Track entry into Alvio |
ESCALATION | Human follow-up required | Create a task; read data.urgent for callback priority |
SEND_FAILED | Send attempt failed | Investigate the cause and update tracking |
MESSAGE_SENT | Campaign message sent | Track progress without inferring delivery or reading |
REPLY_DETECTED | Reply triggering the stop of follow-ups | Track the prospect's reply |
The subscriptions guide covers all events, their format, tests and retries. Accept null values, verify authentication and deduplicate notifications using event_id.
Existing integrations: older examples in this guide used status, crm_id, NOT_REACHABLE, OPT_OUT, NO_OUTCOME, FIRST_MESSAGE_DELIVERED, FIRST_MESSAGE_READ or RESPONSE_RECEIVED. They do not describe the current standard subscription contract. These names are not automatic aliases; retain any specific contract already in use and confirm its migration with Alvio.
What Alvio provides
| Item | Description |
|---|---|
| Webhook URL | Campaign-specific source for sending leads |
| API key | Authentication for secure exchanges |
| Technical support | Assistance during integration |
| WhatsApp connection | Configuration of the link with your number |
What your marketing team needs to prepare
| Item | Description |
|---|---|
| WhatsApp Business number | Dedicated number to connect to Alvio |
| Meta Business account | Access to Meta Business Manager |
| WhatsApp templates | Meta-approved messages (Alvio can advise) |
See the WhatsApp Business API Guide for configuration details.
Process a campaign callback
For an appointment, read event_name: "MEETING_BOOKED", the CRM identifier in external_references.contact_id and the schedule in data.start, data.end and data.timezone. The full JSON also includes lead and campaign details.
See the complete appointment, escalation and STOP examples. The standard contract does not automatically include conversation_transcript or a root-level ai_summary; alvio.conversation_url opens the conversation and data.notes can contain appointment notes.
Next steps
- Configure a test campaign and retrieve its source URL and token.
- Configure your destination and subscriptions in Webhooks.
- Test both directions of the flow, including signatures and deduplication, before going live.
Questions? Our technical team is available to support you at every step.