Inbox Tasks

Inbox Tasks are the items in your team's shared inbox. Drop Cowboy® adds one when a contact calls, texts, emails, leaves a voicemail or fills in a form. Use these routes to add your own follow-ups, assign items to a teammate, and close them when they're handled. Each task belongs to one contact.

Tasks fire the task.opened, task.assigned and task.closed webhooks. See Webhooks.

Routes

Method Route Scope What it does
GET /task/public/tasks contacts:read List tasks
GET /task/public/tasks/{task_id} contacts:read Get a task
POST /task/public/tasks contacts:write Create a task
PUT /task/public/tasks/{task_id} contacts:write Assign a task or mark it urgent
PUT /task/public/tasks/{task_id}/status contacts:write Open, snooze or close a task

List tasks

Returns tasks oldest first. With no limit, every match is returned, so pass one.

Field Type Required Description
status string No open, snoozed, closed or all. Default all.
contact_id string No Only this contact's tasks.
sort string No asc (default) or desc by creation time, or urgent for urgent tasks first.
skip integer No Tasks to skip. Default 0.
limit integer No Page size.
curl "https://api-v2.dropcowboy.com/task/public/tasks?status=open&sort=desc&limit=25" \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET"
{
  "data": {
    "tasks": [
      {
        "task_id": "2d8d7e53-6427-446e-a1bd-a4ef8930f46c",
        "contact_id": "487d8607-e415-4d90-a1e1-f9c1a746e0a1",
        "task_type": "sms",
        "direction": "inbound",
        "status": "open",
        "urgent": false,
        "unread": true,
        "assigned_to": "fa933d82-485f-43b0-80ab-860121f06980",
        "assigned_type": "user",
        "assigned_at": 1759313000000,
        "created_at": 1759312800000,
        "preview_info": {
          "task_date": 1759312800000,
          "task_contact": "Jordan Lee",
          "task_content": "Can we move my appointment to Friday?"
        },
        "contact": {
          "contact_id": "487d8607-e415-4d90-a1e1-f9c1a746e0a1",
          "first_name": "Jordan",
          "last_name": "Lee",
          "main_phone": "+13125550118"
        }
      }
    ]
  },
  "meta": { "request_id": "a1e5ebaf-1765-4ea7-940c-0bcd44e79e68" }
}

The list has no total. Keep paging with skip until a page comes back with fewer than limit tasks. Timestamps are epoch milliseconds.

Each task also carries the item it came from, such as call, sms, fax or call_recording, and a last_record with its latest activity.

task_type Created when
inbound_call, outbound_call, missed_call, voicemail A call or voicemail.
sms, email, fax, chat A message arrives.
web_form Someone submits one of your forms.
appointment Someone books an appointment.
follow_up A follow-up reminder is set.
note, human_review, permission_request Your team or Drop Cowboy adds an item for review.

Get a task

Returns one task in the same shape as List tasks, or 404 when no task on your account has that task_id.

curl https://api-v2.dropcowboy.com/task/public/tasks/2d8d7e53-6427-446e-a1bd-a4ef8930f46c \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET"

Create a task

Adds an item to the inbox for a contact. The response is 201 with the new task.

Field Type Required Description
contact_id string Yes A contact on your account.
task_type string Yes Use follow_up for a reminder to get back to the contact.
assigned_to string No The user_id of a teammate, or the id of a user group.
assigned_type string No user or user_group. Send it with assigned_to.
urgent boolean No Flag the task as urgent in the inbox. Default false.
priority integer No Stored on the task. Default 0.
curl -X POST https://api-v2.dropcowboy.com/task/public/tasks \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "contact_id": "487d8607-e415-4d90-a1e1-f9c1a746e0a1",
    "task_type": "follow_up",
    "assigned_to": "fa933d82-485f-43b0-80ab-860121f06980",
    "assigned_type": "user"
  }'
{
  "data": {
    "_id": "66f2b1c4e8a9d3f1a2b4c6de",
    "task_id": "0ada17a0-c1db-4201-b5c7-85137c3738c0",
    "team_id": "cd5cd773-4617-4b28-854d-d3adc74c96d5",
    "contact_id": "487d8607-e415-4d90-a1e1-f9c1a746e0a1",
    "task_type": "follow_up",
    "status": "open",
    "unread": true,
    "urgent": false,
    "priority": 0,
    "assigned_to": "fa933d82-485f-43b0-80ab-860121f06980",
    "assigned_type": "user",
    "created_at": 1759312800000,
    "created_by": "bcce25c4-6b8e-43d8-a1cb-689ddc6bb984",
    "updated_at": 1759312800000,
    "closed_at": null,
    "preview_info": {
      "task_date": 1759312800000,
      "task_contact": "Jordan Lee",
      "task_subject": "Follow-up Reminder",
      "subject": "Follow-up Reminder"
    }
  },
  "meta": { "request_id": "dc590416-d213-41d4-8d10-a9404b031adc" }
}

The response is the whole task. Some fields are left out here.

Assign a task or mark it urgent

Send only the fields you want to change. To open, snooze or close the task, use Open, snooze or close a task instead.

Field Type Required Description
assigned_to string No The teammate or user group to assign to.
assigned_type string No user or user_group. Send it whenever you send assigned_to.
urgent boolean No Flag or unflag the task as urgent.
curl -X PUT https://api-v2.dropcowboy.com/task/public/tasks/0ada17a0-c1db-4201-b5c7-85137c3738c0 \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "assigned_to": "bcce25c4-6b8e-43d8-a1cb-689ddc6bb984",
    "assigned_type": "user",
    "urgent": true
  }'
{
  "data": {
    "team_id": "cd5cd773-4617-4b28-854d-d3adc74c96d5",
    "user_id": "fa933d82-485f-43b0-80ab-860121f06980",
    "task_id": "0ada17a0-c1db-4201-b5c7-85137c3738c0",
    "urgent": true,
    "assigned_to": "bcce25c4-6b8e-43d8-a1cb-689ddc6bb984",
    "assigned_type": "user"
  },
  "meta": { "request_id": "2f1391f7-14b1-4435-9863-e0ef72382c72" }
}

The response echoes the change you sent, not the whole task. Assigning fires task.assigned.

Open, snooze or close a task

Field Type Required Description
status string Yes open, snoozed or closed.
snoozed_until string or integer With snoozed When the task reopens: an ISO 8601 date or epoch milliseconds.
curl -X PUT https://api-v2.dropcowboy.com/task/public/tasks/0ada17a0-c1db-4201-b5c7-85137c3738c0/status \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{ "status": "snoozed", "snoozed_until": "2026-10-05T14:00:00Z" }'
{
  "data": {
    "team_id": "cd5cd773-4617-4b28-854d-d3adc74c96d5",
    "user_id": "fa933d82-485f-43b0-80ab-860121f06980",
    "task_id": "0ada17a0-c1db-4201-b5c7-85137c3738c0",
    "status": "snoozed",
    "snoozed_until": "2026-10-05T14:00:00Z"
  },
  "meta": { "request_id": "1f96d605-ea75-4c23-a071-93dc9208980f" }
}

Each change is recorded on the task's timeline. Closing a task marks it read and fires task.closed. A snoozed task reopens at snoozed_until.

Errors

Status When What to do
400 missing parameters: contact_id or task_type wasn't sent. Send both.
400 unknown task type Use one of the task_type values above.
400 snoozed_until is required when status is snoozed Send the time the task should reopen.
400 contact not found: on create, the contact_id isn't a contact on your account. Check the id with Contacts.
400 unknown task status. Nothing on the task changes. Send open, snoozed or closed.
404 task not found: no task on your account has that task_id. Check the id with List tasks.

For every other error, see Responses, errors and limits.

Code samples

The requests from this page, ready to copy. Set DC_KEY and DC_SECRET to your API key pair first.

List tasks
curl "https://api-v2.dropcowboy.com/task/public/tasks?status=open&sort=desc&limit=25" \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET"
Get a task
curl https://api-v2.dropcowboy.com/task/public/tasks/2d8d7e53-6427-446e-a1bd-a4ef8930f46c \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET"
Create a task
curl -X POST https://api-v2.dropcowboy.com/task/public/tasks \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "contact_id": "487d8607-e415-4d90-a1e1-f9c1a746e0a1",
    "task_type": "follow_up",
    "assigned_to": "fa933d82-485f-43b0-80ab-860121f06980",
    "assigned_type": "user"
  }'
Assign a task or mark it urgent
curl -X PUT https://api-v2.dropcowboy.com/task/public/tasks/0ada17a0-c1db-4201-b5c7-85137c3738c0 \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "assigned_to": "bcce25c4-6b8e-43d8-a1cb-689ddc6bb984",
    "assigned_type": "user",
    "urgent": true
  }'
Open, snooze or close a task
curl -X PUT https://api-v2.dropcowboy.com/task/public/tasks/0ada17a0-c1db-4201-b5c7-85137c3738c0/status \
  -H "x-key: $DC_KEY" -H "x-secret: $DC_SECRET" \
  -H "Content-Type: application/json" \
  -d '{ "status": "snoozed", "snoozed_until": "2026-10-05T14:00:00Z" }'