The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "TrustLoop + Signatrust: AI Governance Pipeline",
"nodes": [
{
"parameters": {},
"id": "e9c1d1a1-f3f2-4e4b-b7c1-8d2b3c4d5e6f",
"name": "AI Decision Request",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
200,
300
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "action_type",
"value": "send_refund"
},
{
"name": "customer_id",
"value": "CUST-9821"
},
{
"name": "amount",
"value": "150.00"
},
{
"name": "reason",
"value": "Customer requested refund for delayed shipment."
}
]
},
"options": {}
},
"id": "a1b2c3d4-e5f6-4a5b-8c7d-9e0f1a2b3c4d",
"name": "Prepare Decision Payload",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
400,
300
]
},
{
"parameters": {
"method": "POST",
"url": "https://httpbin.org/post",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "action",
"value": "={{ $json.action_type }}"
},
{
"name": "amount",
"value": "={{ $json.amount }}"
},
{
"name": "status",
"value": "APPROVED"
},
{
"name": "policy_id",
"value": "POL-REFUND-001"
}
]
},
"options": {}
},
"id": "f1e2d3c4-b5a6-4c7d-8e9f-0a1b2c3d4e5f",
"name": "TrustLoop: Policy Check",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
600,
300
],
"notesInFlow": true,
"notes": "Simulates TrustLoop intercepting the tool call and applying policies before execution."
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "23631024-411a-4934-85ba-b7e63b6d2673",
"leftValue": "={{ $json.json.status }}",
"rightValue": "APPROVED",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e",
"name": "Policy Decision",
"type": "n8n-nodes-base.if",
"typeVersion": 3.1,
"position": [
800,
300
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "execution_status",
"value": "Success"
},
{
"name": "transaction_id",
"value": "TXN-778899"
}
]
},
"options": {}
},
"id": "c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f",
"name": "Execute Action",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1040,
200
],
"notesInFlow": true,
"notes": "The actual tool execution (e.g., Stripe Refund API) happens here after TrustLoop approval."
},
{
"parameters": {
"values": {
"string": [
{
"name": "execution_status",
"value": "Blocked by TrustLoop Policy"
}
]
},
"options": {}
},
"id": "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a",
"name": "Log Rejection",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1040,
400
]
},
{
"parameters": {
"operation": "create",
"payload": "={{ JSON.stringify({ action: $('Prepare Decision Payload').item.json.action_type, amount: $('Prepare Decision Payload').item.json.amount, customer: $('Prepare Decision Payload').item.json.customer_id, policy_approved_by: 'TrustLoop', policy_id: $('TrustLoop: Policy Check').item.json.json.policy_id, execution_tx: $json.transaction_id }) }}",
"tags": "refund,trustloop_approved",
"metadata": "={{ JSON.stringify({ system: 'n8n', source: 'TrustLoop_Pipeline' }) }}"
},
"id": "e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b",
"name": "Signatrust: Seal Decision",
"type": "n8n-nodes-signatrust.signatrust",
"typeVersion": 1,
"position": [
1260,
200
],
"notesInFlow": true,
"notes": "Generates a cryptographically verifiable Decision Receipt for the executed action."
},
{
"parameters": {
"method": "POST",
"url": "https://api.signatrust.net/v1/receipts/verify",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "receipt_id",
"value": "={{ $json.receipt_id }}"
}
]
},
"options": {}
},
"id": "f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c",
"name": "Verify Receipt (Optional)",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1480,
200
]
}
],
"connections": {
"AI Decision Request": {
"main": [
[
{
"node": "Prepare Decision Payload",
"type": "main",
"index": 0
}
]
]
},
"Prepare Decision Payload": {
"main": [
[
{
"node": "TrustLoop: Policy Check",
"type": "main",
"index": 0
}
]
]
},
"TrustLoop: Policy Check": {
"main": [
[
{
"node": "Policy Decision",
"type": "main",
"index": 0
}
]
]
},
"Policy Decision": {
"main": [
[
{
"node": "Execute Action",
"type": "main",
"index": 0
}
],
[
{
"node": "Log Rejection",
"type": "main",
"index": 0
}
]
]
},
"Execute Action": {
"main": [
[
{
"node": "Signatrust: Seal Decision",
"type": "main",
"index": 0
}
]
]
},
"Signatrust: Seal Decision": {
"main": [
[
{
"node": "Verify Receipt (Optional)",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
},
"meta": {
"templateCredsSetupCompleted": true
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
TrustLoop + Signatrust: AI Governance Pipeline. Uses httpRequest, n8n-nodes-signatrust. Event-driven trigger; 8 nodes.
Source: https://github.com/abokenan444/trustloop-signatrust-integration/blob/master/trustloop_signatrust_workflow.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow listens for an “Approved” label on a Trello card, reads the AI draft bookkeeping JSON from card comments, and posts the corresponding transaction to Xero. It then adds a Xero deep link b
02_LLM_Pipeline v1.0. Uses executeWorkflowTrigger, httpRequest, seaTable. Event-driven trigger; 65 nodes.
This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t
[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.
[](https://youtu.be/c7yCZhmMjtI)