Recommendation
Use a single Zap: Trigger on new Typeform response → dedupe in Salesforce → route assignment via Paths or Storage by Zapier (no code) → Create/Update Lead and set Owner. For two reps, the simplest robust options are rule-based (Paths) or toggle round-robin (Storage).
Step-by-step (no code)
1) Trigger: New Entry in Typeform. Map raw fields (email, country, company_size, utm, etc.).
2) Normalize: Optional Formatter steps (Text > Trim/Lowercase) so filters match reliably.
3) Deduplicate: Salesforce “Find Record” by email. Use “If found: Update Record”, else continue to Create.
4) Assignment logic (pick one):
- Rule-based (Paths): Add Paths with Filters (Path A: Country exactly matches United States → assign Rep A; Path B: Country contains Canada → assign Rep B; Path C: Company Size > 50 → assign Rep A). You can chain multiple conditions using AND/OR.
- Round-robin (Storage by Zapier): Get key last_assigned. If value is RepA → set owner to RepB and Set key to RepB; else assign RepA and Set key to RepA. No custom code and deterministic toggle.
- Weighted/random: Use Formatter Utilities > Pick From List and provide a list that duplicates reps for weighting (e.g., [RepA,RepA,RepB] for 2:1 weight).
5) Lookup Salesforce Owner ID: Either hard-code each rep’s Salesforce OwnerID in your Zap fields or use Salesforce “Find Record” on User object by email to get the ID, then pass OwnerID on Create/Update Lead.
6) Create/Update Lead in Salesforce: Map fields and set OwnerId to the chosen rep’s ID.
7) Fallback path: Add a default Path/Filter that assigns a backup rep if no rule matches.
Sample Filters (Path conditions)
- Country exactly matches United States
- Company size (number) greater than 50
- Job title contains “Director” OR “VP”
- UTM Source exactly equals partner_campaign
Error-handling tips
- Add a Step at the end of each Path to send a Slack/email on critical errors (Salesforce API failures, missing OwnerID). This helps immediate manual intervention.
- Use Delay + Retry for transient Salesforce errors: if Create fails, Delay 5 minutes then try again (Zapier supports task replays in task history but explicit Delay can help).
- Validate required fields with a Filter early: Filter out responses that lack email or company name to avoid creating junk leads.
- Monitor Zapier Task History and enable email alerts for Zap errors. Keep an error-reporting Zap that posts failures to a Slack channel.
Decision criteria (which routing method to use)
- Use Paths (rule-based) if you need predictable assignments by geography/segment. Best for account ownership clarity.
- Use Storage toggle (round-robin) if fairness is the priority and rules don’t exist. Good for even load across two reps.
- Use weighted/random if you want probabilistic distribution but fewer rules.
Choose based on volume (higher volume needs robust dedupe and monitoring), team size (2 reps = simple toggle works), and budget (Storage/Paths require paid Zapier plans).
Quick checklist before turning Zap on
- [ ] Map OwnerId or add Salesforce User lookup step
- [ ] Add dedupe: Find by email then Update/Create logic
- [ ] Build at least one fallback default owner path
- [ ] Add Filter to drop test/no-email submissions
- [ ] Add error alert (Slack/email) step
- [ ] Test with real Typeform submissions and verify OwnerId in Salesforce
Best-for / Avoid-if
- Best-for: small teams (2–5) needing simple, maintainable rules with no code.
- Avoid-if: very high lead volume, complex multi-criteria scoring, or strict SLA routing—consider a CRM-native assignment rule or server-side logic.
If you want, I can write the exact Zap steps for either the Paths approach or the Storage toggle approach (including sample field mappings and how to store OwnerIDs).
Compare Zapier and Make