Sales to delivery handover

Packet, acceptance, and in-app notify when an opportunity is won and Delivery can start.

Document information
FieldValue
Canonical URL/docs/07_ai-agents-and-mcp/model_skills/50_handovers/sales-to-delivery-handover
Version (published date)2026-08-26
Tagsai, skills, handover, notifications, datapool

Kind

Handover.

Depends on

tenant-data-model, sales-process.

Prerequisites

idquestionsearchif_missing_or_ambiguousdefault_to_proposebinds_to
handovers_schemaHandovers schematenant-data-modelImport firsthandoversTenant SKILL.md
opportunities_schemaOpportunities schematenant-data-modelImport firstopportunitiesTenant SKILL.md
deliveries_schemaDeliveries schematenant-data-modelImport firstdeliveriesTenant SKILL.md
delivery_notify_channelNotify channelIn-app defaultChoicein_app_notificationTenant SKILL.md
delivery_notify_recipient_user_idDelivery owner inboxSearch users / askrequest_human_inputNoneTenant SKILL.md

Import contract

FieldValue
suggested_skill_idsales-to-delivery-handover
version1.0.0
capabilities.toolsdescribe_datapool_table, query_datapool, insert_datapool_rows, update_datapool_rows, list_notifications, request_human_input

Packet DoD

  • opportunity_id, company_name, stage=won, close_date
  • amount or 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"
    ]
  }
}

See also