Sales to delivery handover
Packet, acceptance, and in-app notify when an opportunity is won and Delivery can start.
Document information
| Field | Value |
|---|---|
| Canonical URL | /docs/07_ai-agents-and-mcp/model_skills/50_handovers/sales-to-delivery-handover |
| Version (published date) | 2026-08-26 |
| Tags | ai, skills, handover, notifications, datapool |
Kind
Handover.
Depends on
tenant-data-model, sales-process.
Prerequisites
| id | question | search | if_missing_or_ambiguous | default_to_propose | binds_to |
|---|---|---|---|---|---|
handovers_schema | Handovers schema | tenant-data-model | Import first | handovers | Tenant SKILL.md |
opportunities_schema | Opportunities schema | tenant-data-model | Import first | opportunities | Tenant SKILL.md |
deliveries_schema | Deliveries schema | tenant-data-model | Import first | deliveries | Tenant SKILL.md |
delivery_notify_channel | Notify channel | In-app default | Choice | in_app_notification | Tenant SKILL.md |
delivery_notify_recipient_user_id | Delivery owner inbox | Search users / ask | request_human_input | None | Tenant SKILL.md |
Import contract
| Field | Value |
|---|---|
suggested_skill_id | sales-to-delivery-handover |
version | 1.0.0 |
capabilities.tools | describe_datapool_table, query_datapool, insert_datapool_rows, update_datapool_rows, list_notifications, request_human_input |
Packet DoD
opportunity_id,company_name,stage=won,close_dateamountor explicit TBD in packet- success criteria / scope notes in
packet_json
Acceptance: Delivery sets status=accepted and to_record_id = delivery_id (create delivery row if needed). Notify: in-app to {{delivery_notify_recipient_user_id}}. Same pending/need_human rule if create is unavailable. No Mattermost default.
Tenant SKILL.md (copy this body)
# Sales to delivery handover
Handovers schema `{{handovers_schema}}`. Opportunities `{{opportunities_schema}}`. Deliveries `{{deliveries_schema}}`.
Notify: `{{delivery_notify_channel}}` → user `{{delivery_notify_recipient_user_id}}`.
Load `datapool`, `notifications`, tenant skills `tenant-data-model` and `sales-process`.
## Sequence
1. Confirm opportunity `stage=won`.
2. Insert `kind=sales_to_delivery` with packet DoD; `status=proposed`.
3. In-app notify the bound user (or `notify_status=pending` + operator / `need_human`).
4. On accept: create or bind delivery row; set `to_record_id`; `status=accepted`. Kickoff happens in `delivery-process`.
## Stop
- Do not handover `lost` or pre-won stages.
- Do not start `in_progress` delivery from this skill.
Optional skill.json
{
"name": "sales-to-delivery-handover",
"version": "1.0.0",
"description": "Won-opportunity packet and in-app notify to Delivery.",
"capabilities": {
"prompt": ["Default notify is in-app. Do not start delivery execution here."],
"resources": [],
"tools": [
"describe_datapool_table",
"query_datapool",
"insert_datapool_rows",
"update_datapool_rows",
"list_notifications",
"request_human_input"
]
}
}