Governing Salesforce Agentforce: authority and proof for CRM agents
A CRM agent touches the most regulated data a company holds: its customers'. Platform guardrails frame the model; they cannot know whether THIS contact, to THIS customer, in THIS jurisdiction, respects consent and transfer rules.
Agentforce puts AI agents to work inside the CRM: lead qualification, customer replies, sales follow-ups, case summaries. These agents operate in direct contact with the company's most regulated data — contact details, purchase histories, conversations — and their most useful actions are precisely the outbound ones: sending an email, sharing a record, syncing to another tool.
Platform controls frame the model and access to CRM objects. What they cannot know is the law that applies to the action: did this prospect consent to being contacted? Does exporting this segment to a marketing tool hosted elsewhere trigger a transfer obligation? Those questions depend on your jurisdictions and your profile — not on the platform.
The integration scenario
The principle: wherever your Salesforce flow can make an outbound HTTP call — an external action in a flow, a service the agent calls before its send step — you insert the decision BEFORE the action. The authority layer is a network call, not a package to install in your org.
- 1
Generate your organization's profile
The free assessment (start here) produces your policy profile: your customers' jurisdictions, your sector, the data categories your CRM processes. That profile personalizes every decision.
- 2
Create an API key with the authority scope
From your StructureClerk dashboard. Personalized decisions go through the key; verifying evidence stays public.
- 3
Insert the call before the outbound action
In the flow that precedes the email send, segment export or sync, call the decision endpoint with the action's metadata — never the message content or the customer data itself.
curl -X POST https://structureclerk.ca/api/v1/authority/decide \ -H 'Authorization: Bearer $API_KEY' \ -H 'Content-Type: application/json' \ -d '{"agent":{"id":"agentforce-sdr","autonomy_level":3},"action":{"type":"send.customer_email","data_categories":["personal"]},"context":{"jurisdictions":["CA_QC","FR"],"sector":"tech"}}' - 4
Wire the four verbs to your flows
ALLOW lets the send go out. APPROVE creates a human approval task. DENY stops the flow and logs the reason on the record. ESCALATE notifies compliance. The evidence identifier attaches to the CRM record: the audit lives in the customer file.
The decision contract
POST https://structureclerk.ca/api/v1/authority/decide
{
"agent": { "id": "agentforce-sdr", "autonomy_level": 3 },
"action": {
"type": "send.customer_email",
"data_categories": ["personal"]
},
"context": { "jurisdictions": ["CA_QC", "FR"], "sector": "tech" }
}
// →
{
"decision": "APPROVE",
"reason": "external_personal_data_transfer",
"confidence": 0.95,
"evidence_id": "ev_2b71…e04a"
}The decision is advisory — StructureClerk decides, your infrastructure enforces. The engine never sees the email content or the customer records: only the action type, data categories and jurisdictional context.
| Decision | Effect in Salesforce |
|---|---|
| ALLOW | The flow continues, evidence attached to the record |
| APPROVE | A human approval task is created before the send |
| DENY | The flow stops, the reason is logged on the record |
| ESCALATE | Compliance is notified, the action waits |
An audit trail your customers can verify
Every decision leaves Ed25519-signed, chained evidence. When an enterprise customer asks how your CRM agents respect consent and transfer rules, you hand over evidence they verify themselves on our verification page — no account, no depending on your word.
Because the engine is jurisdictional, the same campaign can receive two answers: the send to customers in one jurisdiction passes, the same send to another requires validation — because the recipient's law changes the decision. That is what no internal platform rule models.
+How do I audit Agentforce agent actions?
By rendering an authority decision before each outbound action: every call produces Ed25519-signed, chained, timestamped evidence carrying the rule applied. The evidence verifies publicly — an audit trail a third party can check, not a log only you can read.
+Is Agentforce GDPR or Law 25 compliant?
Compliance is never a platform's: it belongs to your deployment — your purposes, your consents, your jurisdictions. That is exactly why an external layer is needed: it evaluates each action against YOUR regulatory profile, and leaves the proof.
+Do we need to install a package in our Salesforce org?
No. The integration is an HTTP call inserted into your existing flows before the sensitive action. No package, no access to your data: the engine only receives action metadata.
+Which plan fits a team of CRM agents?
The Team plan covers 50,000 decisions per month for 500 $ CAD — sized for agents triggering dozens of sensitive actions a day. Beyond that, prepaid credits, never a wall.
Start with the profile
The assessment is what personalizes the decisions your agents receive. It is free, and only needs your website address.