Create Asana tasks from HubSpot tickets
A HubSpot + Asana agent flow
A HubSpot support ticket asks for something only engineering or onboarding can do: a custom integration, a data migration, a fix that isn't a canned reply. The rep can't action it inside HubSpot, so they message someone, who forgets, and the customer waits. This recipe routes that work to where it gets done: your agent searches HubSpot tickets for the ones that need hands-on follow-through and opens a matching Asana task in the project your delivery team runs. It calls search_crm_objects filtered to tickets in a pipeline stage or with a property you choose, reads the subject and content, and batches them through create_tasks with the ticket subject as the task name, a description that quotes the request and links the ticket, and an assignee if you map one. HubSpot answers on request, so the agent runs on a cadence and only matching tickets become tasks.
The flow
search_crm_objectsSearches CRM objects such as contacts, companies, deals, and tickets using filters.
create_tasksCreates up to 50 tasks with assignments, dates, and custom fields.
Step by step
- Scope which tickets cross over
Tell the agent to search tickets filtered by a pipeline stage like 'Needs engineering' or a custom property that flags hand-off work. Point it at one Asana project so delivery tasks land in a single place.
- Read the HubSpot tickets
The agent calls search_crm_objects for tickets matching that filter and gets back each ticket's subject, content, and the properties you ask for. It can follow up with get_crm_objects by ID to pull associations like the company or contact.
- Create the tasks in a batch
It maps each ticket to a task and calls create_tasks, up to 50 at once, with the subject as the name, a description quoting the request and linking the HubSpot ticket, and an assignee GID or due date if you mapped one.
- Record what's mirrored
Store each HubSpot ticket ID against the Asana task it created. On the next run the agent skips tickets that already have a task, so re-running doesn't duplicate the project.
Tell your agent
Each morning, search HubSpot tickets in the 'Needs engineering' pipeline stage. For any that don't already have an Asana task, create tasks in the Delivery project with the ticket subject as the name, a description quoting the ticket content and linking the ticket, and a due date one week out. Don't recreate tasks for tickets you've already mirrored.
Setup
This flow needs both servers connected to your agent. Follow each install guide:
Worth knowing
- create_tasks needs a target project or workspace GID, and any assignee must be a user GID, not a name or email. Resolve those once with get_projects and get_users and pass the IDs.
- search_crm_objects searches across object types, so be explicit that you want tickets, not contacts or deals, and pass the right filter property. A loose query can return the wrong object type entirely.
- The Asana batch caps at 50 tasks per call. On a first backfill of a busy pipeline, have the agent page through HubSpot results and chunk the creates so a single call doesn't exceed the limit.
Questions
- Does closing the Asana task close the HubSpot ticket?
- No. This is create-only, HubSpot to Asana. To push status back you'd add a step that reads the task's completion and calls manage_crm_objects to update the ticket, and decide which side wins when both change.
- What stops it from creating a task for every ticket?
- The filter. It only searches tickets in the stage or with the property you specify, and it dedupes on the ticket ID it stored, so general support tickets never reach Asana.