CRM × Communication
SalesforceSlackAGNT

Automate Salesforce + Slack

The enterprise system of record for revenue. Team chat where operations actually surface. Put an agent between them and the hand-off stops being manual: it reads, decides, acts, and shows its work.

Install Lead Researcher → Get AGNT free

Lead Researcher already works across Salesforce and Slack — free, and it runs on your machine.

Automations teams run

These are not field mappings. An agent reads the Salesforce side, works out what it means, and only then decides what — if anything — should happen in Slack.

When a lead or opportunity changes in Salesforce…

…an agent can post a rich channel message in Slack — after reading the context and deciding it should.

When a task is due in Salesforce…

…an agent can DM a teammate in Slack — after reading the context and deciding it should.

When a report cycle begins in Salesforce…

…an agent can open a thread with findings in Slack — after reading the context and deciding it should.

When a message hits a channel in Slack…

…an agent can update records and fields in Salesforce — with the reasoning recorded in the run’s receipt.

When a keyword or mention fires in Slack…

…an agent can create tasks and notes in Salesforce — with the reasoning recorded in the run’s receipt.

When a reaction is added in Slack…

…an agent can extract report data in Salesforce — with the reasoning recorded in the run’s receipt.

Salesforce to Slack, in three nodes

The two ends are a custom-api call to {instance}.my.salesforce.com and the slack-api node. What makes this different from a zap is the middle node — it forms a view about the Salesforce item before anything reaches Slack.

Salesforce to Slack: poll salesforce → read it and decide → act in slack TRIGGER trigger-timer Poll Salesforce Every fifteen minutes. ACTION agnt-agent Read it and decide Judged against your own rules. ACTION slack-api Act in Slack Runs SEND_MESSAGE.
Neither Salesforce nor Slack credentials leave your machine — both live in a local vault.
Salesforce → Slackpaste into a new workflow
{
  "id": "5f2b45d1-1984-418d-a4c6-a4963c6dc40e",
  "name": "Salesforce → Slack",
  "nodes": [
    {
      "id": "233dcf67-b869-4a1a-adf9-cd0f54c98690",
      "text": "Poll Salesforce",
      "x": 512,
      "y": 144,
      "isEditing": false,
      "type": "trigger-timer",
      "icon": "connect",
      "category": "trigger",
      "isSelected": false,
      "parameters": {
        "interval": "15",
        "unit": "minutes"
      },
      "description": "Checks Salesforce on a schedule.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "95ad2749-3666-4523-a0b2-dab4a9bf741e",
      "text": "Read it and decide",
      "x": 512,
      "y": 336,
      "isEditing": false,
      "type": "agnt-agent",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "instructions": "Read the Salesforce item. Decide whether it warrants action in Slack, and explain why."
      },
      "description": "Decides whether this Salesforce item warrants anything in Slack.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "4ff5817a-0790-44ba-a7db-4952ad52f03c",
      "text": "Act in Slack",
      "x": 512,
      "y": 528,
      "isEditing": false,
      "type": "slack-api",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "action": "SEND_MESSAGE"
      },
      "description": "Interact with Slack to perform various operations such as sending messages, uploading files, managing reactions, and more.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    }
  ],
  "edges": [
    {
      "id": "01d078d2-29ac-4937-a683-e7e536d36c8a",
      "start": {
        "id": "233dcf67-b869-4a1a-adf9-cd0f54c98690",
        "type": "output"
      },
      "end": {
        "id": "95ad2749-3666-4523-a0b2-dab4a9bf741e",
        "type": "input"
      },
      "startX": 800,
      "startY": 168,
      "endX": 512,
      "endY": 360
    },
    {
      "id": "9e304f72-3a06-4568-a43e-0b72fc6ce548",
      "start": {
        "id": "95ad2749-3666-4523-a0b2-dab4a9bf741e",
        "type": "output"
      },
      "end": {
        "id": "4ff5817a-0790-44ba-a7db-4952ad52f03c",
        "type": "input"
      },
      "startX": 800,
      "startY": 360,
      "endX": 512,
      "endY": 552
    }
  ],
  "zoomLevel": 1,
  "canvasOffsetX": 0,
  "canvasOffsetY": 0,
  "isTinyNodeMode": false
}

Install Lead Researcher

Lead Researcher already uses both Salesforce and Slack, so installing it gives you this exact hand-off wired up — connected, editable, and running on your own machine.

Runs on your own machine · See what it does

What building this looks like

  1. Download AGNT Community Core — free and local-first.
  2. Connect Salesforce with one OAuth sign-in and Slack with one OAuth sign-in; both land in the local vault.
  3. Start from a marketplace workflow, or drop a custom-api node and slack-api onto the canvas with an agent between them.
  4. Put an approval gate on anything consequential, then run it — the receipt shows what was read in Salesforce and what was written to Slack.

Salesforce and Slack — common questions

Can I connect Salesforce to Slack without writing code?

Yes. Salesforce connects with one OAuth sign-in and Slack with one OAuth sign-in, both from the local credential vault. You then describe the job in plain language — “when a lead or opportunity changes, post a rich channel message” — and the agent handles the rest.

How is this different from a field-mapping Salesforce to Slack automation?

The difference shows up on the messy inputs. A rule chain needs every case enumerated in advance; an agent handles hygiene enforced across the pipeline the way a colleague would — reading the Salesforce context, judging it, then writing to Slack with the reasoning recorded.

Does my Salesforce and Slack data leave my machine?

AGNT Community Core is local-first, so there is no vendor middleman holding your Salesforce or Slack tokens. The runtime talks directly to both services. Choose a local model and the content of what it reads never leaves the machine at all.

What does a Salesforce and Slack run leave behind?

A receipt: what was read in Salesforce, which tools ran with which arguments, what the agent concluded, and what it wrote to Slack. Anything consequential can sit behind an approval gate so a person signs off before it happens.

Give AI a job. Get the proof.