Skip to content
  • There are no suggestions because the search field is empty.

How to Set Up Custom Webhooks From Alivo

Push contact, conversation, and event data from Alivo into Zapier, Make, your CRM, or any system that accepts a webhook.

A webhook is just a way for one app to automatically send data to another when something happens. Alivo can send outbound webhooks whenever key events occur, like a new lead coming in, a call getting forwarded, or an inspection getting booked. That lets you push contact details, conversation summaries, and booking info into Zapier, Make, a CRM, or your own custom software without anyone copying and pasting. This guide walks through where to set them up, every trigger you can choose from, and what the data looks like when it arrives.

What You Can Connect

Alivo webhooks work with any system that gives you a URL to receive a POST request in JSON format. Common setups include:

  • Zapier. Create a Zap with a "Catch Hook" or "Webhooks by Zapier" trigger, then paste that URL into Alivo.
  • Make (formerly Integromat). Add a Custom Webhook module, copy the URL, and paste it into Alivo.
  • Your CRM. If your CRM accepts inbound webhooks, or you route through Zapier/Make, you can create or update records automatically.
  • Custom software. Point the webhook at your own server endpoint and map the fields however you need.

Alivo also has native CRM integrations for tools like JobNimbus, AccuLynx, and ServiceTitan. Webhooks are the flexible option when you need something those direct connections do not cover, or when you want to fan data out to more than one place.

How to Add a Webhook

Webhooks live under Settings → Integrations → Webhooks. From there:

  • Add webhook. Click the button in the top right to open the setup form.
  • Name. Give it a label your team will recognize, like "Zapier - New Leads" or "CRM - Event Booked."
  • Trigger. Pick the event that should cause Alivo to send data. Each webhook listens for one trigger.
  • Webhook URL. Paste the URL from Zapier, Make, your CRM, or your own system.
  • Advanced options (optional). Expand this section to add an Integration Key (sent as an authorization token in the request header) and Notes (a good place to paste your Zap link for your team).
  • Save. The webhook is live once saved.

After saving, use the Test button on the webhook row to send a sample payload to your URL. That helps you map fields in Zapier or Make before real leads start flowing. You can also review delivery history under Settings → Logs → Webhook logs.

Configuring Webhooks by Trigger

Each webhook listens for exactly one trigger. When that event happens in Alivo, Alivo sends a POST request to the URL you configured.

Using the Same URL for Multiple Triggers

You can point several webhooks at the same URL. Just create a separate webhook entry for each trigger you care about, and paste the same URL into each one. For example, one Zapier "Catch Hook" URL can receive New Lead, Goal Met, and Event Booked events as three separate webhook entries in Alivo.

When the event fires, Alivo sends one POST per matching webhook. If you have two webhooks both set to Event Booked with the same URL, you will get two POSTs for each booking. That is expected. Remove duplicate endpoints if you only want one send per event.

Event Changed and Scheduling Triggers

Scheduling events have both specific triggers and a catch-all called Event Changed. When an inspection is booked, rescheduled, canceled, confirmed, or gets a new host assigned, Alivo fires the specific trigger (like Event Booked) and also fires any webhook set to Event Changed. If you only want one webhook per scheduling action, pick either the specific trigger or Event Changed, not both, unless you intend to receive two POSTs.

Good to know: The JSON body Alivo sends is always the same shape no matter which trigger fired. Check the webhook_description field in the payload to see which trigger caused the send.

All Webhook Triggers

Below is every trigger available in the Webhooks settings. Pick the one that matches the moment you want to push data out.

Trigger When It Fires
New Lead A new lead starts an inbound conversation.
Goal Met A conversation goal is marked complete.
Assistance Needed The AI flags that a human should step in.
Call Forwarded A call is forwarded to a team member.
Message Left A message was left for the contact.
Employee Message Left An employee leaves a message for the contact.
Emergency An emergency-type event is detected.
Left Voicemail A contact leaves a voicemail.
Message Received A message is received from a contact. Webhook only; does not create an in-app notification.
Message Sent A message is sent to a contact. Webhook only; does not create an in-app notification.
Photo Received A photo is received from a contact.
Email Received An email is received from a contact.
Event Booked An inspection or appointment is booked.
Event Rescheduled An event is rescheduled.
Event Canceled An event is canceled.
Event Changed An event is changed (time, details, or other scheduling update). Also fires alongside the specific scheduling triggers above.
Event Confirmed An event is confirmed.
Event Host Assigned A host is assigned to an event.
Document Signed A document is signed.
Audience Updated Contact details are updated. Webhook only; does not create an in-app notification.
Follow-Up Sequence Complete All configured follow-ups have finished for the conversation. Does not fire when follow-ups are manually stopped.
Task (Follow Up) A follow-up task is created.

The Webhook Payload

Every outbound webhook uses the same JSON structure. Alivo always sends a POST with Content-Type: application/json. If you set an Integration Key in Advanced Options, Alivo also sends an Authorization header formatted as Token your-key-here.

The payload always includes contact info (name, phone, email, address, pipeline stage), UTM tracking fields, a link back to the contact in Alivo, conversation summaries, custom fields, booking details when relevant, and CRM external IDs when your account is connected to a CRM. The one field that changes per send is webhook_description, which matches the trigger name (for example, "New Lead" or "Event Booked").

Call-related triggers (like Call Forwarded and Left Voicemail) may also include call_id, twilio_sid, and call_duration_seconds in the same payload.

Example Webhook Payload

Here is a simplified example of what arrives at your URL. Real payloads include your actual contact data and any custom fields your company has set up.

{
   "webhook_description":"New Lead",
   "audience_id":"a5eacc00-2ff0-4be5-aa35-99cfef3df97f",
   "audience_first_name":"John",
   "audience_last_name":"Doe",
   "audience_full_name":"John Doe",
   "audience_phone":"+15551234567",
   "audience_phone_opt_in":true,
   "audience_email":"john@example.com",
   "audience_email_opt_in":true,
   "audience_pipeline_stage":"Inquiry",
   "audience_address":"123 Main St",
   "audience_city":"Anytown",
   "audience_state":"CA",
   "audience_zip_code":"12345",
   "audience_source":"Website Form",
   "audience_notes":"Interested in a roof inspection",
   "audience_utm_source":"google",
   "audience_utm_medium":"cpc",
   "audience_utm_campaign":"spring_roofing",
   "alivo_link":"https://app.alivo.ai/audience/a5eacc00-2ff0-4be5-aa35-99cfef3df97f",
   "campaign_name":"Website Leads",
   "conversation_summary":"Homeowner needs a roof inspection after recent storm damage.",
   "custom_fields":[
      {
         "field":"Roof Type",
         "value":"Asphalt shingle"
      }
   ],
   "custom_fields_dict":{
      "Roof Type":"Asphalt shingle"
   },
   "bookings":null,
   "most_recent_message":{
      "message":"Hi, I need someone to look at my roof.",
      "time_sent":"2025-03-28T14:00:00Z",
      "sent":false,
      "received":true
   },
   "audience_external_id_name":"JobNimbus",
   "audience_external_id_id":"12345"
}

Use the Test button on any webhook to fire a full sample payload with example data so you can finish your Zapier or Make mapping without waiting for a live event.

Common Questions

Can I send webhooks to more than one system at the same time?

Yes. Create a separate webhook entry for each destination URL, or point multiple entries at the same Zapier URL with different triggers.

How do I know if a webhook failed?

Check Settings → Logs → Webhook logs. Each delivery attempt is logged with the status code and response from your endpoint.

Do I need a developer to set this up?

Not for Zapier or Make. Create the webhook trigger in Zapier or Make, paste the URL into Alivo, send a test, and map the fields visually. Custom server endpoints need someone who can receive and process JSON.

Is this the same as sending leads into Alivo?

No. Outbound webhooks push data out of Alivo when something happens inside the platform. Inbound custom webhooks (under Lead Sources) let external systems send new leads into Alivo. They are two different directions.

Outbound webhooks give you a reliable way to keep every other system in sync with what is happening in Alivo. Pick the triggers that matter to your workflow, point them at your URLs, and use webhook_description on the receiving end to route each event to the right action.

Still have a question this didn't answer? Reach out to our support team support@alivo.ai and we'll be glad to help.