> ## Documentation Index
> Fetch the complete documentation index at: https://heybtw.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# get_event_summary

> Comprehensive post-event report for a single event — attendance breakdown, seniority, partner performance, top accounts, and CRM pipeline.

<Note>
  This page documents the **Python MCP surface** (`mcp.heybtw.com`). It reflects `mcp-server/tools/event_summary.py` as of this page's publication — see [Schema stability](/docs/integrations/mcp-tools#schema-stability). If your integration expected a tool named `get_event_details`, this is it — see the naming note below.
</Note>

<Note>
  **Naming note.** Some earlier internal drafts referred to this capability as `get_event_details`. The shipped, registered tool name is `get_event_summary` — use that name. There is no separate `get_event_details` tool on this surface.
</Note>

## Purpose

`get_event_summary` is the single-event deep dive: attendance broken into host/partner/external, seniority distribution, per-partner sourcing performance, top engaged accounts, how this event compares to the workspace's own program average, and (when HubSpot is connected) pipeline attribution for this one event.

## When to use this

* "Give me a report on last month's Robotics Summit."
* Immediately after an event, to compare it against `program_comparison` and decide whether to repeat the format.
* Before [`get_invite_recommendations`](/docs/mcp-tools/get-invite-recommendations) for a similar upcoming event, to see who attended last time.

## Parameters

| Name                        | Type    | Required | Default | Description                                                                                                                     | Example       |
| --------------------------- | ------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `channel_id`                | string  | **Yes**  | —       | The event's channel id. No default — omitting it raises an error (see [Errors](#errors)).                                       | `"chn_88af1"` |
| `include_contacts`          | boolean | No       | `false` | Include the full attendee contact list. Adds `contacts`/`contacts_total`/`contacts_shown`/`contacts_raw_total` to the response. | `true`        |
| `include_partner_breakdown` | boolean | No       | `false` | Include per-partner sourcing performance (`partner_performance`).                                                               | `true`        |

## Default behavior

Given only `channel_id`, returns the full attendance/funnel/seniority/top-accounts/comparison report **without** the attendee-level contact list and **without** the partner performance breakdown — both are opt-in via their respective flags, keeping the default response smaller for the common "just show me the numbers" case.

## Sample request

```json theme={null}
{
  "tool": "get_event_summary",
  "arguments": { "channel_id": "chn_88af1", "include_partner_breakdown": true }
}
```

## Sample response

```json theme={null}
{
  "tool": "get_event_summary",
  "query_time_ms": 96.7,
  "result_count": 1,
  "data": [
    {
      "event_name": "Robotics Summit SF 2026",
      "channel_id": "chn_88af1",
      "event_date": "2026-06-18T00:00:00+00:00",
      "event_context": {
        "location": "San Francisco, CA",
        "format": "in_person",
        "timezone": "America/Los_Angeles",
        "capacity": 250,
        "meeting_url": null,
        "visibility": "public"
      },
      "attendance": {
        "total": 210,
        "breakdown": { "host": 12, "partner": 68, "external": 130 }
      },
      "funnel": {
        "mql_count": 34,
        "opportunity_count": 9,
        "meeting_count": 14,
        "conversion_rate": 0.1619
      },
      "seniority_distribution": {
        "executive": 18,
        "director_plus": 47,
        "manager": 62,
        "individual_contributor": 71,
        "unknown": 12
      },
      "partner_performance": [
        {
          "partner_name": "Northwind Ventures",
          "sourced_count": 22,
          "mql_count": 6,
          "conversion_rate": 0.2727
        }
      ],
      "top_accounts": [
        {
          "domain": "lighthouserobotics.example",
          "company": "Lighthouse Robotics",
          "attendee_count": 3,
          "mql": true,
          "opportunity": true
        }
      ],
      "program_comparison": {
        "vs_program_avg_signups": 1.34,
        "vs_program_avg_mql": 1.12
      },
      "pipeline": {
        "crm_enriched": true,
        "sourced_revenue": 38000.0,
        "won_revenue": 0.0,
        "company_count": 4
      }
    }
  ],
  "metadata": {
    "data_sources_queried": ["Channel", "EventSignUp", "Partner", "EventAttributionOpportunity"],
    "date_range_applied": null,
    "filters_applied": {
      "channel_id": "chn_88af1",
      "include_contacts": false,
      "include_partner_breakdown": true,
      "crm_enriched": true
    },
    "coverage_note": null
  }
}
```

## Response field reference

### Envelope

| Field          | Type             | Description                   |
| -------------- | ---------------- | ----------------------------- |
| `tool`         | string           | Always `"get_event_summary"`. |
| `result_count` | integer          | Always `1` on success.        |
| `data`         | array (length 1) | The event report object.      |

### `data[0]`

| Field                                                               | Type                                                | Description                                                                                                                                                                                                                     |
| ------------------------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `event_name` / `channel_id` / `event_date`                          | string                                              | Event identity.                                                                                                                                                                                                                 |
| `event_context`                                                     | object                                              | `{ location, format, timezone, capacity, meeting_url, visibility }`. `format` is derived: `"hybrid"` (has both location and meeting URL), `"virtual"` (meeting URL only), `"in_person"` (location only), `"unknown"` (neither). |
| `attendance.total`                                                  | integer                                             | Total attendees.                                                                                                                                                                                                                |
| `attendance.breakdown`                                              | object                                              | `{ host, partner, external }` counts — classified per attendee by email domain against the workspace's own domain and its partners' domains.                                                                                    |
| `funnel`                                                            | object                                              | `{ mql_count, opportunity_count, meeting_count, conversion_rate }`. `conversion_rate` = `mql_count / attendance.total`.                                                                                                         |
| `seniority_distribution`                                            | object                                              | Attendee count per tier: `executive`, `director_plus`, `manager`, `individual_contributor`, `unknown`.                                                                                                                          |
| `partner_performance`                                               | array \| `[]` when not requested                    | `{ partner_name, sourced_count, mql_count, conversion_rate }` per partner, sorted by `sourced_count` descending. Only populated when `include_partner_breakdown: true` — otherwise always `[]`, not omitted.                    |
| `top_accounts`                                                      | array (up to 10)                                    | External domains ranked by opportunity → MQL → attendee count: `{ domain, company, attendee_count, mql, opportunity }`. Excludes the workspace's own domain.                                                                    |
| `program_comparison.vs_program_avg_signups` / `.vs_program_avg_mql` | number \| null                                      | This event's count ÷ the workspace's own historical average across all its events. `null` when the workspace average is `0` (e.g. this is the first event). A value of `1.34` means "34% above average."                        |
| `pipeline`                                                          | object \| **omitted**                               | Present only when CRM is connected **and** the attribution resolver returned matching data for this channel. Same shape as [`get_event_attribution`](/docs/mcp-tools/get-event-attribution)'s per-event `pipeline` block.            |
| `crm_enriched`                                                      | boolean, **only present when `pipeline` is absent** | `false`, explaining why there's no `pipeline` block. When `pipeline` IS present, this top-level `crm_enriched` key does not appear — check for `pipeline`'s presence first, not this flag.                                      |
| `contacts`                                                          | array, present iff `include_contacts: true`         | Up to 200 deduplicated contacts: `{ email, name, title, company, context, seniority, funnel_status }`. `context` ∈ `"host"` \| `"partner"` \| `"external"`.                                                                     |
| `contacts_total` / `contacts_shown`                                 | integer, present iff `include_contacts: true`       | `contacts_shown` capped at 200.                                                                                                                                                                                                 |
| `contacts_raw_total`                                                | integer, present iff `include_contacts: true`       | Pre-dedup attendee count — useful to see how much deduplication happened.                                                                                                                                                       |

## Errors

* **`channel_id` refers to a nonexistent or out-of-workspace channel.** The tool raises `ValueError(f"Channel {channel_id!r} not found in workspace {workspace_id!r}")` internally, but like every tool on this surface, that specific message does **not** reach the client — it's caught by the generic handler and surfaces as `RuntimeError: Internal error executing get_event_summary (error_id=...)`. There is currently no way for an agent to distinguish "channel not found" from any other internal failure from the error message alone.
* **`channel_id` omitted entirely.** Same generic error — see [`get_workspace_overview` — Errors](/docs/mcp-tools/get-workspace-overview#errors).

## Pagination and limits

Not applicable to the report itself — one event in, one report out. `contacts` (when requested via `include_contacts`) is capped at 200 with no further pagination; use `contacts_raw_total`/`contacts_total` to know if you're seeing everyone.

## Related tools

* [`get_event_attribution`](/docs/mcp-tools/get-event-attribution) — the same event's pipeline numbers in the multi-event comparison shape, plus sourced/influenced breakdown by company.
* [`get_partner_insights`](/docs/mcp-tools/get-partner-insights) — a given partner's performance across **all** events, not just this one.
* [`get_invite_recommendations`](/docs/mcp-tools/get-invite-recommendations) — who to invite to a similar future event.
