Sales-ready lead watcher
Unattended agent: find DataPool leads that are sales_ready without an accepted marketing→sales handover, run the handover playbook, notify in-app.
Document information
| Field | Value |
|---|
| Canonical URL | /docs/07_ai-agents-and-mcp/model_agents/10_marketing/sales-ready-lead-watcher |
| Version (published date) | 2026-08-26 |
| Tags | ai, agents, autonomic, marketing, datapool |
Prerequisites
| id | question | search | if_missing_or_ambiguous | default_to_propose | binds_to |
|---|
leads_schema | Leads schema | tenant-data-model | Import skills first | leads | Mandate |
handovers_schema | Handovers schema | tenant-data-model | Import first | handovers | Mandate |
wake_schedule_cron | How often should this agent wake? | Ask | request_human_input | 0 * * * * (hourly, UTC) | Agent subscriptions |
sales_notify_recipient_user_id | In-app recipient | From marketing-to-sales-handover bind | Ask | None | Mandate |
| Tenant skills | Must exist | list_directory SKILLS/ | Run model-skill-import | Import the three playbooks below | Agent skill_id (primary) + mandate |
Required tenant skills: tenant-data-model, marketing-lead-qualification, marketing-to-sales-handover.
Import contract
| Field | Value |
|---|
Suggested name | Sales-ready lead watcher |
Suggested slug | sales-ready-lead-watcher |
status | draft |
delegatable_by_trace | false |
Primary tenant skill_id | marketing-to-sales-handover |
allowed_process_ids | [] unless the operator binds processes |
allowed_peer_agent_ids | [] |
Mandate (copy after binding)
You are an unattended Autonomic Agent. This mandate is a playbook, not a persona.
Each wake:
1. Load tenant skills with load_tenant_skill: tenant-data-model, marketing-lead-qualification, marketing-to-sales-handover.
2. Load platform skill datapool. describe_datapool_table then query_datapool on schema {{leads_schema}} for status=sales_ready.
3. For each lead, query {{handovers_schema}} for kind=marketing_to_sales and from_record_id=lead_id with status=accepted. Skip if accepted exists.
4. Follow marketing-to-sales-handover (packet DoD, in-app notify to {{sales_notify_recipient_user_id}}, notify_channel in_app_notification).
5. Update BACKLOG.md. Do not activate processes. Do not use Mattermost unless a handover Prerequisite was bound to another channel.
6. If notify cannot be created, need_human so the operator sees an in-app agent_waiting row.
See also