Automate Discord + Salesforce
Community chat with an automation-friendly API. 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.
Support First Responder is a ready-made agent built around Discord; point its last step at Salesforce to finish this hand-off.
Automations teams run
These are not field mappings. An agent reads the Discord side, works out what it means, and only then decides what — if anything — should happen in Salesforce.
When a message posts in a channel in Discord…
…an agent can update records and fields in Salesforce — after reading the context and deciding it should.
When a member joins in Discord…
…an agent can create tasks and notes in Salesforce — after reading the context and deciding it should.
When a keyword appears in Discord…
…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 post channel messages in Discord — with the reasoning recorded in the run’s receipt.
When a task is due in Salesforce…
…an agent can DM members in Discord — with the reasoning recorded in the run’s receipt.
When a report cycle begins in Salesforce…
…an agent can publish digests in Discord — with the reasoning recorded in the run’s receipt.
Discord to Salesforce, setup template
Start with the discord-api node and a custom-api call to {instance}.my.salesforce.com. Configure the Discord source payload, the agent input, and the Salesforce operation. The sequential template does not implement conditional writes or approval by itself.
This is a schema-checked starting point, not an end-to-end tested automation. Replace every CONFIGURE_ value, choose the operations you intend, connect credentials and map source outputs into later inputs. An edge orders steps; it does not supply a condition, an approval gate or a field mapping. Add and test those controls explicitly before any write. Cloud APIs and model providers may receive data. Keep the workflow inactive until tested with fixtures.
{
"id": "fa28db05-2616-42ea-a416-453f122a743c",
"name": "Discord → Salesforce",
"nodes": [
{
"id": "e598f85f-2ad7-4bac-a37a-5e77801d2dc4",
"text": "Watch Discord",
"x": 512,
"y": 144,
"isEditing": false,
"type": "receive-discord-message",
"icon": "connect",
"category": "trigger",
"isSelected": false,
"parameters": {
"channelId": "CONFIGURE_CHANNELID"
},
"description": "Setup template for Receive Discord Message. Listen for incoming Discord messages in a specified channel and trigger the workflow when a new message is received. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "5d2cf967-c118-45a1-ae99-0076f023321a",
"text": "Review source and draft",
"x": 512,
"y": 336,
"isEditing": false,
"type": "agnt-agent",
"icon": "connect",
"category": "action",
"isSelected": false,
"parameters": {
"agentId": "CONFIGURE_AGENTID",
"message": "Read the Discord item. Decide whether it warrants action in Salesforce, and explain why.\nSource input: CONFIGURE_SOURCE_INPUT. Produce a reviewable draft only; do not take external actions."
},
"description": "Setup template for Agent Chat. Chat with an AI agent from your agent library. Select an agent and send messages to interact with it within your workflow. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "cf3129fd-61fe-4b76-a9f3-a33769dcd398",
"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": "GET",
"authType": "None",
"query": "",
"headers": "{}"
},
"description": "Setup template for Custom API Request. This action node makes a custom API request to any endpoint with configurable method, headers, and authentication. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
}
],
"edges": [
{
"id": "5d8b3697-3338-47fb-a0d8-c9ae62095ace",
"start": {
"id": "e598f85f-2ad7-4bac-a37a-5e77801d2dc4",
"type": "output"
},
"end": {
"id": "5d2cf967-c118-45a1-ae99-0076f023321a",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "e5e393d5-58a9-4620-a187-b99b3a011680",
"start": {
"id": "5d2cf967-c118-45a1-ae99-0076f023321a",
"type": "output"
},
"end": {
"id": "cf3129fd-61fe-4b76-a9f3-a33769dcd398",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
Configure Receive Discord Message
Listen for incoming Discord messages in a specified channel and trigger the workflow when a new message is received.
- channelId — The ID of the Discord channel to monitor Current example:
CONFIGURE_CHANNELID.
Configure Custom API Request
This action node makes a custom API request to any endpoint with configurable method, headers, and authentication.
- url — The URL of the API endpoint Current example:
https://{instance}.my.salesforce.com/services/data/v59.0/sobjects/Contact. - method — The HTTP method for the request Current example:
GET. - authType — The type of authentication Current example:
None. - query — Query parameters for the request (e.g., 'key1=value1&key2=value2') Current example:
. - headers — Optional headers for the request. e.g., {"Content-Type": "application/json"} Current example:
{}.
Install Support First Responder
Support First Responder is a working agent built around Discord. 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
What building this looks like
- Get AGNT Community Core. Free, local, no sign-up needed to run a workflow.
- Add both connections to the vault — Discord takes an API key pasted into the vault, Salesforce takes one OAuth sign-in.
- Configure the nodes above, or start from a marketplace workflow and edit it. The agent in the middle is the part worth spending time on.
- Run it once with an approval gate in place. The receipt tells you what it read, what it concluded, and what it changed in Salesforce.
Discord and Salesforce — common questions
Can I connect Discord to Salesforce without writing code?
Yes. Discord connects with an API key pasted into the vault and Salesforce with one OAuth sign-in, both from the local credential vault. You then describe the job in plain language — “when a message posts in a channel, update records and fields” — and the agent handles the rest.
How is this different from a field-mapping Discord to Salesforce automation?
A field mapping copies values and breaks on the first record nobody anticipated. The middle step here reads the Discord item in full and decides — whether it matters, how to summarise it, and what belongs in Salesforce. Deciding to do nothing is a valid outcome, which no mapping can express.
Does my Discord and Salesforce data leave my machine?
Your credentials stay in a vault on your own disk rather than in someone else’s cloud. The only calls made are the ones the workflow needs: Discord, Salesforce, and your chosen model provider — which can be a local one.
What does a Discord and Salesforce run leave behind?
You get an auditable trail rather than a success flag. It shows the Discord 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.