Home/Integrations/Outbound webhooks integration

Webhooks

Outbound webhooks integration

Subscribe your own endpoint to VGraple CRM events (messages, contacts, leads, broadcasts, conversations, forms) with HMAC-signed payloads, retries and delivery logs.

By Chirag Darji · Updated 29 Aug 2026 · 4 min read

On this page
  1. What syncs
  2. Setup
  3. Who uses it
  4. Payload shape
  5. Reliability
  6. Security checklist
  7. Three recipes
  8. Limits and gotchas
Outbound webhooks in VGraple CRM with the events each endpoint subscribes to and its delivery status

Outbound webhooks push events from VGraple CRM to any HTTPS endpoint you control the moment they happen: a customer message, a new contact or lead, a stage change, a broadcast finishing, a conversation resolved, a form submitted. It is native and first-party: endpoints are created in Settings or through the API, payloads are signed with HMAC-SHA256, deliveries are retried and logged, and the same system powers the Zapier app.

What syncs

EventWhen it fires
message.received, message.sentA customer message lands; a message is sent from the inbox, a flow, a broadcast or the API
contact.created, contact.opted_outA contact is created from any source; a contact opts out
lead.created, lead.stage_changedA lead is created; a lead moves stage on the board or by rule
broadcast.started, broadcast.completed, broadcast.paused, broadcast.failed, broadcast.replyBroadcast lifecycle and replies attributed to a campaign
conversation.assigned, conversation.resolved, conversation.reopenedAssignment and stage changes on conversations
form.submittedA VGraple CRM form is submitted

Every payload carries the event name, a timestamp, the workspace ID and the object with its IDs and fields; the payload reference lists each schema.

Setup

  1. Go to Settings, then Webhooks, and click Add Endpoint.
  2. Enter the public HTTPS URL (private hosts and localhost are rejected) and an optional description.
  3. Tick the events to subscribe (at least one) and click Create Endpoint. Copy the whsec_ signing secret shown once.
  4. Click Test on the endpoint row; a synthetic message.received event is delivered and the response logged.
  5. Verify X-Signature-256 on your side using the samples in the signature guide.
  6. For the four broadcast lifecycle events, subscribe with POST /api/v1/hooks using an API key.

Who uses it

Teams with their own backend or a low-code platform (Make, Pabbly, n8n) who want VGraple CRM events to drive work elsewhere: tickets, invoices, spreadsheets, dashboards, Slack alerts, ERP updates. Zapier users get the same events through the Zapier app without touching signatures.

Payload shape

Every delivery is a JSON POST with the event name, an event ID, a timestamp, the workspace ID and an object whose shape depends on the event: a message with its conversation, contact, direction, type and content; a contact with its fields, tags and consent; a lead with pipeline, stage, value and source; a broadcast with counts; a conversation with assignment and stage; a form submission with answers. IDs are stable and can be used with the REST API to fetch more.

Reliability

Deliveries are attempted immediately and retried on a backoff schedule when your endpoint returns anything other than a 2xx or times out. Each attempt is logged with the status code and the first part of the response body, visible on the endpoint's delivery log, so debugging never requires guessing. Event IDs let you deduplicate if a retry arrives after a slow success. Endpoints can be disabled and re-enabled without losing configuration, and a Zapier-badged endpoint should be managed from Zapier rather than deleted here.

Security checklist

Verify the signature on every request before touching the payload, compare with a constant-time function, reject events older than a few minutes by their timestamp to blunt replay, and store the signing secret in your secret manager rather than in code. Rotate the secret from the endpoint's settings if it may have leaked; the old signature stops validating immediately. Because payloads carry customer names and numbers, your endpoint and anything it writes to fall inside your data protection scope.

Three recipes

  • message.received -> your support system opens or updates a ticket -> agent replies in VGraple CRM.
  • lead.stage_changed to Won -> your ERP creates a customer record and an invoice -> invoice link back through the REST API as a utility template.
  • form.submitted -> Google Sheets via Make -> a Slack alert for high-value entries.

Limits and gotchas

  • Endpoints must be public HTTPS; use a tunnel for local development.
  • Retries stop after the schedule is exhausted; the log shows every attempt and response.
  • Disable an endpoint to pause deliveries without losing its configuration; deleting a Zapier-badged endpoint breaks that Zap.
  • Signature verification should use a constant-time comparison.
  • Payloads contain contact PII; treat your endpoint as part of your data protection scope.

The webhooks guide covers each setting and the troubleshooting table.

Frequently asked questions

Which events can I subscribe to?
Fifteen: message.received, message.sent, contact.created, contact.opted_out, lead.created, lead.stage_changed, broadcast.started, broadcast.completed, broadcast.paused, broadcast.failed, broadcast.reply, conversation.assigned, conversation.resolved, conversation.reopened and form.submitted.
Why does the settings form show only 11?
The endpoint form lists 11 checkboxes today; the four broadcast lifecycle events (started, paused, failed, reply) are subscribed through POST /api/v1/hooks with an API key.
How are payloads signed?
HMAC-SHA256 over the raw body with the endpoint's whsec_ secret, sent in X-Signature-256; the verification guide has Node, Python and PHP samples.
What if my endpoint is down?
Deliveries retry on a schedule (1 minute, 5 minutes, 30 minutes and onward) and every attempt is logged with the response.
Is there a test button?
Yes. Test on the endpoint row sends a synthetic message.received event immediately.
Can I use webhooks with Make, Pabbly or n8n?
Yes. Their webhook triggers accept the payloads directly; see the dedicated pages.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.