CRM integration
Integrate WhatsApp with Salesforce
The WhatsApp and Salesforce integration connects your operation's CRM to ZapZap API, an unofficial, instance-based WhatsApp API. Instead of relying on manual sending, Salesforce starts calling ZapZap API automatically when a record changes state, firing WhatsApp messages from the standard objects themselves (Lead, Contact, Opportunity) or from custom objects. Communication happens through an HTTP request authenticated with the x-api-key and x-api-secret headers, on the base https://api.zapzapapi.com. Each active number costs R$15 per month on a prepaid model, and the account starts with a welcome credit (subject to the current campaign) so you can test the flow end to end before scaling.
Why connect
The most common use is reacting to sales funnel events. When a Lead comes in from a specific source, a record-triggered Flow calls ZapZap API and sends the welcome message to the contact's WhatsApp within seconds, without depending on the SDR being online. When an Opportunity moves to the proposal sent stage, an Outbound Message (or an HTTP Callout inside the Flow) triggers a webhook that notifies the customer and the salesperson on WhatsApp. The same pattern covers scheduled meeting reminders, contract signature follow-ups, re-engagement of stalled opportunities and internal alerts for the team when a high-value deal advances. That way Salesforce stays the source of truth, and WhatsApp becomes the automatic execution channel.
Step by step
- 1
Create the instance and get the credentials
In the ZapZap API dashboard, provision a number, connect WhatsApp by reading the QR Code and copy the instanceId, x-api-key and x-api-secret. These values will authenticate the calls coming from Salesforce.
- 2
Set up the Named Credential in Salesforce
In Setup, search for Named Credentials. Create an External Credential with the x-api-key and x-api-secret headers as Custom Headers and a Named Credential pointing to https://api.zapzapapi.com. This avoids exposing the keys inside the Flow.
- 3
Build the Record-Triggered Flow
In Setup > Process Automation > Flows, click New Flow and choose Record-Triggered Flow. Select the object (Lead or Opportunity), set the trigger to A record is created or updated and add the entry condition, for example Stage equals Proposal Sent.
- 4
Add the HTTP Callout action
Inside the Flow, add an Action element of the HTTP Callout type using the Named Credential you created. Configure the POST method to ZapZap API's send endpoint and build the body with the contact's number and the text, referencing record fields such as {!$Record.Phone}.
- 5
Activate, test and monitor
Click Activate on the Flow, create or edit a real record that meets the condition and confirm delivery on WhatsApp. Track executions in Setup > Paused and Failed Flow Interviews and adjust the headers or the field mapping if any send fails.
Example
// ILLUSTRATIVE example of the body sent by the Salesforce HTTP Callout.
// Confirm exact endpoints and fields at https://api.zapzapapi.com/llms.txt
POST https://api.zapzapapi.com/api/v1/{instanceId}/send/text
Headers:
x-api-key: YOUR_API_KEY
x-api-secret: YOUR_API_SECRET
Content-Type: application/json
Body:
{
"number": "5511999999999",
"text": "Hello! Your proposal has been sent. If you have any questions, just reply here."
}Illustrative. The exact fields and endpoints are in the documentation.
Frequently asked questions
Do I need the official WhatsApp API to integrate with Salesforce?
No. ZapZap API is an unofficial, instance-based WhatsApp API. You connect a number by reading the QR Code and Salesforce starts sending messages through an HTTP request, with no need for template approval or an official account process.
Should I use Flow or Outbound Message to call ZapZap API?
Flow with HTTP Callout is the most direct path, because it calls ZapZap API without intermediaries and is the approach Salesforce recommends today. Outbound Message works when you already have a middleware or your own endpoint that receives the Salesforce webhook and then passes it on to ZapZap API. Process Builder still exists in older orgs, but Salesforce recommends migrating to Flow.
How much does it cost to keep this integration running?
The cost is R$15 per active number per month, on a prepaid model. You keep a balance on the account and each number draws from that balance. A new account receives a welcome credit (subject to the current campaign), so you can validate the sending Flow in Salesforce before investing.
How does Salesforce authenticate with ZapZap API without exposing the keys in the Flow?
Use Named Credentials. You store the x-api-key and x-api-secret in an External Credential as custom headers and reference the Named Credential in the HTTP Callout. The keys stay protected in the configuration layer and do not appear in the Flow design.
Where do I find the exact endpoints and fields to build the request body?
See https://api.zapzapapi.com/llms.txt, which is the source of truth for the API. The code example shown here is illustrative. Always confirm the endpoint path and field names in the documentation before publishing the Flow to production.
Start now
Create your account, connect a number in minutes and test the API with warm-up and anti-ban. R$15 per active number/month, prepaid, no lock-in.
