> ## Documentation Index
> Fetch the complete documentation index at: /help/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce

> Connect Salesforce and Kerux through Zapier or Make: new Salesforce leads start a LinkedIn campaign, and replies and meetings are logged back.

> [!NOTE]
>
> **Pro plan.** Salesforce works through trigger URLs and HTTP steps, which are part of Pro and Agency (and the free trial). Anything you already have keeps working on every plan. See [Plans and billing](/help/account/billing.md).

Kerux has no native Salesforce connection yet. Salesforce's REST API signs in with OAuth ([Salesforce's REST API guide](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm)), which Kerux connections don't do, so Zapier or Make handles the sign-in with your own Salesforce login.

> [!NOTE]
>
> **How it connects:** through Zapier (or Make). You don't create anything in Salesforce's developer settings. Zapier app and step names below are Zapier's; check them in your account.

## Before you start

* **Zapier plan:** Webhooks by Zapier is a premium app, on Zapier's paid plans. With Make, use its HTTP and Webhooks apps.
* **A LinkedIn URL field** on Salesforce Leads (a custom field), since Kerux knows people by their LinkedIn profile.

## 1. New Salesforce leads start a LinkedIn campaign

**1. Copy the Kerux trigger URL**

In Kerux, open the campaign, click **+ Add** on the **Trigger** half of the start box, choose **Incoming webhook (API)**, click **Add**, then **Copy link**.

**2. Trigger**

In Zapier: **Salesforce > New Record**, object **Lead**.

**3. Action**

**Webhooks by Zapier > POST**: URL = the trigger URL, Payload Type = json, Data: `linkedin_url` (your custom field), `first_name`, `last_name`, `email`, `company`, and `custom__salesforce_id` (the record id; sent as `custom.salesforce_id`).

Kerux answers `202` with `{ "data": { "enrolled": 1, "already_in": 0, "lead_ids": ["..."] } }`.

## 2. Replies and meetings go back to Salesforce

**1. Catch the contact in Zapier**

Start a Zap with **Webhooks by Zapier > Catch Hook** and copy its URL.

**2. Send it from Kerux**

In the **When the contact replies** box, add **Send to another campaign** and pick a short "Replied: to Salesforce" campaign. Its **Webhook / HTTP** step POSTs to the Catch Hook URL:

**3. Update Salesforce**

In the Zap: **Salesforce > Update Record** (Lead, by `salesforce_id`), or **Find Record** by email first. For meetings, a campaign started by the **Meeting booked** Kerux event sends `{{meeting.start}}` the same way, and the Zap uses **Create Record** (Task).

```json theme={null}
{
  "method": "POST",
  "url": "https://hooks.zapier.com/hooks/catch/YOUR/HOOK/",
  "bodyType": "json",
  "body": {
    "salesforce_id": "{{contact.custom.salesforce_id}}",
    "email": "{{email | optional}}",
    "status": "Working - Contacted"
  }
}
```

Use your own Lead Status values.

## Test with one contact

Create a test lead in Salesforce and check it appears in the campaign. In the follow-up campaign's **Builder**, click **Test** to open **Test on one contact** and check the update in Salesforce.

## Common errors

> [accordion] The Zap runs but no contact appears
>
> The Salesforce lead had no LinkedIn URL. Add a Zapier **Filter** so only leads with one continue.

> [accordion] Update Record fails
>
> The record id wasn't sent when the contact entered Kerux, or the Lead Status value doesn't exist in your Salesforce. Use **Find Record** by email, and a status from your picklist.

Related: [Zapier](/help/integration-guides/zapier.md), [Zoho CRM](/help/integration-guides/zoho-crm.md), [Trigger URLs and forms](/help/developers/trigger-urls-and-forms.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.