Webhooks and HTTP tools
Push appointment events out, let the agent call your API mid-conversation, and keep staging away from production writes.
When connectors aren’t enough
HubSpot and Zoho cover a lot of CRM sync on supported plans. Homegrown systems, inventory lookups, quote engines, and case-status APIs usually need outbound webhooks or custom HTTP tools instead.
Use webhooks when AptaBook should notify your system after something happens (booked, canceled, rescheduled). Use HTTP tools when the agent needs to ask your system a question during the conversation (“what’s the fee for service X in ZIP 94107?”).
Outbound webhooks
Create an endpoint under Integrations → Webhooks and subscribe only to the appointment events you care about. Subscribing to everything “for later analytics” is how you drown your queue and ignore the failures that matter.
Verify signatures on your server. Treat unsigned payloads as hostile. Rotate secrets if they leak into a ticket or a screenshot.
Log the event id and appointment id on your side. When support asks “did the cancel sync?”, you want a row - not a shrug.
Custom HTTP tools
Define tools with boring, clear names: get_fee_schedule beats magic_helper. The model picks tools by name and description; cute names get mis-fired.
Return small JSON. The agent narrates; it should not parse a 200-row spreadsheet mid-call. If you need a big table, filter server-side and return the one row that matches.
Stage first. Production tools with write access deserve the same review as a public API key. A tool that can create tickets or update prices will eventually be called on a messy transcript - assume that day is coming.
After deploy, force a chat that should call the tool and one that should not. Wrong tool calls are usually vague descriptions, not “the model being creative.”