Home/Features/Zapier and API

Integrations

Zapier App and REST API

Connect VGraple CRM to 7,000+ apps through Zapier, or call the REST API directly with an API key. Six triggers, three actions, a search step, and eight documented endpoints.

By Chirag Darji · Updated 26 Aug 2026 · 11 min read

Plans: All plans. API keys and Zapier connections are managed under Settings, which is limited to the workspace owner (API keys are treated as secrets, so admins and custom roles cannot view or create them).

On this page
  1. What you get
  2. How it works
  3. What can I do with the Zapier app specifically?
  4. What does the REST API actually cover?
  5. How does authentication and rate limiting work?
  6. Can Zapier see other API-managed webhook subscriptions I have not created myself?
  7. Why can I only send templates through the API, not free-form text?
  8. With VGraple CRM vs a typical WhatsApp CRM's integration options
  9. Who uses it
  10. What Meta allows
  11. Plans and limits
  12. Recent improvements
API keys in VGraple CRM with prefix, creation date and last use

In short

  • Six Zapier triggers (new message, new contact, new lead, lead stage changed, form submission, contact opted out) and three actions (send template, create/update contact, create lead)
  • The REST API v1 backs the Zapier app directly; the same 8 endpoints are open to anyone with an API key
  • Auth is a Bearer API key (vgk_...) from Settings > API Keys; the full secret is shown once and only its hash is stored
  • 600 requests an hour per key, with a lower 20-campaigns-an-hour cap on the broadcast-creation endpoint specifically

The Zapier app connects VGraple CRM to thousands of other tools without writing code, six triggers and three actions built directly on the platform's public REST API, and the same API is open to anyone who wants to call it directly with an API key. What changes for a business is that WhatsApp data, a new lead, a reply, an opted-out contact, stops being locked to the inbox screen and can drive a Slack alert, a spreadsheet row, a CRM sync or a custom script the moment it happens.

What you get

  • Six Zapier triggers: new message, new contact, new lead, lead stage changed, form submission, contact opted out
  • Three Zapier actions: send template, create or update contact, create lead, plus a Find Contact by phone search step
  • A REST API v1 with 8 documented endpoints backing the same functionality, open to direct developer use
  • API keys (vgk_...) shown once at creation, hashed at rest, individually rotatable and revocable
  • 600 requests an hour per key, high enough for real integration traffic without an enterprise-tier negotiation
  • The same creation and safety paths as the UI: an API-created broadcast respects opt-in, daily limits and quiet hours exactly like one built in the composer

How it works

  1. Create an API key. In Settings > API Keys, name the key and click Create Key. The full secret is shown exactly once, copy it immediately; only its hash is stored, so VGraple CRM itself cannot show it to you again.

Outbound webhooks in VGraple CRM with the events each endpoint subscribes to and its delivery status

  1. Connect the Zapier app, or call the API directly. In Zapier, search for VGraple CRM and paste the key when prompted; the connection test hits GET /api/v1/me, which returns your organisation name and confirms the key works. For a direct API call, send the key as Authorization: Bearer vgk_... on any request.

  2. Pick a trigger or an action. Choose from the six triggers (each backed by the same event system as outbound webhooks) or the three actions. Zapier's dynamic dropdowns for templates and pipelines are populated live from GET /api/v1/templates and GET /api/v1/pipelines.

  3. Turning a Zap on subscribes a webhook behind the scenes. Activating a trigger calls POST /api/v1/hooks with your Zap's callback URL and the relevant event, creating a row in the same webhook endpoint table used elsewhere in the platform, tagged with source "zapier" and shown with a Zapier badge in Settings > Webhooks.

  4. The event fires and Zapier receives it instantly. Because triggers are REST hooks, not polling, a new contact or a new message reaches your Zap within moments of it happening in VGraple CRM, not on a five-minute polling cycle.

  5. Turning the Zap off unsubscribes it. DELETE /api/v1/hooks/{id} removes the endpoint row, so a disabled Zap stops receiving events cleanly instead of accumulating dead subscriptions.

What can I do with the Zapier app specifically?

The Zapier app is a thin, no-code layer over the same public API described on this page, six triggers and three actions cover the situations that come up most: reacting to something that happened in VGraple CRM, or pushing a contact, lead or message into it from somewhere else.

Integrations settings in VGraple CRM: Facebook Lead Ads, Calendly, Meta Conversion Tracking and payment collection

TypeNameWhat it does
TriggerNew Inbound MessageFires on message.received
TriggerNew ContactFires on contact.created
TriggerNew LeadFires on lead.created
TriggerLead Stage ChangedFires on lead.stage_changed
TriggerNew Form SubmissionFires on form.submitted
TriggerContact Opted OutFires on contact.opted_out
ActionSend Template MessageSends an approved template with a dynamic template dropdown and body variables as line items
ActionCreate or Update ContactUpserts a contact by phone number
ActionCreate LeadCreates a lead with a dynamic pipeline dropdown, runs the standard post-create automations
SearchFind Contact by phoneLooks up an existing contact for use later in the Zap

Example

A D2C store builds a Zap: New Lead in VGraple CRM triggers a row in a Google Sheet used by the founder to review every enquiry each morning, with no manual export step.

What does the REST API actually cover?

The public API v1 is what the Zapier app is built on, so anything Zapier can do, you can also do with a direct HTTP call and a language of your choice.

EndpointPurpose
GET /api/v1/meAuth test; returns organisation and key info
GET /api/v1/contacts, POST /api/v1/contactsList or create/update contacts by phone (upsert)
GET /api/v1/messagesRecent messages, filterable by direction, paginated by cursor
POST /api/v1/messagesSend an approved template to a contact (template sends only)
GET /api/v1/leads, POST /api/v1/leadsList leads (filterable by source) or create one
GET /api/v1/templatesApproved, enabled templates with a computed variable_count
GET /api/v1/pipelinesYour organisation's lead pipelines
GET/POST /api/v1/hooks, DELETE /api/v1/hooks/{id}Manage REST hook subscriptions (used by Zapier, also usable directly)
GET /api/v1/broadcasts, POST /api/v1/broadcastsList campaigns with their funnel, or create and optionally send or schedule one

A minimal request to create a contact looks like this:

curl -X POST https://crm.vgraple.co.in/api/v1/contacts \
  -H "Authorization: Bearer vgk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+919876543210", "name": "Priya Sharma", "email": "[email protected]"}'

A successful create returns 201 with {"contact": {...}, "created": true}; calling it again with the same phone number returns 200 with "created": false and the existing contact, an upsert rather than a duplicate.

How does authentication and rate limiting work?

Every API request needs an Authorization: Bearer vgk_... header. Keys are generated as vgk_ followed by 48 hex characters; VGraple CRM stores only the SHA-256 hash and a short display prefix, so a database compromise cannot be used to replay your key, and the full value is shown to you exactly once at creation or rotation.

Requests are limited to 600 an hour per key on a rolling window, backed by Redis in production with an in-memory fallback for local development. Creating a broadcast has its own tighter limit, 20 campaigns an hour per organisation, because a single API call there can queue a send to thousands of contacts, the most expensive action available through the API, and deserves a lower ceiling than a read request.

A key's last_used timestamp updates at most once a minute, not on every request, so a busy integration does not add a write on every single call just to track activity. Rotating a key (Settings > API Keys, the Rotate control) replaces the secret while keeping the same key record and its name; the old secret stops working immediately, which is the right move if a key has been exposed in a script or a log rather than pasted somewhere it shouldn't have been. Revoking a key removes it entirely, immediately breaking anything still using it, useful when retiring an integration for good.

Can Zapier see other API-managed webhook subscriptions I have not created myself?

No. GET /api/v1/hooks only lists subscriptions created through the API itself (source "zapier"), never the webhook endpoints you configured by hand in Settings > Webhooks, and the reverse is also true: a manually created endpoint cannot be listed or deleted with an API key, only through the settings UI. The two management surfaces stay separate on purpose, so a Zapier connection can never accidentally see or remove a webhook you built for something else.

Watch out

POST /api/v1/broadcasts triggers a real send if you set send_at to "now" or a past-due schedule, going through the same pacing, opt-in and daily-limit checks as the UI, but with real consequences for your number. Test with a small tagged audience before wiring a Zap to fire it automatically.

Why can I only send templates through the API, not free-form text?

Meta requires an approved template for any business-initiated message outside a conversation's 24-hour customer service window, and an API caller sending a message has no reliable way to know whether a given conversation is currently inside that window. POST /api/v1/messages accepts template sends only, and goes through the same tracked send path (sendTemplateTracked) as automation rules and owner alerts, so the message lands in the inbox, respects opt-out status, and creates or reuses the right conversation, exactly as if an agent had sent it from the UI.

With VGraple CRM vs a typical WhatsApp CRM's integration options

Typical WhatsApp CRMVGraple CRM
Broadcast APIOften absent entirelyPOST /api/v1/broadcasts, same guards as the UI
Webhook-to-campaign linkageFrequently missing a campaign id in webhook payloadsEvery broadcast webhook carries the campaign id for reconciliation
Zapier trigger latencyOften polling-based, minutes of lagREST hook based, near-instant
Rate limit visibilityFrequently undocumented600 req/hour published, with a specific 20/hour carve-out for broadcasts
Key securitySometimes stored and shown in plaintextHashed at rest, shown once, individually rotatable
Direct API access beyond ZapierOften Zapier-only, no public docsFull REST API documented and usable without Zapier

Who uses it

Real-estate agencies use the Send Template Message action to fire an instant WhatsApp acknowledgement the moment a new lead lands from a property portal integration that already has a Zapier connector. See WhatsApp CRM for real estate.

D2C stores connect their e-commerce platform's Zapier triggers to Create Lead, so an abandoned-checkout event on the storefront becomes a lead in the pipeline within seconds. See WhatsApp CRM for D2C.

Coaching institutes wire New Form Submission to a Google Sheet and a Slack channel simultaneously in one multi-step Zap, so counsellors see new enquiries in both places without duplicate data entry. See WhatsApp CRM for coaching institutes.

What Meta allows

Meta policy

Meta does not review or restrict a Tech Provider's own REST API or Zapier integration; these are application-level tools built on top of the WhatsApp Business Platform, not part of it. Meta's rules still apply to what the API actually sends: template-only sends outside the 24-hour window, opt-in and opt-out handling, and the messaging tier that caps how many unique contacts your portfolio can message in a rolling 24 hours all apply to an API-triggered send exactly as they apply to one sent from the UI.

Plans and limits

The Zapier app and REST API are available on every plan, including Free. Creating and managing API keys is limited to the workspace owner, because keys are treated as secrets alongside payment and Conversions API settings. There is no plan-based API request cap beyond the 600 requests/hour per-key rate limit and the 20-campaigns/hour broadcast-creation limit, both of which apply uniformly regardless of plan.

Recent improvements

  • 2026-07-13: The Zapier app and public API v1 shipped together, six triggers, three actions, one search step, and 8 REST endpoints, built directly on the outbound webhook system already in production.
  • 2026-07-13: POST /api/v1/contacts changed to return created: boolean with the correct HTTP status (200 for an update, 201 for a create), so an integration can tell an upsert-created contact apart from an upsert-matched one without a separate lookup.
  • 2026-07-13: SSRF protection extended to API-created webhook subscriptions (the Zapier REST hook path), matching the guard already applied to manually configured webhooks in Settings.

Frequently asked questions

How do I connect VGraple CRM to Zapier?
In Zapier, search for the VGraple CRM app, choose a trigger or action, and authenticate with an API key from Settings > API Keys in VGraple CRM. GET /api/v1/me is used as the connection test, and your organisation's name becomes the label Zapier shows for that connection.
What can I trigger a Zap from?
Six events, all instant (REST hook based, not polling), a new inbound WhatsApp message, a new contact, a new lead, a lead's pipeline stage changing, a new form submission, and a contact opting out. Each one fires the moment the underlying event happens in VGraple CRM.
What actions can a Zap take in VGraple CRM?
Send an approved WhatsApp template (with a dynamic template dropdown and body variables as line items), create or update a contact, or create a lead with a dynamic pipeline dropdown. There is also a search step, Find Contact by phone, for looking up an existing contact before deciding what to do next.
Do I need to know how to code to use the REST API?
No, most people use Zapier, Make or Pabbly Connect and never touch the API directly. The REST API exists underneath those integrations and is also open to any developer who wants to call it directly with an API key and standard HTTP requests.
How do I get an API key?
From Settings > API Keys, name the key (for example "Zapier" or "Website backend") and click Create Key. The full secret, formatted vgk_ followed by 48 hex characters, is shown exactly once; only its SHA-256 hash is stored afterward, so you cannot retrieve it again if you lose it, only rotate or revoke it.
What is the API rate limit?
600 requests an hour per key, tracked with a rolling window. The broadcast-creation endpoint has a tighter, separate limit of 20 campaigns an hour per organisation, since a campaign is the most expensive single action the API can trigger.
Can I create a WhatsApp broadcast through the API?
Yes. POST /api/v1/broadcasts accepts an audience mode (all contacts, tags or a segment), a template, variable mappings with fallback values, exclusion rules and an optional send time, going through the exact same creation and scheduling path the broadcast UI uses, so every guard (opt-in, daily limit, quiet hours) applies identically.
Can the API send a message outside the 24-hour window?
No, and this is deliberate. POST /api/v1/messages only accepts template sends, because an API caller has no way to know whether a given conversation's 24-hour window is open, and Meta requires an approved template for any business-initiated message outside that window regardless of who or what is sending it.
What data can I read through the API without creating anything?
Recent messages (inbound or outbound), recent leads (filterable by source), your organisation's approved templates with variable counts, and your lead pipelines. Each list endpoint supports a limit and a cursor for paging through more than one page of results.
Is my data safe going through Zapier or a custom API integration?
The API key you generate only has access to your own organisation's data, the same tenant scoping every part of the platform enforces, and every webhook URL a Zap or API caller registers is checked against the same private-network guard as the manual webhook settings, so an integration cannot be used to probe your own internal infrastructure.
Does the Zapier app support the paid Zapier plan features like multi-step Zaps?
Yes. Once connected, the VGraple CRM triggers and actions behave like any other Zapier app's steps and can be combined with filters, paths, formatters and any other app in a multi-step Zap the same way.

Run your WhatsApp on VGraple CRM

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