Lead Router
SkillDev toolsRoute a validated lead to direct outreach planning, nurture planning, or a recorded hold, preserving why that path was chosen.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Lead Router skill
What this skill tells your AI
The instructions your AI receives, as published by runxhq/runx in skills/lead-router/SKILL.md and read by ahel’s review.
Not every lead should receive the same treatment. lead-router takes one
validated enrichment packet and chooses exactly one governed posture:
reach_out, nurture, or hold. The route and its evidence remain visible in
the receipt, so the decision is reviewable instead of disappearing inside an
ad-hoc prompt.
This is a routing and planning skill. It does not send a message, enroll a
campaign, or mutate a CRM. Reach-out and nurture outcomes prepare the exact
input for the canonical send-as planning boundary. A hold is recorded in the
Runx receipt only; it is not an external suppression-list update.
When to use it
Use lead-router after lead-enrichment has produced a validated packet and a
team needs one consistent qualify-then-plan decision. Use a campaign or
provider-specific skill directly when the audience and authorization are
already decided and no lead-level routing remains.
Never use it to bypass consent, contact a suppressed lead, or draft bespoke copy from raw signals. Enrichment owns evidence synthesis; content skills own copy; provider adapters own delivery.
How it works
- Runx digests and admits the enrichment packet, preserving its signal references and validation state.
- Consent and suppression outrank model judgment. A do-not-contact packet takes
the deterministic
holdpath. - For a ready packet, bounded judgment selects
reach_out,nurture, orholdand cites admitted signal references in the rationale. - Finalization produces either a deterministic hold or an exact, non-executed
send-ashandoff markedprepared_for_send_planning. - The later send lane performs content preflight, obtains any required approval, binds idempotency, invokes the provider, and verifies readback.
Ambiguity should become a hold, not an optimistic send plan. A hold is a clean, auditable terminal state rather than a workflow failure.
Inputs and result
enrichment_packetis validatedrunx.growth.lead_enrichment.v1data.principalnames the proposed downstream sender; it is not itself send authority.objectivedescribes the intended follow-up.provider_contextmay narrow a future provider binding but cannot authorize delivery.
The result is a runx.growth.lead_route.v1 packet with one route, rationale,
evidence references, enrichment digest, and either a hold record or a canonical
downstream planning handoff. It never reports enrollment or delivery.
Stop conditions
- Deterministically hold when consent or suppression forbids contact.
- Prefer hold when evidence is contradictory, insufficient, or cannot justify a channel.
- Reject invented signal references and packets that did not pass enrichment validation.
- Do not draft content, authorize a send, or reinterpret provider context as a grant.
- If the downstream send is denied or blocked, preserve the route decision but do not claim the action occurred.
Example
A validated packet shows recent product interest, an appropriate role, and
email consent. The router may choose reach_out and prepare a send-as input
whose rationale cites those exact signals. If consent is missing or a
suppression flag exists, it records hold; no nurture or outreach handoff is
created.
Agent task contract
lead-route
Choose reach_out, nurture, or hold from the admitted enrichment context.
Return the route, rationale, segment, and exact evidence references. Prefer
hold when evidence is ambiguous. Do not draft content, authorize a send, or
claim enrollment, provider mutation, or delivery.
Signals
- GitHub stars
- 87
- Forks
- 101
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
lead-router- Source
- github.com/runxhq/runx