Zapier
DataContractGate on Zapier
Zapier pulls records out of systems that will never get a producer of their own: a sheet row, a form entry, a CRM contact. Validate Record checks that record against a deployed contract before the next step writes it.
DataContractGate in the Zapier app directory →
Five pre-built workflows
Each launcher opens the Zap editor with the apps and the DataContractGate step already chosen. Where the trigger hands you separate fields, add a Code by Zapier step that turns them into one JSON record before Validate Record.
Google SheetsDataContractGateAirtable
1. Validate new Google Sheets rows with DataContractGate before adding them to Airtable
- Trigger: Google Sheets → New Spreadsheet Row.
- Code by Zapier → Run Javascript:
output = [{ record: JSON.stringify(inputData) }];
- DataContractGate → Validate Record. Map
record from the Code step. Leave “Stop the Zap when the record fails” on.
- Airtable → Create Record. Map fields from Payload, the record after PII transforms.
Use this Zap
TypeformDataContractGateGoogle Sheets
2. Check new Typeform entries with DataContractGate before adding Google Sheets rows
- Trigger: Typeform → New Entry.
- Code by Zapier → Run Javascript, same one-line JSON record as above.
- DataContractGate → Validate Record, with a stable idempotency key mapped from the Typeform response token.
- Google Sheets → Create Spreadsheet Row, mapped from Payload. A failed entry is quarantined and this step does not run.
Use this Zap
HubSpotDataContractGateSalesforce
3. Validate new HubSpot contacts with DataContractGate before creating Salesforce leads
- Trigger: HubSpot → New Contact.
- Code by Zapier builds one JSON record from the contact fields.
- DataContractGate → Validate Record. Map the HubSpot contact id as the idempotency key so a Zap retry does not quarantine the same contact twice.
- Salesforce → Create Lead from Payload. Email and phone land already masked or hashed when the contract says so.
Use this Zap
DataContractGateSlack
4. Send Slack channel messages for new DataContractGate quarantined records
- Trigger: DataContractGate → New Quarantined Record. Leave Contract blank to hear about every contract on the key, or pick one. This trigger fires for quarantined records from both DataContractGate
POST /v1/ingest and AISchemaGate POST /egress.
- Slack → Send Channel Message. Include the quarantine id, contract version, and violations summary.
- The record body is present only when event payload storage is on. The violation summary is always there.
Use this Zap
DataContractGateJira
5. Create Jira issues for new DataContractGate quarantined records
- Trigger: DataContractGate → New Quarantined Record.
- Jira Software Cloud → Create Issue. Put the quarantine id in the summary and the violations in the description.
- Fix the source record or the contract, then replay from the DataContractGate quarantine view or
POST /quarantine/replay.
Use this Zap
Partner embed
This is the official Zapier Partner Embed (zapier-zap-templates) for the DataContractGate app. It is the interactive template launcher: published Zap templates for this integration show up here with Zapier's own Use this Zap button. Zapier only fills the element after the app's embed client id is set and this site's domain is allow-listed in the Zapier Developer Platform. The five cards above open the same editor directly.
New Quarantined Record covers both doors. The trigger polls the newest 100 quarantined records (GET /quarantine). That list includes records that failed ingest (POST /v1/ingest) and records that failed an egress check (POST /egress). AISchemaGate writes failed LLM and agent payloads through that same egress check, so a Slack or Jira Zap hears about those quarantines too, including rejects that did not start in Zapier.
Action: Validate Record
Checks one record against a deployed contract. The action calls POST /v1/ingest/{contract_id}.
- A failure is quarantined with its violations and the Zap stops. The task is halted, so a run of bad records does not turn the Zap off.
- A pass continues. The next step writes Payload, the record after the contract's PII transforms. Payload is null on a failure.
- Options: contract version, stop the Zap on failure (on by default), dry run, and an idempotency key so a Zap retry does not quarantine the same record twice inside 24 hours.
- Output fields: Passed, Payload, Violations, Quarantine ID, Contract Version.
Setup
- Create an API key (
cg_live_…) under Account → API keys at app.datacontractgate.com.
- Deploy a stable version of the contract for the record Zapier pulls. A draft-only contract cannot validate traffic. The playground can draft that YAML from a sample payload.
- In Zapier, connect DataContractGate with that key. Self-hosted gateways set Gateway URL on the connection. Cloud users leave it blank.
- Open one of the five workflows, insert the Code step when the trigger returns separate fields, and map the write step from Payload.
The full walkthrough, including the Code step, is in docs/zapier.md.