Automate PostgreSQL + Salesforce
The production database your reports should come from. 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.
Report Assembler is a ready-made agent built around PostgreSQL; 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 PostgreSQL event rather than a transcription of it.
When a scheduled query runs in PostgreSQL…
…an agent can update records and fields in Salesforce — after reading the context and deciding it should.
When a threshold is crossed in PostgreSQL…
…an agent can create tasks and notes in Salesforce — after reading the context and deciding it should.
When a lead or opportunity changes in Salesforce…
…an agent can run parameterised queries in PostgreSQL — with the reasoning recorded in the run’s receipt.
When a task is due in Salesforce…
…an agent can write validated rows in PostgreSQL — with the reasoning recorded in the run’s receipt.
When a report cycle begins in Salesforce…
…an agent can produce report extracts in PostgreSQL — with the reasoning recorded in the run’s receipt.
PostgreSQL to Salesforce, setup template
Start with a custom-api call to {host}:5432 and a custom-api call to {instance}.my.salesforce.com. Configure the PostgreSQL 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": "2928c691-739d-4771-aad7-97a62404880e",
"name": "PostgreSQL → Salesforce",
"nodes": [
{
"id": "dbeab694-265a-4a46-a57c-628612a83e74",
"text": "Run on a schedule",
"x": 512,
"y": 144,
"isEditing": false,
"type": "trigger-timer",
"icon": "connect",
"category": "trigger",
"isSelected": false,
"parameters": {
"fireOnStart": "No",
"scheduleType": "Interval",
"schedule": "Every 15 Minutes"
},
"description": "Setup template for Timer Trigger. This trigger node fires the workflow at specified intervals or at a specific time. Configure credentials, inputs and output mapping before use.",
"error": null,
"isActive": false,
"output": null,
"outputs": {}
},
{
"id": "40612a8a-f392-4901-ad66-892d56ddb68a",
"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 PostgreSQL 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": "fd37bf85-245d-4332-a3c9-4b933a0925a4",
"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": "b46f3573-31e1-4d83-ab40-76d872e460e6",
"start": {
"id": "dbeab694-265a-4a46-a57c-628612a83e74",
"type": "output"
},
"end": {
"id": "40612a8a-f392-4901-ad66-892d56ddb68a",
"type": "input"
},
"startX": 800,
"startY": 168,
"endX": 512,
"endY": 360
},
{
"id": "4eaef485-e2a6-416f-a3c1-f5e6ed2ffc66",
"start": {
"id": "40612a8a-f392-4901-ad66-892d56ddb68a",
"type": "output"
},
"end": {
"id": "fd37bf85-245d-4332-a3c9-4b933a0925a4",
"type": "input"
},
"startX": 800,
"startY": 360,
"endX": 512,
"endY": 552
}
],
"zoomLevel": 1,
"canvasOffsetX": 0,
"canvasOffsetY": 0,
"isTinyNodeMode": false
}
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 Report Assembler
Report Assembler is a working agent built around PostgreSQL. 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 — PostgreSQL takes a local endpoint on your own machine, 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.
PostgreSQL and Salesforce — common questions
Can I connect PostgreSQL to Salesforce without writing code?
You can build it entirely from the canvas. Authorise PostgreSQL with a local endpoint on your own machine, Salesforce with one OAuth sign-in, then tell the agent what metrics pulled straight from source 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 PostgreSQL to Salesforce automation?
The difference shows up on the messy inputs. A rule chain needs every case enumerated in advance; an agent handles metrics pulled straight from source the way a colleague would — reading the PostgreSQL context, judging it, then writing to Salesforce with the reasoning recorded.
Does my PostgreSQL and Salesforce data leave my machine?
AGNT Community Core is local-first, so there is no vendor middleman holding your PostgreSQL or Salesforce 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 PostgreSQL and Salesforce run leave behind?
You get an auditable trail rather than a success flag. It shows the PostgreSQL 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.