Lead routing rules generator
Pick a form type — agency intake, recruiter, real estate, support, coaching, booking — get a starter ruleset with sensible field names, thresholds, Slack channels, priority tags, owners, and fallback channels. Edit, copy, ship.
Each preset ships a sensible set of rules. Edit field names, thresholds, and channels for your workflow.
Reorder with ↑↓. The most specific rules go first.
Human-readable for docs or handing to a teammate.
1. IF Budget ≥ "100000" → #vip-leads -- Page senior sales — $100k+
2. IF Budget ≥ "50000" → #hot-leads -- Mid-tier — $50-100k
3. IF Budget ≥ "10000" → #leads -- Standard inboundPer-channel summary: priority tag, owner/team, and the rules that fire it. Plus the fallback channel.
## #vip-leads
Triggered by: Budget ≥ "100000"
## #hot-leads
Triggered by: Budget ≥ "50000"
## #leads
Triggered by: Budget ≥ "10000"
## #leads-other (fallback)
Owner: (set this for the catch-all)
Triggered by: no rule matchedPaste into /tools/routing-rule-simulator to test.
{
"rules": [
{
"field": "Budget",
"operator": ">=",
"value": "100000",
"destination": "#vip-leads"
},
{
"field": "Budget",
"operator": ">=",
"value": "50000",
"destination": "#hot-leads"
},
{
"field": "Budget",
"operator": ">=",
"value": "10000",
"destination": "#leads"
}
],
"defaultDestination": "#leads-other"
}Inline rule array for the routing-rules-to-Apps-Script generator.
const RULES = [
{ field: "Budget", op: ">=", value: "100000", channel: "#vip-leads" },
{ field: "Budget", op: ">=", value: "50000", channel: "#hot-leads" },
{ field: "Budget", op: ">=", value: "10000", channel: "#leads" }
];
// Paste this into your form's Apps Script. See
// /tools/routing-rules-to-apps-script for the full generated script.Each one tuned for a specific workflow
- Lead by budget: three tiers stacked specific-first.
Budget ≥ 100000 → #vip-leadsaboveBudget ≥ 50000 → #hot-leadsaboveBudget ≥ 10000 → #leads. - Lead by source: pricing-page, demo-request, and blog traffic get different channels because they have different intent levels.
- Support by priority: High pages the on-call subteam; Medium queues in the standard channel; Low gets a low-urgency channel reviewed next business day.
- Application by role: engineering / design / sales / marketing channels for the right hiring team to triage applications fast.
- Booking by service: consult / onboarding / training routes per staff calendar.
- Geo routing: per-city channels with an explicit fallback for unlisted cities so you never silently drop a lead.
Same rules, different consumers
- Plain rule list: for docs, runbooks, or sending to a teammate who doesn't care about JSON.
1. IF Budget ≥ 50000 → #hot-leads. - RouteForms JSON: paste straight into the simulator to verify against a real submission, or into RouteForms's Routing rules tab to go live.
- Apps Script snippet: the rule array as JavaScript, ready to drop into the Apps Script translator for a fully runnable form-to-Slack script.
Three-tool workflow
The cleanest path from “I need routing” to “routing is live” uses this generator plus two others:
- 1. Generate: pick a preset here, edit the channel names and thresholds for your team, copy the JSON output.
- 2. Test: paste the JSON into the rule simulator along with a sample submission from your form, verify the right rule fires for the right input.
- 3. Ship: paste the rules into RouteForms's Routing rules tab (for the managed setup) or into the Apps Script translator (for a self-hosted setup).
Frequently asked questions
What does this generator do?▾
It generates a starting set of IF-THEN routing rules for common form-to-Slack workflows. Pick a preset, lead by budget, lead by source, support by priority, application by role, booking by service, or geo routing, and you get a ready-made rule list with field names, operators, thresholds, and destination channels. Edit the values for your team, copy the output in any of three formats, and you have a working ruleset in under a minute.
How is this different from the routing rule simulator?▾
The simulator (at /tools/routing-rule-simulator) tests rules you've already written, paste a sample submission, paste the rules, see which fires. This generator is the step before that, pick a use case, get rules generated for you, then take them to the simulator to verify against a real submission. Use them together: generate here, test there.
What presets are included?▾
(1) Lead by budget, three tiers (VIP / hot / standard) routing high-budget leads to senior sales. (2) Lead by source, separate channels for pricing-page, demo-request, and blog traffic. (3) Support by priority, page on-call for High, queue for Medium and Low. (4) Application by role, engineering / design / sales / marketing hiring channels. (5) Booking by service, different staff calendars per service type. (6) Geo routing, per-city channels with a fallback for unlisted locations. Each preset is editable; treat it as a starting point.
What output formats does it produce?▾
Three. (1) Plain rule list — 'IF Budget ≥ 50000 → #hot-leads', human-readable for docs or handoff. (2) RouteForms JSON, the same shape /tools/routing-rule-simulator consumes, so you can paste and test without retyping. (3) Apps Script snippet, a JavaScript rule array you can drop into /tools/routing-rules-to-apps-script to get a runnable script. All three update live as you edit the rules.
What operators can rules use?▾
The full RouteForms set: equals, not equals, contains, not contains, ≥, ≤, is empty, is not empty. Numeric operators handle currency-formatted values ('$50,000' compares as 50000); string operators are case-insensitive with leading/trailing whitespace trimmed. The 'is empty' / 'is not empty' operators don't take a comparison value, the value field disables when you pick them.
What's the rule ordering rule?▾
Top to bottom: first match wins. So 'Budget ≥ 100000 → #vip' goes above 'Budget ≥ 50000 → #hot' because otherwise the $100k lead would match the $50k rule first. The generator's presets are already ordered correctly; if you add rules, use the ↑↓ buttons to reorder. Anything that matches no rule falls through to the default destination.
What's the default destination for?▾
It's the fallback when no rule matches. In production this is your form's main Slack channel, somewhere a teammate can review submissions that didn't fit a defined route. Don't set it to '#trash' or leave it empty; you'll lose responses you should have noticed. Common pattern: name it '#leads-other' or '#unrouted' so it's clear what it's for.
Can I generate rules across multiple fields?▾
Yes. Each rule references one field, but you can stack multiple single-field rules to compose multi-field logic. Example: route by source first ('Source = Pricing → #pricing-leads'), then by budget within that ('Budget ≥ 50000 → #hot-leads'). The first-match-wins ordering means a Pricing lead with a $50k budget lands in #pricing-leads, not #hot-leads. If you specifically want AND-combined conditions, RouteForms supports those in production, see /google-forms-to-slack-routing.
Save these routing rules in RouteForms
RouteForms sends form submissions to the right Slack channel with routing rules, delivery logs, retries, and fallback channels.
Keep reading
Test the generated rules against a sample submission before they hit production.
Compile the rules into a runnable Google Apps Script that handles delivery + routing.
The rule model, operators, ordering, defaults, explained in production detail.
All the real options for delivering Google Form responses to Slack, ranked by fit.