Contact Tasks
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 instructionsdueDate— ISO 8601 date for when the task should be completedassignedTo— user ID of the team member responsiblecompleted— 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.
Related MCP Tools
- Contact CRUD — Access the contact record the task is attached to
- Contact Notes — Add context to contacts alongside tasks
- Location Tasks — Search tasks across all contacts in a location
- Opportunity CRUD — Link tasks to sales pipeline activities
- Campaign & Workflow — Trigger task creation through workflow enrollment