canonical: https://jentic.com/apis/hubspot.com/hubspot-marketing-events

# HubSpot Marketing Marketing Events

The HubSpot Marketing Events API integrates external event platforms (webinars, conferences, in-person events) with HubSpot so contact attendance and registration become first-class CRM data. It manages marketing event records by externalEventId and externalAccountId, upserts attendance and participation states (registered, attended, cancelled), and exposes participation breakdowns for reporting. With 36 endpoints across event upsert, attendance create, email-create, and participation breakdown paths, it gives event-marketing tools a structured way to push their data into HubSpot timelines and workflows.

## For AI agents

Push marketing event records and per-attendee state changes from external event platforms into HubSpot so attendance becomes CRM data with breakdown reporting.

## Scope

Does not host events, send confirmation emails, or process ticketing - use for syncing external marketing event records and attendance state into HubSpot only.

## Capabilities

- Upsert a marketing event record from an external platform using externalEventId
- Record per-attendee subscriber-state changes (registered, attended, cancelled) by event id and state
- Create attendance records identified by email when the contact has no existing HubSpot id
- Pull a participation breakdown for an event to see attendee state distribution
- Bulk-upsert events in one call when syncing an external event platform overnight
- Cross-reference participation by externalAccountId and externalEventId for multi-tenant integrations

## Use cases

### Webinar Platform to HubSpot Sync

Push webinar registrations and attendance from Zoom, ON24, or a custom platform into HubSpot so marketing-ops sees the same attendance data CRM workflows act on. POST /marketing/v3/marketing-events/events/{externalEventId} upserts the event record, and the attendance subresources record per-attendee state by email or contact id. The result: webinar engagement appears on the contact timeline and triggers HubSpot workflows.

Example prompt: Call POST /marketing/v3/marketing-events/events/{externalEventId} to upsert the event, then POST /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create with attendee emails.

### In-Person Event Attendance Backfill

After an in-person conference or trade show, backfill attendance into HubSpot in batches so sales follow-up sequences enrol the right contacts. The email-create attendance endpoint accepts a contact list keyed by email, removing the need to resolve HubSpot contact ids client-side. Useful for post-event marketing and demand generation.

Example prompt: Call POST /marketing/v3/marketing-events/attendance/{externalEventId}/attended/email-create with an array of attendee emails.

### Participation Breakdown Reporting

Pull a participation breakdown for an event to see how many contacts are registered, attended, and cancelled, broken down by external account where relevant. GET /marketing/v3/marketing-events/participations/{marketingEventId}/breakdown returns the counts an agent can render directly to a dashboard, without aggregating per-attendee records client-side.

Example prompt: Call GET /marketing/v3/marketing-events/participations/{marketingEventId}/breakdown to read the per-state counts for the event.

### AI Agent Post-Event Workflow via Jentic

An AI agent automates post-event follow-up by syncing attendance from the webinar platform, then enrolling attendees in a HubSpot workflow. The agent searches Jentic for marketing-event upsert and attendance operations, loads schemas, and runs them in sequence. Jentic stores the OAuth token, so the agent handles no raw credentials and the post-event run takes minutes.

Example prompt: Search Jentic for "upsert hubspot marketing event", load the schema for POST /marketing/v3/marketing-events/events/upsert, and execute with the event payload.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /marketing/v3/marketing-events/events/{externalEventId} | Upsert a marketing event by external id |
| POST | /marketing/v3/marketing-events/events/upsert | Bulk upsert marketing events |
| POST | /marketing/v3/marketing-events/events/{externalEventId}/{subscriberState}/upsert | Upsert attendance for an event by subscriber state |
| POST | /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create | Create attendance records by subscriber state |
| POST | /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create | Create attendance records identified by email |
| GET | /marketing/v3/marketing-events/participations/{marketingEventId}/breakdown | Get participation breakdown for an event |
| GET | /marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown | Get breakdown by external account and event |
| GET | /marketing/v3/marketing-events/{objectId} | Retrieve a marketing event by HubSpot object id |

## Key resources

- **Events** — Marketing event records keyed by externalEventId and externalAccountId.
- **Attendance** — Per-attendee state changes identified by email or contact id.
- **Participations** — Aggregated participation views and breakdowns for an event.

## Why Jentic

- **Setup:** Wiring HubSpot Marketing Events by hand means running its OAuth flow or minting a private-app token, targeting api.hubapi.com, and reconciling upserts against external event and account ids yourself. Through Jentic you install once, import Marketing Marketing Events from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** This API puts the event id in the URL path (/marketing/v3/marketing-events/events/{externalEventId}/...), so a rule can pin your agent to one marketing event: it can upsert attendance and read participation for that event and nothing else. You choose the operations it may call, so subscriber-state changes are not included unless you add them.
- **Credential handling:** Your HubSpot OAuth 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 'upsert a HubSpot marketing event' or 'get event attendance breakdown', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the HubSpot reference docs.

## Related APIs

- **CRM Contacts** — The contact records that attendance state changes attach to
- **Marketing Single-send** — Send post-event follow-up emails to attendees
- **Marketing Campaigns** — Attach marketing events to campaigns for attribution roll-up
- **Cvent** — Standalone event-management platform with native registration and ticketing

## FAQ

### What authentication does the Marketing Events API use?

It accepts HubSpot OAuth 2.0 access tokens, private app tokens, or developer API keys (developer_hapikey for some operations), sent as Bearer or as a query parameter respectively. Through Jentic, the token is stored encrypted in your Jentic One instance.

### Can I record attendance using only the contact's email?

Yes. POST /marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create accepts an array of attendee emails so you do not need to resolve HubSpot contact ids before sending attendance updates.

### How do I sync many events from an external platform in one call?

Use POST /marketing/v3/marketing-events/events/upsert with an inputs array. Each entry carries the externalEventId, externalAccountId, and event metadata; HubSpot upserts based on the external identifiers.

### What are the rate limits for the Marketing Events API?

Account-level limits are 100 requests per 10 seconds across HubSpot's authenticated APIs, with daily caps that depend on the subscription tier. Use the bulk upsert endpoints to fit more events inside the per-second window.

### How do I push a webinar attendance list through Jentic?

Run pip install jentic, search for "create hubspot event attendance by email", load the schema for POST /marketing/v3/marketing-events/attendance/{externalEventId}/attended/email-create, and execute with the email array. Get started with Jentic One, the self-hosted execution layer.

### Does this API send registration confirmation emails?

No. Sending confirmation emails is the job of the Marketing Single-send API or the Marketing Emails API. This API records the event and attendance state - confirmation send-outs are a separate call.

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

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, and this API puts the event id in the URL path, so you can pin the agent to a single marketing event and let it only upsert attendance and read the participation breakdown for that event. You choose the operations it may call, so subscriber-state changes are excluded unless you add them. The stored HubSpot token is injected at execution time and never reaches the agent's prompt or logs.
