Integrations

Every way TruthLock plugs in.

TruthLock checks an answer before anyone relies on it. That check has to happen where the answer is made: in an agent, in a service console, in an automation, in your own code. There are three doors in, and they all open onto the same record.

TruthLock now works everywhere your AI does: a check-mark seal wired to Salesforce, ServiceNow, Agentforce, Now Assist, Zapier, n8n, Make, Power Automate, Workato, MuleSoft, Claude, ChatGPT, Postman and Retool
Download the image

Works today

Agents, over MCP

Every stack serves a remote Model Context Protocol server with OAuth sign-in. Agentforce, Now Assist, Claude, ChatGPT, Claude Code and Cursor connect to one URL and get five tools: fast check, verify, get the record, reliance check, and ask. Nothing to deploy on the platform side.

https://app.truthlock.io/mcp

Packages ready

Platforms, with a package

Salesforce, ServiceNow, Zapier, n8n, Make, Power Automate, Workato and MuleSoft each have a package: actions for the four calls, and a trigger that fires when a verification finishes. Each is downloadable inside the app with a step-by-step guide that fills in your organization and stack.

app.truthlock.io → Integrate → Platforms

Works today

Code, with the API

A REST API, Python and TypeScript SDKs, a CLI, signed webhooks, and an OpenAPI 3.0 profile (and a Swagger 2.0 rendering) that any connector builder imports. Five calls cover almost every integration ever written.

POST /v1/organizations/{org}/assess
POST /v1/organizations/{org}/verify
GET  …/verifications/{id}/digest

Platforms

One package per platform, each with the same four actions and a trigger.

Fast check answers in about ten seconds, inside every platform's synchronous limit. Verify starts the full run and returns at once. Get digest reads the finished record as one flat row: outcome, grade, counts, the attestation link, and the reliance decisions. Reliance check answers allow, review or deny for an operation. The trigger subscribes a webhook when a workflow is switched on and removes it when it is switched off.

Agentforce Works today

Mounts the MCP server with OAuth as an agent's tool source. Or, in the Salesforce package, the same four calls as Apex agent actions.

Now Assist Works today

AI Agent Fabric mounts the MCP server. Flow Designer actions come from the Spoke Generator fed the OpenAPI profile.

Claude, ChatGPT, Claude Code, Cursor Works today

Add the MCP URL as a connector and sign in. The agent checks its own answer and corrects it before anyone reads it.

Salesforce Package

A DX project: four Invocable Apex actions for Flow Builder and Agentforce over a named credential, with tests; an External Service registration and three subflows for an org without custom Apex.

Deploy with the Salesforce CLI, enter the key in Setup, assign a permission set.

ServiceNow Package

An update set: a Script Include for the four calls, a Scripted REST receiver that checks the webhook signature and raises a platform event, a Script Action that writes the finding on the record, and a rule that verifies knowledge articles on publish.

Import the update set, set five system properties, point the webhook at the receiver.

Zapier Package

Four actions and an instant trigger, plus a polling trigger for accounts without inbound webhooks. Retries never bill twice.

Push with the Zapier CLI and invite users; a public listing comes after review.

n8n Package

A community node with the calls and a trigger node that verifies every delivery's signature over the raw body before it becomes an item.

Install n8n-nodes-truthlock from Settings → Community Nodes.

Make Package

A custom app: action and search modules and an instant trigger that registers its webhook when the scenario is activated.

Import the app folder with the Make Apps SDK extension.

Power Automate Package

A custom connector for Power Automate, Power Apps and Logic Apps, generated from the Swagger rendering of the profile, with a webhook trigger.

Import the OpenAPI file in the maker portal, set the API key on the Security tab.

Workato Package

A connector in the SDK DSL with the four actions, a webhook trigger, and a polling trigger with a cursor.

Paste the connector source into the Connector SDK and release it.

MuleSoft Package

Publish the profile to Anypoint Exchange and REST Connect generates the connector. Two Mule 4 examples cover plain HTTP and the signed webhook in DataWeave.

Upload the OpenAPI asset; add the generated connector in Studio.

Anything that imports OpenAPI Works today

Postman, Retool, Bubble, Pipedream, Tray, Boomi, SnapLogic, Azure API Management: import the profile, set a bearer token, and the nine operations appear.

/v1/integrations/openapi.json on every stack; Swagger 2.0 at …/swagger.json.

The packages are complete, tested as far as a repository can test them, and downloadable in the app. None has been listed in a platform's store yet; those listings follow the first customer on each platform. Agentforce, Now Assist, Claude and the rest connect over MCP today with nothing to install.

Triggers

Push, signed. Or poll, flat.

A workflow that wants to hear about finished verifications subscribes a URL of its own and gets a signing secret of its own. Every event carries TruthLock-Signature, an HMAC over the exact bytes sent, so a receiver can prove who sent it. A platform that cannot take a webhook polls the digest list instead: flat rows, newest first, filtered by status and time.

Subscriptions are managed under Integrate → Webhooks in the app, and by every package when a workflow is switched on or off.

POST /v1/webhooks
{ "url": "https://hooks.example.com/…",
  "organization": "field-safety",
  "events": ["verification.completed", "verification.failed"] }
→ 201 { "id": "…", "secret": "whsec_…" }

event  verification.completed
{ "data": { "id": "…", "outcome": "completed",
            "external_id": "500Hs00000ABCDE",
            "overall": { "grade": "SUPPORTED" },
            "reliance": { "display": "allow", "act": "review" } } }

GET …/verifications/digests?status=done&created_after=…

What every integration gets

The same five properties, whichever door you came in.

Retries that never bill twice

Every call that starts work takes an idempotency key. A platform that retries a timed-out call gets the run already started, not a second one.

An outcome to branch on

Beside the lifecycle status, every result says what to do next: pending, completed, needs input, timeout, failed. A polling loop takes that branch.

A flat digest

Grade, counts per grade, reliance decisions, claims as rows, and the attestation link, with no free-form objects, so a Flow or a spoke maps every field.

A reliance decision

Allow, review or deny for the operation at hand: display, quote, act. The gate before Send, in any platform.

An attestation anyone can check

Every finished record is signed, and its public page proves it exists and stands without publishing the claims. Put the link on the case, the ticket, the article.

One organization's sources

Every call names an organization, and the grading runs against that organization's declared, ranked sources. The integration carries the slug; the policy lives in TruthLock.

Build your own

Five calls, one profile, two SDKs, a CLI.

The integration profile is an OpenAPI 3.0 document served by every stack, derived from the API's own schema, in the dialect connector builders accept. The full API is at /openapi.json. The Python package is truthlock-io, the npm package @truthlock-io/sdk, and the truthlock command ships with the Python package.

Read the API → · The MCP server → · Webhooks →

pip install truthlock-io
truthlock assess "The refund window is 30 days." --org field-safety

npm install @truthlock-io/sdk
const tl = new TruthLock({ apiKey, organization: "field-safety" });
const check = await tl.assess({ response: draft, idempotencyKey: caseId });
if (check.verdict === "hold") { /* do not send */ }

Pick the door. The record is the same on the other side.