Short answer / recommendation
Use a 3-step Zap: 1) Trigger on your form’s “New Entry”; 2) Find/Create lead in CRM (dedupe + assign rep rules); 3) Enrich with ChatGPT-generated summary and write back to CRM or a Note. Add a lightweight queuing/throttle and error-handling branch so API failures don’t lose leads.
Trigger mapping (fields to capture)
- Trigger: New Form Entry (Typeform/Google Forms/HubSpot/Gravity). Map: name, email, company, title, phone, country, product/interest, free-text message, source, timestamp, UTM tags.
- Immediately run a “Find Contact” action in CRM using email (or phone). If found, update; if not, create.
Zap action sequence (recommended)
1) Find/Create Contact in CRM — use dedupe keys (email > phone > name+company).
2) Decide rep assignment — implement business rules in Zapier (Filter, Paths, Formatter, or Code):
- Territory mapping: use country/state fields.
- Product interest: use keywords from the message or form field.
- Round-robin: use Storage by Zapier or a tiny “counter” row in a Google Sheet.
3) Enrichment call to ChatGPT — send a concise prompt that includes mapped fields and ask for a 2–3 sentence summary, priority score, and 3 recommended qualifying questions. Save result to CRM Note, custom fields, or comment.
4) Notification & fallback — notify the assigned rep (Slack/email) with lead + summary and link to CRM.
Prompt design (example)
"Create a 2-sentence lead summary and a priority score 1–5 for this lead. Fields: [name], [company], [title], [message], [product], [country], [utm]. Output JSON: {summary,score,questions:[q1,q2,q3]}"
Keep prompts strict and request JSON to make parsing reliable.
Rate limits & throttling
- Zapier: every run consumes a task; high lead volume can quickly use tasks. Consider plan limits and use Filters to drop low-value leads before calling ChatGPT.
- ChatGPT/OpenAI: treat API as limited-concurrency. Safe throttling: queue or delay to ~1 req/sec or 30–60 req/min depending on your plan. If you have bursts, batch small groups or use a worker queue (Google Sheet/Storage + a separate Zap to process items at set intervals).
Error handling & retries
- Use Zapier’s built-in retry settings and set exponential backoff for the ChatGPT step.
- Add a “Catch” path: when ChatGPT fails, write the lead row to a “failed_enrichment” Google Sheet and notify ops/Slack for manual enrichment.
- For partial failures (CRM write succeeded but enrichment failed): mark lead in CRM with “enrichment_pending” tag.
- Dead-letter queue: store payload + error message in a sheet or DB for reprocessing.
Decision criteria (which implementation to choose)
- Budget: if limited, avoid calling ChatGPT for every lead; enrich only >threshold leads or leads with high intent.
- Skill level: No-code: use Zapier Formatter, Paths, Storage. Dev-friendly: use Code step or external worker for complex assignment logic and batching.
- Stage & team size: MVP/small team: simple rules + manual override. Scale: invest in queueing, robust dedupe, and monitoring.
- Output quality: short, structured summaries are cheaper and more reliable than long, creative bios.
Checklist (practical)
- [ ] Map form fields and set dedupe keys
- [ ] Create CRM Find/Create step with error handling
- [ ] Implement rep assignment (territory or Storage counter)
- [ ] Build ChatGPT prompt requesting JSON output
- [ ] Throttle enrichment calls (Delay/Storage queue or batch process)
- [ ] Add retry & dead-letter (Google Sheet) + Slack alerts
- [ ] Tag CRM records with enrichment status
- [ ] Monitor task usage & API costs weekly
Best-for / Avoid-if
- Best for: teams wanting lightweight AI summaries and automated routing without building infrastructure.
- Avoid if: you need high-volume, low-latency routing (build a dedicated queue/worker) or require long-form, nuanced profiling (may need human QA).
If you want, I can draft the exact Zap step-by-step mapping and a ready-to-paste prompt for ChatGPT or point you to the Zapier integration docs for setup.
Compare Zapier and Make