Google Calendar, HubSpot, Stripe payment links, Twilio: the integrations list covers the core of what a small business connects Aiva Chat to. The core isn't everything. There's always an internal tool, a spreadsheet, a database, or a team chat channel that someone wants Aiva Chat's conversations to reach.
Aiva Chat webhooks are how that happens. When something occurs in a conversation, such as a call ending, a new lead arriving, or an appointment being booked, Aiva Chat sends a signed HTTPS request to a URL you control, and whatever is listening there acts on it.
One limit up front: Aiva Chat has no public API, so you can't reach in and pull arbitrary data on demand. Webhooks are narrower, and for most of what people want they're more useful, because Aiva Chat tells you the moment something happens instead of you having to go and ask.
Whoever ends up maintaining the receiving end should read the sections on signatures and retries closely, since those two details cause most of the duplicate records and silent failures we see.
What are Aiva Chat webhooks?
A webhook is an automated message from one system to another, triggered by an event. Instead of your system repeatedly asking "anything new?", Aiva Chat pushes the news to you when it happens. Twilio's introduction to webhooks describes the same pattern from the phone-network side.
In Aiva Chat, you register a URL and choose which events you care about. From then on, each matching event triggers a POST request with a JSON body containing three fields: event (the event name), timestamp, and data (the details of what happened).
There are more than 40 events in total, including a full set for bookings. A selection:
| Event | Fires when | Typical use |
|---|---|---|
appointment.booked | An appointment is booked | Sync to an internal schedule, start a preparation task |
appointment.cancelled / appointment.rescheduled | A booking changes | Free up a resource, update your own records |
appointment.confirmed / appointment.noshow | A customer confirms from a reminder, or is marked a no-show | Track attendance in your own records |
appointment.requested / appointment.accepted | A booking needs owner approval, or you approve it | Alert whoever handles approvals |
appointment.paid / appointment.refunded | A deposit or payment is taken, or refunded | Keep your bookkeeping in step |
call.transferred | A call is handed to a person | Alert the team member who should expect it |
call.missed / call.message_taken | A call isn't answered, or the AI takes a message | Create a callback task in your own tool |
call.completed | A call ends and is logged | Store the transcript in your own database |
lead.created | A new caller or website chat visitor leaves details | Add to a CRM or list that isn't integrated |
sms.received / chat.message | A text arrives or the chat assistant replies | Mirror conversations into your system |
Webhooks suit businesses that use a tool Aiva Chat doesn't integrate with directly, teams that want their own copy of conversation data, and anyone who wants a specific action to fire the instant something happens.
How Aiva Chat webhooks work
Here's what happens from event to action.
Step 1: Something happens in a conversation
A caller books an appointment on the phone, a website visitor leaves their email in chat, or a call ends. Aiva Chat records it as usual. This works across phone calls and website chat, and sms.received fires when a text arrives on one of your numbers.
Step 2: Aiva Chat builds and signs the request
Aiva Chat assembles the JSON body for that event and signs it with your webhook's secret, using an HMAC SHA-256 signature of the raw body. The signature travels in a request header so your endpoint can confirm the request came from Aiva Chat and wasn't altered.
Step 3: Aiva Chat sends it to your URL
The request goes to the HTTPS address you registered. A simplified appointment.booked body looks like this:
{
"event": "appointment.booked",
"timestamp": "2026-09-11T14:05:14.120Z",
"data": {
"bookingId": "bk_1042",
"callerNumber": "+15555550142",
"appointmentDate": "2026-09-14",
"appointmentTime": "10:30"
}
}
Step 4: Your endpoint verifies and acts
Your endpoint checks the signature, responds quickly with a 2xx status, and then does its work: writing a row, sending an alert, starting a task. Slow work should happen after you acknowledge the request, not before.
Step 5: Failures are retried and logged
If your endpoint doesn't answer with a 2xx, Aiva Chat retries automatically, up to three attempts in total. Every attempt appears in the delivery log, and you can resend a failed delivery manually once you've fixed the problem.
Benefits of using Aiva Chat webhooks
Connect tools that aren't on the integrations list
Most small businesses use at least one system Aiva Chat doesn't integrate with directly. Webhooks reach anything with a URL: your own endpoint, or any no-code automation tool that accepts a webhook URL and can pass the event on to other apps.
Real-time instead of batch
Because events arrive as they happen, a callback task can exist seconds after a missed call, rather than after someone exports a report. That speed matters most for leads, where a fast follow-up often decides who gets the business.
Your own copy of the data
Some teams want conversation data in their own database or spreadsheet for reporting, backups, or combining with sales data. Subscribing to call.completed gives you each transcript and call detail as it's logged.
Trustworthy by design
Signed requests mean your endpoint can reject anything that didn't come from Aiva Chat. Secret rotation is built in, so a leaked secret is a two-minute fix rather than a rebuild.
Visibility when something breaks
The delivery log shows each event, status, HTTP code, attempt number, and error. When a downstream system stops updating, you can see whether Aiva Chat sent the event and what your endpoint answered.
Aiva Chat webhook use cases
Four hypothetical setups, each starting from a small annoyance someone got tired of handling by hand.
Missed calls become callback tasks
Problem: A small office uses a task tracker Aiva Chat doesn't integrate with, and missed calls get forgotten.
How Aiva Chat handles it: A webhook on call.missed and call.message_taken sends each event to a no-code automation tool's webhook URL, which creates a task with the caller's number and summary.
Outcome: Every unanswered call has an owner within seconds. If all you need is a text to the caller and a call-back task inside Aiva Chat, the built-in Missed call text-back rule on the Workflow Rules tab of the Webhooks page does that with no outside tool; it texts from your Twilio number between 8 AM and 9 PM and skips anyone marked do-not-contact.
Leads into a non-HubSpot CRM
Problem: A business uses a CRM other than HubSpot and retypes leads from the dashboard.
How Aiva Chat handles it: A lead.created webhook sends name, phone, email, and source to the CRM through a no-code tool's webhook URL or a small endpoint.
Outcome: Leads appear where the sales team already works, with no retyping.
Bookings into an internal schedule
Problem: A service business plans its day in an internal tool, while Aiva Chat writes bookings to Google Calendar.
How Aiva Chat handles it: An appointment.booked webhook writes each booking into the internal tool, and appointment.cancelled frees the slot. Workflow rules can also trigger on bookings and filter by location if you run several sites.
Outcome: Both systems agree without anyone copying entries by hand.
A team alert when a call is transferred
Problem: Staff don't know a transferred caller is coming, so the first seconds of the handoff are awkward.
How Aiva Chat handles it: A call.transferred webhook triggers a message in the team's chat tool through a no-code tool's webhook URL, naming the caller and department.
Outcome: The person picking up knows who's on the line.
Webhooks vs. no-code tools, custom actions, and built-in integrations
Aiva Chat has four ways to connect to other systems, and they suit different jobs.
| Built-in integrations | Webhooks to your endpoint | Webhooks to a no-code tool | Custom actions | |
|---|---|---|---|---|
| Direction | Two-way where supported | Aiva Chat pushes events out | Aiva Chat pushes events out | Aiva Chat calls your URL mid-conversation |
| When it runs | Automatically | After an event happens | After an event happens | During a call or chat, when needed |
| Code required | None | Yes, an endpoint | None | None, just a URL |
| Typical use | Calendar, HubSpot, Stripe links | Database writes, custom logic | Routing events into other apps | Look up order status, check stock |
| Flexibility | Fixed behaviour | Highest | High, within that tool's apps | Inputs and URL you define |
| Maintenance | None | Yours to run and monitor | Upkeep in that tool | Your URL must stay reliable |
Built-in integrations are the simplest and should be your first choice when they cover the need. Connecting Google Calendar or HubSpot takes a few clicks and needs nothing else to maintain.
Webhooks to your own endpoint are the most flexible but carry the most responsibility. You run the code, keep it secure, and watch it like any other production system. A no-code automation tool removes the code and is usually the better choice for non-technical teams, at the cost of being limited to the apps that tool connects to. Tools like Zapier receive these events through their generic webhook trigger, with nothing to install on the Aiva Chat side.
Custom actions work in the opposite direction. Instead of Aiva Chat telling you something happened, the assistant calls your URL during a conversation to look something up or send data, then uses the answer while the caller is still on the line.
How to set up an Aiva Chat webhook
The full reference is in the webhooks guide. Here's the practical sequence.
Step 1: Decide what should happen and when
Write down the outcome you want, like "create a callback task for every missed call," and the event that triggers it. Subscribe only to the events you need; extra events mean extra handling.
Step 2: Prepare a receiving URL
Either create a webhook trigger in a no-code automation tool, which gives you a unique URL, or deploy your own endpoint that accepts a JSON POST over HTTPS. Aiva Chat won't send to private or internal network addresses, so the URL must be public.
Step 3: Create the webhook in Aiva Chat
Under Admin & Developer → Webhooks, click Create Webhook, enter a name and the URL, tick your events, and click Create. Copy the signing secret immediately; it's shown only once.
Step 4: Add signature verification
Give the secret to your endpoint and verify every request's signature before acting on it. In a no-code tool you can skip this step if its webhook URL stays private, though treat that URL like a password.
Step 5: Send a test event
Use Send Test from the webhook's menu. A 2xx result means your endpoint accepted it. In a no-code tool, the test gives you sample data to map fields from.
Step 6: Watch the delivery log
For the first few days, check the delivery log for failures and confirm your downstream system shows what you expect. Afterwards, add your own alerting so a broken endpoint doesn't go unnoticed.
Common webhook mistakes
Skipping signature checks
An endpoint that trusts every request will accept forged events from anyone who finds the URL. Verify the HMAC signature on every request, using the raw body exactly as received.
Treating delivery as exactly-once
Retries resend the same event. An endpoint that inserts a new row for every appointment.booked will create duplicates after a network hiccup. Key writes on a stable identifier, such as the booking ID or call SID plus event name, and ignore repeats.
Doing slow work before responding
If your endpoint calls three other services before answering, it may time out and trigger retries, which compounds the duplicate problem. Acknowledge quickly, then process.
Subscribing to everything
Ticking every event "just in case" floods your endpoint with data you don't use and makes failures harder to spot. Start with the two or three events your outcome needs.
Forgetting to update after rotating the secret
The old secret stops working immediately on rotation. If you rotate without updating your endpoint, every request fails verification. Rotate and update in the same sitting.
Aiva Chat webhook best practices
- Prefer a built-in integration when one exists. Use webhooks for what they don't cover.
- Start with a no-code tool if you don't write code. Move to your own endpoint only when you need custom logic.
- Verify signatures on every request. Store the secret like a password.
- Make handlers idempotent. Use stable IDs from the payload to ignore repeats.
- Respond with 2xx fast. Do heavy processing after acknowledging.
- Use test sends before going live. Confirm field mapping with sample data.
- Monitor the delivery log and your own logs. Silence doesn't always mean success.
Conclusion
Reach for a webhook only after checking whether a built-in integration or rule already covers the job; when one doesn't, webhooks are the right tool for getting Aiva Chat's events into the system you actually use. They're deliberately narrower than a public API, and we've explained that decision in why Aiva Chat doesn't have a public API yet. For most automation, being told promptly is what's needed.
The decision that matters is who owns the receiving end. A no-code tool's webhook URL needs almost no care. Your own endpoint is production code: if nobody watches it, a failed deploy can quietly stop bookings from reaching your internal schedule for days. If your team doesn't have someone to own that, start with a no-code tool and move later.
Ready to connect Aiva Chat to the rest of your tools?
Pick the one manual copy-paste job that annoys your team most, such as retyping leads into your CRM, and wire just that event to a no-code tool's webhook URL during the trial. Send a test event, map the fields, and make a real test call to watch it arrive.
Webhooks, custom actions, and every built-in integration are on every plan. Start your 14-day free trial without a card, or book a demo and bring the list of tools you'd like Aiva Chat to feed.
Posts from the people building Aiva Chat in Rajkot — how the product works, what we have learned building it, and guides for getting the most out of an AI receptionist.