Consent, strict mode and proof
Last updated: September 8, 2026
Every call GodSetter places starts from a lead your CRM workflow sends over. That trigger can carry consent proof — a record of how the lead opted in — and GodSetter can enforce it: with strict mode on, a lead that arrives without valid proof is never called.
GodSetter gives you the mechanism, not the policy. Whether you require consent proof, and what counts as a valid opt-in under your obligations (GDPR, TCPA or any other rules that apply in your markets), is a decision for your agency and its own legal counsel.
What consent proof looks like
When your workflow fires the webhook that triggers a call, it can attach a
consentProof object to the request body. In plain terms, the proof answers three
questions:
- Where the consent comes from — the identifier of the opt-in form or funnel step the lead submitted.
- When it was given — the date and time of the submission.
- What was included (optional) — a list of the form fields or consent statements that were part of the submission.
A proof is valid when it identifies the form and carries the submission time. The optional field list adds context but is not required.
See Wire your CRM workflow to an agent
for where consentProof sits in the webhook body.
How strict mode changes behavior
Strict mode lives in Settings, in the Compliance strict mode card — the toggle is labeled Enable compliance gate.
| Strict mode | Trigger without valid proof | Trigger with valid proof |
|---|---|---|
| Off | Call proceeds | Call proceeds; proof saved on the lead |
| On | Call is not placed — the trigger is skipped and the contact gets the configurable "Skipped: missing consent" tag | Call proceeds; proof saved on the lead |
One integration caveat. The branded "Start call cycle" workflow action
carries no consent proof: with strict mode on, leads arriving through it are
always skipped as no_consent. Use the generic webhook — which can send
consentProof — for any client whose calls must be consent-gated.
Three details worth knowing:
- A skip is not a block. A skipped lead is not penalized in any way: a new trigger for the same contact that does include valid proof proceeds normally.
- A skipped lead is still recorded. The contact is created or refreshed in GodSetter (with any valid proof it carried), so you can see it in Leads — but the retry plan of an earlier cycle is left exactly where it was.
- The skip tag is configurable. The tag name comes from the CRM tags card in Settings (the "Skipped: missing consent" event). Leave the field empty to apply no tag — the skip itself still happens.
With strict mode off, nothing is enforced — but any valid proof your workflow sends is still saved and shown on the lead, so you build the audit trail either way.
Where you see the proof
- The Leads page has a Consent column: "Consent proof on file" or "No consent proof" for each lead.
- The lead detail page has a Consent card showing the Form ID and the Submitted at time — or "No consent proof on file." when nothing was sent.
- The Leads page shows a Skipped: missing consent badge in place of the last outcome for a lead whose latest trigger was refused, and the lead detail page repeats it in a Last skip row. The badge disappears as soon as the lead is actually dialed.
A lead created by the in-app Send a test lead card carries a synthetic proof
with form ID test-lead — the operator asking to be called on their own number.
The first real workflow trigger for that contact clears it.
Populate the proof from your opt-in form
The practical recommendation: in the CRM workflow that triggers calls, map your
opt-in form's identifier and submission timestamp into the consentProof field.
The data already exists in your funnel — passing it along costs one mapping step
and gives every lead its own consent record inside GodSetter.
Where to go next
- Wire your CRM workflow to an agent
— where the
consentProoffield goes. - Customize your CRM tags — including the "Skipped: missing consent" tag.
- Do-Not-Call: blocking and unblocking leads — the other compliance guardrail.
