Prerequisites
- A tested AI phone agent and outbound calling route if you will place callbacks.
- HubSpot connected for native HubSpot workflow actions.
- Access to configure and activate workflows, and access to the destination HubSpot records.
- A reliable mapping between the OpenCX contact and the HubSpot contact. Their IDs are different; a phone number alone is not a HubSpot record ID.
Create a HubSpot ticket from a phone session
Configure Create HubSpot Ticket from Session in the workflow that should create the support ticket. For a post-call workflow:- Choose Call Finished and filter the calls that require a support ticket. Do not add ticket creation to every outcome unless that is intentional.
- Add Create HubSpot Ticket from Session.
- Set Session ID from
trigger.call.ticket.ticketIdand choose the HubSpot pipeline and initial ticket status. - Set Ticket Subject and Initial Comment to explain the call result and requested next step. The final call summary may not yet be available.
- Leave Allow Multiple Tickets off unless a new HubSpot ticket is required for the same session. Enable Hand Off to a Human only when the session should move to human handling; this changes ownership behavior and does not itself transfer phone audio.
- Test the workflow, inspect its HubSpot Ticket ID, Ticket URL, and returned Contact ID, and verify the record in HubSpot.
Callback tasks and call notes
Tasks and notes require an explicit CRM automation or API integration. The native Create HubSpot Ticket from Session action creates a ticket, not a callback task. Send Webhook can pass call fields to your integration endpoint; that endpoint needs its own HubSpot authorization and logic. It does not inherit the OpenCX HubSpot connection automatically.Pass the finished-call fields
In a Call Finished workflow, filter Direction = Outbound, then configure Send Webhook with your receiver’s URL,POST, authentication headers, and these body parameters:
These body keys define your receiver’s input; they are not a built-in HubSpot action schema. Check Is Success and Status Code after sending. Your receiver should retain enough information to retry a CRM write without starting another phone call.
Create and update activities
Your integration should resolve the HubSpot contact, then explicitly associate each activity with that record. For a callback task, usePOST /crm/v3/objects/tasks with hs_task_type: CALL, hs_task_subject, hs_task_status: NOT_STARTED, the task owner when required, and hs_timestamp set to the agreed callback due time. Save the returned task ID. Rescheduling should update that task’s due time; completion should update its status according to your business rule. See HubSpot’s task API.
For call feedback, use POST /crm/v3/objects/notes with hs_timestamp set to the call event time and hs_note_body containing the outcome, disposition, call reference, and available feedback. Associate the note with the resolved HubSpot record and save its returned ID. See HubSpot’s notes API.
A HubSpot task is a reminder/activity record; creating it does not schedule the OpenCX dial. Configure the callback workflow or external schedule separately. Keep task updates and schedule cancellation/rescheduling coordinated in the system managing the appointment.
Avoid duplicates and incomplete summaries
Store the OpenCX call ID with the HubSpot note ID so a repeated event updates or reuses the same activity. Store the callback appointment reference with the task ID so multiple dial attempts do not create duplicate appointment tasks. Route missing IDs or ambiguous contact matches for review. Call Finished can run before the final summary is generated. Write the factual outcome first, then have a separate follow-up retrieve the completed session and update the same note when summary text is available. Do not interpret an empty summary as an integration failure, and do not mark a callback completed solely because dialing started.Verify before activation
Test with one contact you control:- Confirm ticket, task, and note associations point to the correct HubSpot contact.
- Verify the callback due time in the customer’s timezone and in the actual dial schedule.
- Trigger an answered call and an unanswered call; confirm each uses the intended outcome rule.
- Repeat delivery of a saved result and confirm no duplicate activity appears.
- Cancel or reschedule a callback and confirm both the HubSpot task and pending dial schedule reflect the change.
- Confirm delayed summary enrichment updates the existing note.