Knowledge × CRM
NotionSalesforceAGNT

Automate Notion + Salesforce

The team wiki agents can actually keep current. The enterprise system of record for revenue. Put an agent between them and the hand-off stops being manual: it reads, decides, acts, and shows its work.

Install Content Producer → Get AGNT free

Content Producer is a ready-made agent built around Notion; point its last step at Salesforce to finish this hand-off.

Automations teams run

Each of these runs with a reasoning step between the two tools, so what reaches Salesforce is a decision about the Notion event rather than a transcription of it.

When a page is created or edited in Notion…

…an agent can update records and fields in Salesforce — after reading the context and deciding it should.

When a database row changes in Notion…

…an agent can create tasks and notes in Salesforce — after reading the context and deciding it should.

When a status flips in Notion…

…an agent can extract report data in Salesforce — after reading the context and deciding it should.

When a lead or opportunity changes in Salesforce…

…an agent can create and update pages in Notion — with the reasoning recorded in the run’s receipt.

When a task is due in Salesforce…

…an agent can write database rows in Notion — with the reasoning recorded in the run’s receipt.

When a report cycle begins in Salesforce…

…an agent can append meeting notes in Notion — with the reasoning recorded in the run’s receipt.

The Notion and Salesforce hand-off, in full

Notion is reached through the notion-api node and Salesforce through a custom-api call to {instance}.my.salesforce.com. Between them sits the agent, which is the part a field-mapping tool cannot do: it reads the item and decides whether the hand-off is warranted at all.

Notion to Salesforce: watch notion → read it and decide → call salesforce TRIGGER notion-api Watch Notion Fires the moment it happens. ACTION agnt-agent Read it and decide Judged against your own rules. ACTION custom-api Call Salesforce POST · oauth 2.0 bearer
Local end to end. The receipt records what was read in Notion and what was written in Salesforce.
Notion → Salesforcepaste into a new workflow
{
  "id": "7909715a-e8bc-4614-a12b-93f6ee38eab0",
  "name": "Notion → Salesforce",
  "nodes": [
    {
      "id": "cb6448b0-2573-4d7f-ae41-45db00b47a16",
      "text": "Watch Notion",
      "x": 512,
      "y": 144,
      "isEditing": false,
      "type": "notion-api",
      "icon": "connect",
      "category": "trigger",
      "isSelected": false,
      "parameters": {},
      "description": "Interact with Notion - search, query databases, get pages, and create pages.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "5f166bbf-e1a4-4c89-a457-aafccacd7fee",
      "text": "Read it and decide",
      "x": 512,
      "y": 336,
      "isEditing": false,
      "type": "agnt-agent",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "instructions": "Read the Notion item. Decide whether it warrants action in Salesforce, and explain why."
      },
      "description": "Decides whether this Notion item warrants anything in Salesforce.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    },
    {
      "id": "f43dcc33-1c0e-421d-a3f6-09dcbba367fe",
      "text": "Call Salesforce",
      "x": 512,
      "y": 528,
      "isEditing": false,
      "type": "custom-api",
      "icon": "connect",
      "category": "action",
      "isSelected": false,
      "parameters": {
        "url": "https://{instance}.my.salesforce.com/services/data/v59.0/sobjects/Contact",
        "method": "POST"
      },
      "description": "Writes into Salesforce over its API.",
      "error": null,
      "isActive": false,
      "output": null,
      "outputs": {}
    }
  ],
  "edges": [
    {
      "id": "75e26882-6994-4dfc-a536-fab2b524c52c",
      "start": {
        "id": "cb6448b0-2573-4d7f-ae41-45db00b47a16",
        "type": "output"
      },
      "end": {
        "id": "5f166bbf-e1a4-4c89-a457-aafccacd7fee",
        "type": "input"
      },
      "startX": 800,
      "startY": 168,
      "endX": 512,
      "endY": 360
    },
    {
      "id": "e79ce2a5-b94f-42ef-a471-0f0cb6842f02",
      "start": {
        "id": "5f166bbf-e1a4-4c89-a457-aafccacd7fee",
        "type": "output"
      },
      "end": {
        "id": "f43dcc33-1c0e-421d-a3f6-09dcbba367fe",
        "type": "input"
      },
      "startX": 800,
      "startY": 360,
      "endX": 512,
      "endY": 552
    }
  ],
  "zoomLevel": 1,
  "canvasOffsetX": 0,
  "canvasOffsetY": 0,
  "isTinyNodeMode": false
}

Install Content Producer

Content Producer is a working agent built around Notion. Install it, point its last step at Salesforce, and you have this hand-off without building it from an empty canvas.

Runs on your own machine · See what it does

Wiring Notion to Salesforce

  1. Install AGNT — it runs on your own machine and needs no account to start.
  2. Authorise Salesforce (one OAuth sign-in) and Notion (one OAuth sign-in). Nothing is stored anywhere but your disk.
  3. Describe the job in plain language, or paste the definition above; notion-api does the reading and custom-api the writing.
  4. Gate anything you would not want done unattended, then let it run and read the first receipt end to end.

Notion and Salesforce — common questions

Can I connect Notion to Salesforce without writing code?

You can build it entirely from the canvas. Authorise Notion with one OAuth sign-in, Salesforce with one OAuth sign-in, then tell the agent what meeting notes filed where they belong should look like once Salesforce is involved. Code is an option for the unusual cases, never a requirement for the common ones.

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

The difference shows up on the messy inputs. A rule chain needs every case enumerated in advance; an agent handles meeting notes filed where they belong the way a colleague would — reading the Notion context, judging it, then writing to Salesforce with the reasoning recorded.

Does my Notion and Salesforce data leave my machine?

Not to us. AGNT runs locally and both sets of credentials are encrypted on your own disk. Outbound traffic goes only to Notion, Salesforce and whichever model you chose — and pointing that at Ollama or LM Studio keeps everything on your hardware.

What does a Notion and Salesforce run leave behind?

You get an auditable trail rather than a success flag. It shows the Notion context the agent worked from, the judgment it made about hygiene enforced across the pipeline, and the exact change applied in Salesforce, with approvals attached where you required them.

Give AI a job. Get the proof.