canonical: https://jentic.com/apis/hubspot.com/hubspot-crm-tasks

# HubSpot Tasks

The HubSpot CRM Tasks API manages Task records - to-dos that sales reps and CSMs use to follow up with contacts, deals, and tickets in HubSpot. Tasks have due dates, owners, statuses, types (call, email, to-do), and priorities, and can be associated with any other CRM object. The API exposes single-record CRUD, batch read, batch create, batch update, batch upsert by unique property, batch archive, and a full search endpoint with filters on owner, due date, status, and any custom property.

## For AI agents

Create, update, search, and archive HubSpot CRM Tasks - including assigning a task to an owner with a due date and associating it with a contact, deal, or ticket - through /crm/v3/objects/tasks.

## Scope

Does not handle calendar events, project planning, or workflow automation rules - use for managing CRM Task records and their associations only.

## Capabilities

- Create a follow-up task tied to a contact via POST /crm/v3/objects/tasks
- Update a task's status, priority, or due date with PATCH /crm/v3/objects/tasks/{taskId}
- Search overdue tasks for a specific owner using POST /crm/v3/objects/tasks/search
- Bulk-create tasks for a list of contacts with POST /crm/v3/objects/tasks/batch/create
- Mark tasks complete by updating hs_task_status via batch update
- Archive a task with DELETE /crm/v3/objects/tasks/{taskId}
- Retrieve a batch of tasks by ID using POST /crm/v3/objects/tasks/batch/read

## Use cases

### Automated Follow-Up Task Creation

When a contact takes a key action (downloads a whitepaper, requests a demo, replies to an email), an automation creates a HubSpot Task assigned to the right rep with a due date and the contact association already set. POST /crm/v3/objects/tasks accepts the task body and association inputs in a single call, so the rep sees the task in their HubSpot Tasks queue within seconds. For high-volume campaigns, POST /crm/v3/objects/tasks/batch/create handles up to 100 tasks per request.

Example prompt: Call POST /crm/v3/objects/tasks with hs_task_subject, hs_task_body, hs_timestamp (due date), hubspot_owner_id, and an association to the contactId.

### Overdue Task Reporting

Sales managers need a daily view of overdue tasks per rep so they can coach and reassign. POST /crm/v3/objects/tasks/search with filters on hs_task_status='NOT_STARTED' and hs_timestamp before today returns the matching tasks, sorted by oldest first. The endpoint supports paging so even teams with thousands of open tasks can be reviewed in batches of 100. Exports power dashboards and alerting in Slack or email.

Example prompt: Call POST /crm/v3/objects/tasks/search with filters on hs_task_status='NOT_STARTED' and hs_timestamp lt today, sorted ascending, then page through results.

### Bulk Task Reassignment

When a rep leaves or changes territory, dozens or hundreds of their open tasks need to be reassigned. A script searches for the rep's open tasks and calls POST /crm/v3/objects/tasks/batch/update with the new hubspot_owner_id for each taskId. The whole reassignment finishes in seconds rather than the manual reassign-one-at-a-time workflow in the UI.

Example prompt: Call POST /crm/v3/objects/tasks/batch/update with inputs containing each taskId and hubspot_owner_id set to the new rep's user ID.

### AI Agent Daily Standup Prep

An AI productivity agent prepares a daily summary for each rep: open tasks due today, overdue tasks, and tasks closed yesterday. Through Jentic the agent searches for the tasks search and read operations, executes them with appropriate filters, and formats the result. Jentic stores OAuth credentials in its vault so the agent only handles scoped execution tokens.

Example prompt: Search Jentic for 'list hubspot tasks for owner due today', load the search operation, and execute it with filters on hubspot_owner_id and hs_timestamp range.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /crm/v3/objects/tasks | Create a task |
| GET | /crm/v3/objects/tasks/{taskId} | Read a task |
| PATCH | /crm/v3/objects/tasks/{taskId} | Update a task |
| DELETE | /crm/v3/objects/tasks/{taskId} | Archive a task |
| POST | /crm/v3/objects/tasks/search | Search tasks |
| POST | /crm/v3/objects/tasks/batch/create | Batch create tasks |
| POST | /crm/v3/objects/tasks/batch/update | Batch update tasks |

## Key resources

- **Basic** — Single-task CRUD via /crm/v3/objects/tasks: read, create, update, archive.
- **Batch** — Batch read, create, update, upsert, and archive operations for managing many tasks per request.
- **Search** — Filter tasks by owner, due date, status, type, and custom properties via POST /crm/v3/objects/tasks/search.

## Why Jentic

- **Setup:** Wiring HubSpot Tasks by hand means learning its OAuth2 access token or private app token auth, targeting the api.hubapi.com host, and handling batch and search calls yourself. Through Jentic you install once, import HubSpot Tasks from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The Tasks API puts the task id in the URL path (/crm/v3/objects/tasks/{taskId}), so a rule can pin your agent to one task for read and update. You choose the operations it may call, so destructive ones like deleting a task or batch update are not included unless you add them.
- **Credential handling:** Your HubSpot access token or private app token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a HubSpot follow-up task' or 'find open tasks', and Jentic returns the matching Tasks operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Asana API** — Asana offers richer task management features (subtasks, dependencies, projects) outside a CRM context.
- **ClickUp API** — ClickUp combines tasks, docs, and goals in one platform with comparable task CRUD endpoints.
- **HubSpot Contacts** — Tasks are typically associated with Contacts; use Contacts to look up the right contactId before creating a task.

## FAQ

### What authentication does the HubSpot Tasks API use?

It supports OAuth 2.0 (recommended for public apps) and HubSpot private app access tokens passed as a Bearer token in the Authorization header. Through Jentic the token is stored encrypted in the vault and injected at execution time so the agent never holds the raw secret.

### Can I associate a task with a contact, deal, or ticket through this API?

Yes. POST /crm/v3/objects/tasks accepts an associations input that links the task to one or more existing CRM records (contactId, dealId, ticketId). You can also create the association after the fact via the Associations API.

### What are the rate limits for the HubSpot Tasks API?

HubSpot enforces 100 requests per 10 seconds for OAuth apps and 190 per 10 seconds for private apps on Enterprise tiers, plus daily quotas. Use POST /crm/v3/objects/tasks/batch/create and batch/update (up to 100 tasks per request) for high-volume task workflows.

### How do I find overdue tasks for a specific rep through Jentic?

Search Jentic for 'find overdue hubspot tasks for owner', load POST /crm/v3/objects/tasks/search, and execute it with filters on hubspot_owner_id, hs_task_status='NOT_STARTED', and hs_timestamp less than today. Jentic returns the typed task list.

### How do I mark a task as completed via the API?

Call PATCH /crm/v3/objects/tasks/{taskId} with hs_task_status set to 'COMPLETED'. The corresponding HubSpot UI updates immediately. For many tasks at once, use POST /crm/v3/objects/tasks/batch/update with the same property change for each taskId.

### Does archiving a task with DELETE /crm/v3/objects/tasks/{taskId} delete it permanently?

No. Archive is a soft delete - the task is removed from default queues and search results but can be restored within HubSpot's retention window. To permanently remove records you must use HubSpot's GDPR delete process.

### Can I limit what my agent is allowed to do with the HubSpot CRM Tasks API?

Yes. Because you run Jentic One yourself, your own rules decide which Tasks operations and credentials the agent may use. Since the task id sits in the URL path at /crm/v3/objects/tasks/{taskId}, you can pin the agent to a single task for read and update, and you choose exactly which operations it may call. Destructive ones like DELETE /crm/v3/objects/tasks/{taskId} or POST /crm/v3/objects/tasks/batch/update stay off limits unless you add them.
