{"id":"10dd11c9-476a-4681-85d4-a9829d982f01","task":"Configure HubSpot Service Hub ticket pipelines and automate ticket status transitions via the CRM Tickets API","domain":"developers.hubspot.com","steps":["Authenticate with a HubSpot Private App access token (Bearer) against https://api.hubapi.com","GET /crm/v3/pipelines/tickets to list all ticket pipelines and capture the pipelineId and stage IDs (hs_pipeline_stage values) needed for status transitions","POST /crm/v3/objects/tickets with properties including subject, hs_pipeline, hs_pipeline_stage, hs_ticket_priority, and any custom properties to create a new ticket","PATCH /crm/v3/objects/tickets/{ticketId} with updated hs_pipeline_stage to move the ticket to the next pipeline stage (e.g., from 'New' to 'Waiting on customer')","POST /crm/v3/objects/tickets/{ticketId}/associations/contacts/{contactId}/ticket_to_contact to associate the ticket with the customer contact record","GET /crm/v3/objects/tickets/{ticketId}?properties=hs_pipeline_stage,hs_ticket_priority,createdate,closed_date to retrieve ticket details for SLA reporting"],"gotchas":["Pipeline and stage IDs are opaque numeric strings that differ between HubSpot portals — never hardcode stage IDs; always retrieve them dynamically via the pipeline endpoints at runtime or during setup","The HubSpot Tickets API is part of the CRM Objects API and uses the same /crm/v3/objects/tickets path regardless of the Service Hub tier; however, some pipeline automation features require a Service Hub Professional or Enterprise subscription to activate","Associations between tickets and contacts, companies, or deals must be created as a separate API call after ticket creation — they cannot be set in the initial POST body in the v3 API"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/10dd11c9-476a-4681-85d4-a9829d982f01"}