Skip to main content
CTK

Contact Tasks

Contacts & CRM · Basic · Updated March 2026

Create, read, update, and delete tasks assigned to contacts via MCP. Automate follow-up assignment and track team activity across your CRM.

Tasks are how work gets assigned and tracked inside GoHighLevel. Every contact interaction that requires a human action — a follow-up call, a document review, a proposal send — should be a task. Managing tasks through MCP means you can automatically generate work items based on external triggers, pipeline changes, or time-based rules without building it all inside GHL’s workflow builder.

What This MCP Tool Does

This tool gives you full CRUD operations on tasks attached to contact records. You can list all tasks for a contact, create new tasks with due dates and assignees, update task details, toggle completion status, and delete tasks. Every task is linked to a specific contact, so your team always has context for what they’re doing and why.

Endpoint Reference

List tasks for a contact: GET /contacts/{contactId}/tasks Returns all tasks associated with the contact, including status, due dates, and assignee information.

Create a task: POST /contacts/{contactId}/tasks Creates a new task linked to the contact. Requires a title and supports optional due date, description, assignee, and completion status.

Update a task: PUT /contacts/{contactId}/tasks/{taskId} Modify any field on an existing task — change the title, move the due date, reassign to a different team member.

Toggle completion: PATCH /contacts/{contactId}/tasks/{taskId}/completed Mark a task as complete or reopen a completed task. Simple toggle operation.

Delete a task: DELETE /contacts/{contactId}/tasks/{taskId} Permanently removes the task from the contact record.

Authentication

Requires a Private Integration Token (PIT) with the contacts scope enabled.

Key Parameters

When creating or updating tasks:

  • title — task name (required for creation)
  • body — detailed description or instructions
  • dueDate — ISO 8601 date for when the task should be completed
  • assignedTo — user ID of the team member responsible
  • completed — boolean indicating whether the task is done

Important Notes

Tasks created via MCP appear in the same task lists and dashboards as tasks created through the UI or workflows. Your team doesn’t need to know how a task was generated — it just shows up in their queue.

The assignedTo field requires a GHL user ID, not a name or email. You’ll need to know your team members’ user IDs to assign tasks programmatically. These can be retrieved through the location user endpoints.

Task due dates are timezone-aware. Always send dates in ISO 8601 format with timezone information to avoid scheduling confusion across time zones.

Common Questions

Can I create tasks without assigning them to someone? Yes. Unassigned tasks appear in the general task pool and can be claimed or assigned later.

Do completed tasks trigger any workflows? Task completion can be used as a workflow trigger in GHL. If you toggle a task to completed via MCP, any workflow listening for that event will fire.

Can I bulk-create tasks across multiple contacts? There’s no bulk task creation endpoint. You need to make individual calls per contact. Build in rate limiting for large batches.

How do I find the user ID for task assignment? User IDs are available through the location/sub-account user management endpoints, or through the GHL admin interface.