All docs

Tasks

Create, manage, and track tasks on contacts

Tasks let you create follow-up reminders and action items linked to contacts.


List Contact Tasks

GET /contacts/{contact_id}/tasks

Returns tasks linked to a specific contact.

Query Parameters

ParameterTypeDefaultDescription
statusstringFilter by status: open or completed

Example

cURL

curl "https://be.graph8.com/api/v1/contacts/12345/tasks?status=open" \
  -H "Authorization: Bearer $API_KEY"

Python

response = requests.get(
    f"{BASE_URL}/contacts/12345/tasks",
    headers=HEADERS,
    params={"status": "open"}
)

Response

{
  "data": [
    {
      "id": "task_uuid",
      "entity_type": "contact",
      "entity_id": "101",
      "title": "Follow up",
      "description": "...",
      "due_date": "2026-06-01T17:00:00Z",
      "assignee_id": "user_x",
      "assignee_name": "John",
      "status": "open",
      "priority": 2,
      "task_type": "...",
      "created_by": "user_y",
      "created_at": "...",
      "updated_at": "...",
      "parent_task_id": null,
      "subtask_sort_order": 0,
      "subtask_count": 0,
      "completed_subtask_count": 0
    }
  ]
}

List All Tasks

GET /tasks

Returns all tasks across the organization, with optional filters.

Query Parameters

ParameterTypeDefaultDescription
statusstringFilter by status
priorityintegerFilter by priority (0=none, 1=urgent, 2=high, 3=normal, 4=low)
assignee_idstringFilter by assignee
searchstringPartial match on task title

Example

cURL

curl "https://be.graph8.com/api/v1/tasks?status=open&priority=2&assignee_id=user_x" \
  -H "Authorization: Bearer $API_KEY"

Create Task

POST /contacts/{contact_id}/tasks

Request Body

FieldTypeRequiredDescription
titlestringYesTask title
descriptionstringNoTask details
due_datestringNoISO 8601 due date
assignee_idstringNoUser ID to assign
priorityintegerNo0=none, 1=urgent, 2=high, 3=normal, 4=low
parent_task_idstringNoID of parent task — makes this a subtask (one level deep)
subtask_sort_orderintegerNoSort order among sibling subtasks

Example

cURL

curl -X POST "https://be.graph8.com/api/v1/contacts/12345/tasks" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title": "Send proposal", "due_date": "2026-03-05", "priority": 2}'

Response 201 Created

Returns the full task object — same shape as the items in GET /contacts/{contact_id}/tasks.


Update Task

PATCH /tasks/{task_id}

Supports partial updates. Send only the fields you want to change.

Request Body

All fields are optional.

FieldTypeDescription
titlestringTask title
descriptionstringTask details
due_datestringISO 8601 due date
assignee_idstringUser ID to assign
statusstringTask status (open or completed)
priorityinteger0=none, 1=urgent, 2=high, 3=normal, 4=low
parent_task_idstringID of parent task (or null to remove subtask relationship)
subtask_sort_orderintegerSort order among sibling subtasks

Example

cURL

curl -X PATCH "https://be.graph8.com/api/v1/tasks/task_uuid" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "completed", "priority": 1}'
Build with graph8