zapier
Build Zapier automations with triggers, actions, filters, paths, and storage; handle mapping and execution errors.
SKILL.mdskills/zapier/SKILL.md
GitHubZapier Automation AI Skill Guide (Claude)
Overview & Engine Architecture
Zapier connects apps through Zaps: one trigger starts a task (billable step). Filters, Paths, and Formatter shape branching. Tables/Storage hold lightweight state—not a system of record. Deliveries are at-least-once; upstream timeouts cause retries and duplicate task runs unless you dedupe.
Claude operates as a Principal Integration Designer: field mapping stability, loop prevention, Find → Create upserts, error notifications, and secret hygiene in Connections vs Code steps.
Trigger (app event or Catch Hook)
→ Filter / Paths (branch)
→ Find record (by external ID)
→ Create OR Update (never blind Create)
→ Formatter / Code (minimal)
→ Delay / Digest (batch noisy events)
Error Handler → notify owner
When to use / when not to
Use when
- Wiring SaaS tools without standing up an integration microservice.
- Prototyping sync logic before committing engineering time.
- Human-in-the-loop approvals via Paths and Slack/email steps.
Do not use when
- You require exactly-once financial or inventory mutations without an external idempotency ledger.
- High-volume streaming (thousands/min) exceeds plan task limits—use
@n8n, a queue, or native APIs. - Strict data residency/compliance forbids Zapier’s processing regions.
Operational Capabilities & Agent Directives
- Name for ops:
Source → Destination — purpose(e.g.Stripe paid → HubSpot deal stage). - Find before Create when a stable external ID exists (Stripe
event.id, Shopify order ID). - Loop guards: Exclude Zap-authored field updates from triggers when the app supports filters; never A→B→A without guards.
- Credential hygiene: Secrets live in Zapier Connections; Code steps must not embed API keys copied into git docs.
- Error notifications on: Dead Zaps drop revenue events silently.
- Webhook Catch Hook: Validate env (
X-Env: production) and optional HMAC before actions. - Idempotency storage: Zapier Tables row keyed by
event_idwith “processed” status before side effects—or call your API that enforces UNIQUE on event ID.
Field mapping hygiene
| Smell | Better approach |
|---|---|
| Mapping display labels | Map stable API property names / IDs |
| 30-step mega-Zap | Split by domain; Sub-Zaps sparingly |
| Code step for everything | Native Formatter/Filter; Code for tiny transforms |
| Trigger on any CRM field change | Narrow to stage/status fields |
| No dedupe on webhook trigger | Pre-step lookup in Tables or your API |
Catch Hook pattern
1. Webhooks by Zapier — Catch Hook (store secret URL privately)
2. Filter: header X-Webhook-Secret matches expected
3. Lookup row in Zapier Tables by event_id → stop if exists
4. Create row "processing" then actions
5. Update row "done" (or call your idempotent API)
Technical Troubleshooting Matrix
| Issue | Root cause | Fix |
|---|---|---|
| Duplicate records | Retries + Create-only | Find by ID; upsert via API |
| Infinite loop | Update retriggers Zap | Filter out integration user/bot |
| Missing fields in test | Sample trigger stale | Re-fetch sample; test with live event |
| 403 on premium app | Plan/app tier | Upgrade or replace with Webhooks + HTTP |
| Delayed delivery | Zapier queue/plan | Not suitable for hard real-time |
Best practices
- Document owner, last review date, upstream/downstream in Zap description.
- Use sandbox/staging connections when vendors provide them.
- Rate-limit chatty triggers; Digest for non-urgent notifications.
- For payments, never trust Zapier alone—fulfill via
@stripewebhooks on your server with signature verify.
Limitations
- Task billing, premium apps, and multi-step Paths depend on plan tier.
- No raw SQL; complex joins belong in your warehouse or API.
- Compliance (HIPAA, etc.) may prohibit certain routes—verify DPA and regions.
Related skills
@n8n— self-hosted automation with queue mode@stripe— authoritative payment webhooks@hubspot/@salesforce— CRM field design for stable triggers
Agent Operational Directive
MANDATORY: Design Zaps for at-least-once delivery—dedupe by external event ID before Create steps. Keep API secrets in Connections only. Enable error notifications. Prevent A↔B update loops with trigger filters.
Sources
- Zapier Help: Zap basics, Webhooks by Zapier
- Community patterns: Find-before-Create, loop prevention
- Payment safety: delegate fulfillment to signed server webhooks (
@stripe)