Webhooks + API

Leadialer + Salesforce Integration

Salesforce teams connect via Leadialer's signed webhooks (into a Site/Apex REST endpoint or middleware) and push leads to Leadialer's REST API from Flows. Signature verification samples are in the API docs.

What the Salesforce integration does

Salesforce orgs never want a black-box sync — they want events they can route themselves. Leadialer obliges: every completed call, booking, warm lead, and opt-out is a signed JSON webhook you can receive with an Apex REST endpoint on a Site, or through middleware if you'd rather not expose one. From there, your Flow or Apex handler updates Leads, Tasks, or custom objects however your org is modeled.

Outbound from Salesforce, a record-triggered Flow or Apex callout POSTs new seller leads to Leadialer's /api/v1/leads, where the AI dialer queues them for calling. Every webhook carries an X-Leadialer-Signature header (HMAC-SHA256 of the raw body) so your endpoint can reject anything that isn't genuinely from Leadialer — verification samples live in the API docs.

What syncs

  • Events out via signed webhooks
  • Leads in via the REST API

Setup

  1. 1Expose an endpoint (Apex REST, or Zapier/Make as a bridge) and add it under Outgoing Webhooks.
  2. 2Verify the X-Leadialer-Signature HMAC in your handler (samples in the API docs).
  3. 3Leads in: POST to /api/v1/leads from a Flow or Apex trigger with an API key.

Field mappings

  • Events out — { event, timestamp, data } JSON with lead name and event specifics; your Apex/Flow handler decides which Salesforce objects and fields to write
  • Leads in — POST /api/v1/leads accepts phone (required), firstName, lastName, phone2, phone3, email, propertyAddress, propertyCity, propertyState, propertyZip, notes, and an optional campaignId. Duplicates and Do Not Call numbers are rejected automatically.

Events Leadialer sends

call.completed

Fires when a call finishes — includes the outcome, the lead's score, and the AI-written call summary.

appointment.booked

Fires when Alex books or reschedules an appointment — includes the date and time in your timezone and how it was booked (call or text).

lead.warm

Fires when a lead's score crosses the warm threshold — includes the score and whether it came from a call or a text thread.

lead.opted_out

Fires when a lead texts STOP — so you can suppress them in your other tools too.

Frequently asked questions

Is there a managed package on the AppExchange?

No — the integration is a documented webhook + REST contract, which most Salesforce teams prefer because it maps onto their own object model instead of forcing one.

How do I authenticate calls to Leadialer's API?

Create an API key in Leadialer (Profile → CRM Integrations → API Keys) and send it as a Bearer token. Keys are scoped to your account and rate-limited to 120 requests per minute.

How should my endpoint validate incoming events?

Compute HMAC-SHA256 of the raw request body with your endpoint's signing secret and compare it to the X-Leadialer-Signature header. The API docs include working samples.