Sendoso · Capability

Sendoso Gift Sending

Unified capability for corporate gifting and direct mail workflows using the Sendoso platform. Enables sales and marketing teams to send physical gifts, e-gift cards, swag, and direct mail to prospects and customers. Integrates CRM attribution for campaign reporting.

Run with Naftiko Corporate GiftingDirect MailSales EngagementMarketing AutomationCRM Integration

What You Can Do

GET
List sends — List sends with filtering by status and date range
/v1/sends
POST
Create send — Create a new gift send to a recipient
/v1/sends
GET
Retrieve send — Get send details and tracking status
/v1/sends/{send_id}
DELETE
Cancel send — Cancel a pending send
/v1/sends/{send_id}
GET
List recipients — List recipient contacts
/v1/recipients
POST
Create recipient — Add a new recipient contact
/v1/recipients
GET
List inventory — List available inventory items by type
/v1/inventory
GET
Get team budget — Get team budget balance and remaining spend
/v1/teams/budget
GET
Get sends report — Get aggregated sending analytics by date range
/v1/reports/sends

MCP Tools

list-sends

List gift sends with optional filtering by status (pending, shipped, delivered, failed) and date range. Use to check on pending sends or review recent gifting activity.

read-only idempotent
create-send

Send a gift to a recipient. Provide recipient_id and item_id from inventory. Optionally add a personalized message and CRM attribution (crm_id, crm_type) for Salesforce/HubSpot reporting.

retrieve-send

Get the current status and tracking details for a specific send

read-only idempotent
cancel-send

Cancel a pending send that has not yet been processed for shipment

idempotent
list-recipients

Search for recipient contacts by name or email. Use before creating a send to find an existing recipient_id.

read-only idempotent
create-recipient

Add a new recipient contact with name, email, and optional address

list-inventory

Browse available gifts and products. Filter by type: egift (digital gift cards), physical (shipped products), swag (branded merchandise), direct_mail, or charity.

read-only idempotent
get-team-budget

Check the team's remaining gift sending budget and billing period

read-only idempotent
get-sends-report

Get sending analytics for a date range. Use group_by to aggregate by day, week, month, user, or team. Returns totals and time-series data.

read-only idempotent

Capability Spec

gift-sending.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Sendoso Gift Sending
  description: Unified capability for corporate gifting and direct mail workflows using the Sendoso platform. Enables sales
    and marketing teams to send physical gifts, e-gift cards, swag, and direct mail to prospects and customers. Integrates
    CRM attribution for campaign reporting.
  tags:
  - Corporate Gifting
  - Direct Mail
  - Sales Engagement
  - Marketing Automation
  - CRM Integration
  created: '2026-05-02'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    SENDOSO_API_KEY: SENDOSO_API_KEY
capability:
  consumes:
  - type: http
    namespace: sendoso-api
    baseUri: https://app.sendoso.com/api/v2
    description: Sendoso Sending Platform API
    authentication:
      type: apikey
      key: X-Api-Key
      value: '{{SENDOSO_API_KEY}}'
      placement: header
    resources:
    - name: sends
      path: /sends
      description: Create and manage gift sends
      operations:
      - name: list-sends
        method: GET
        description: Returns a paginated list of sends
        inputParameters:
        - name: status
          in: query
          type: string
          required: false
          description: Filter by send status
        - name: start_date
          in: query
          type: string
          required: false
          description: Filter sends created on or after this date
        - name: end_date
          in: query
          type: string
          required: false
          description: Filter sends created on or before this date
        - name: page
          in: query
          type: integer
          required: false
          description: Page number
        - name: per_page
          in: query
          type: integer
          required: false
          description: Results per page
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-send
        method: POST
        description: Initiates a new gift send to a recipient
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            recipient_id: '{{tools.recipient_id}}'
            item_id: '{{tools.item_id}}'
            message: '{{tools.message}}'
            crm_id: '{{tools.crm_id}}'
            crm_type: '{{tools.crm_type}}'
    - name: send
      path: /sends/{send_id}
      description: Retrieve or cancel a specific send
      operations:
      - name: retrieve-send
        method: GET
        description: Returns details for a specific send
        inputParameters:
        - name: send_id
          in: path
          type: string
          required: true
          description: Send ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: cancel-send
        method: DELETE
        description: Cancels a pending send
        inputParameters:
        - name: send_id
          in: path
          type: string
          required: true
          description: Send ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: recipients
      path: /recipients
      description: Manage recipient contacts
      operations:
      - name: list-recipients
        method: GET
        description: Returns a paginated list of recipient contacts
        inputParameters:
        - name: search
          in: query
          type: string
          required: false
          description: Search by name or email
        - name: page
          in: query
          type: integer
          required: false
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-recipient
        method: POST
        description: Creates a new recipient contact
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            first_name: '{{tools.first_name}}'
            last_name: '{{tools.last_name}}'
            email: '{{tools.email}}'
            company: '{{tools.company}}'
    - name: inventory
      path: /inventory
      description: Browse available gifts and products
      operations:
      - name: list-inventory
        method: GET
        description: Returns available items in the team inventory
        inputParameters:
        - name: type
          in: query
          type: string
          required: false
          description: Filter by item type (physical, egift, swag, direct_mail, charity)
        - name: page
          in: query
          type: integer
          required: false
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: team-budget
      path: /teams/budget
      description: Team budget management
      operations:
      - name: get-team-budget
        method: GET
        description: Returns the team budget balance and allocation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: sends-report
      path: /reports/sends
      description: Sending analytics and reports
      operations:
      - name: get-sends-report
        method: GET
        description: Returns aggregated sending analytics for a date range
        inputParameters:
        - name: start_date
          in: query
          type: string
          required: true
          description: Report start date (YYYY-MM-DD)
        - name: end_date
          in: query
          type: string
          required: true
          description: Report end date (YYYY-MM-DD)
        - name: group_by
          in: query
          type: string
          required: false
          description: Aggregation dimension (day, week, month, user, team)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: sendoso-gift-sending-api
    description: Unified REST API for Sendoso corporate gifting and direct mail workflows.
    resources:
    - path: /v1/sends
      name: sends
      description: Create and manage gift sends
      operations:
      - method: GET
        name: list-sends
        description: List sends with filtering by status and date range
        call: sendoso-api.list-sends
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: create-send
        description: Create a new gift send to a recipient
        call: sendoso-api.create-send
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/sends/{send_id}
      name: send
      description: Retrieve or cancel a specific send
      operations:
      - method: GET
        name: retrieve-send
        description: Get send details and tracking status
        call: sendoso-api.retrieve-send
        with:
          send_id: rest.send_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: cancel-send
        description: Cancel a pending send
        call: sendoso-api.cancel-send
        with:
          send_id: rest.send_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/recipients
      name: recipients
      description: Manage gift recipients
      operations:
      - method: GET
        name: list-recipients
        description: List recipient contacts
        call: sendoso-api.list-recipients
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: create-recipient
        description: Add a new recipient contact
        call: sendoso-api.create-recipient
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/inventory
      name: inventory
      description: Browse available gifts and products
      operations:
      - method: GET
        name: list-inventory
        description: List available inventory items by type
        call: sendoso-api.list-inventory
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/teams/budget
      name: team-budget
      description: Monitor team budget
      operations:
      - method: GET
        name: get-team-budget
        description: Get team budget balance and remaining spend
        call: sendoso-api.get-team-budget
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/reports/sends
      name: sends-report
      description: Sending analytics
      operations:
      - method: GET
        name: get-sends-report
        description: Get aggregated sending analytics by date range
        call: sendoso-api.get-sends-report
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: sendoso-gift-sending-mcp
    transport: http
    description: MCP server for AI-assisted corporate gifting and sales engagement workflows.
    tools:
    - name: list-sends
      description: List gift sends with optional filtering by status (pending, shipped, delivered, failed) and date range.
        Use to check on pending sends or review recent gifting activity.
      hints:
        readOnly: true
        idempotent: true
      call: sendoso-api.list-sends
      outputParameters:
      - type: object
        mapping: $.
    - name: create-send
      description: Send a gift to a recipient. Provide recipient_id and item_id from inventory. Optionally add a personalized
        message and CRM attribution (crm_id, crm_type) for Salesforce/HubSpot reporting.
      hints:
        readOnly: false
        idempotent: false
      call: sendoso-api.create-send
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-send
      description: Get the current status and tracking details for a specific send
      hints:
        readOnly: true
        idempotent: true
      call: sendoso-api.retrieve-send
      with:
        send_id: tools.send_id
      outputParameters:
      - type: object
        mapping: $.
    - name: cancel-send
      description: Cancel a pending send that has not yet been processed for shipment
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: sendoso-api.cancel-send
      with:
        send_id: tools.send_id
      outputParameters:
      - type: object
        mapping: $.
    - name: list-recipients
      description: Search for recipient contacts by name or email. Use before creating a send to find an existing recipient_id.
      hints:
        readOnly: true
        idempotent: true
      call: sendoso-api.list-recipients
      outputParameters:
      - type: object
        mapping: $.
    - name: create-recipient
      description: Add a new recipient contact with name, email, and optional address
      hints:
        readOnly: false
        idempotent: false
      call: sendoso-api.create-recipient
      outputParameters:
      - type: object
        mapping: $.
    - name: list-inventory
      description: 'Browse available gifts and products. Filter by type: egift (digital gift cards), physical (shipped products),
        swag (branded merchandise), direct_mail, or charity.'
      hints:
        readOnly: true
        idempotent: true
      call: sendoso-api.list-inventory
      outputParameters:
      - type: object
        mapping: $.
    - name: get-team-budget
      description: Check the team's remaining gift sending budget and billing period
      hints:
        readOnly: true
        idempotent: true
      call: sendoso-api.get-team-budget
      outputParameters:
      - type: object
        mapping: $.
    - name: get-sends-report
      description: Get sending analytics for a date range. Use group_by to aggregate by day, week, month, user, or team. Returns
        totals and time-series data.
      hints:
        readOnly: true
        idempotent: true
      call: sendoso-api.get-sends-report
      outputParameters:
      - type: object
        mapping: $.