Webhooks

Events

Complete reference for all webhook events and their payload structures in Bigmind.

This guide provides a complete reference for all webhook events available in Bigmind. If you haven't set up webhooks yet, check out our webhook setup guide first.

#Available events

Bigmind supports the following webhook events:

Event Description
transcription_created Triggered when a meeting transcription is completed
summary_created Triggered when a meeting summary is generated
scorecard_answers_created Triggered when all questions in a scorecard are answered for a meeting
notes_created Triggered when a new note is created
notes_updated Triggered when an existing note is updated
framework_answers_created Triggered when a framework component value is created
framework_answers_updated Triggered when a framework component value is updated
meeting_relations_created Triggered when a meeting's CRM relations are created after attribution
email_generated Triggered when the AI drafts an email and presents it to the rep for review
email_sent Triggered when the AI sends an email on behalf of a rep
todo_created Triggered when the AI creates an action item
todo_updated Triggered when an action item is updated
document_generated Triggered when the AI generates a document from a template
document_updated Triggered when the AI updates an existing document (e.g. a deal summary is regenerated)
agent_run_completed Triggered when an agent session completes (user-initiated or background)
signal_action Triggered when a user clicks a configured signal action button

#Webhook payload structure

Each webhook delivery includes a JSON payload with event data. All webhook payloads share a common structure:

{
  "event": "event_name",
  "data": { /* event-specific data */ },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": [],
    "associated_deal_ids": [],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_abc123",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

The relations field contains IDs of related CRM objects, making it easy to know which accounts, contacts, deals, or leads are associated with the event.

#Event payloads

#transcription_created

Triggered when a meeting transcription is completed:

{
  "event": "transcription_created",
  "data": {
    "meeting_id": "mtg_abc123",
    "session_id": "ses_xyz789",
    "transcript": "<transcript content in HTML format>",
    "speakers": [
      {
        "name": "John Doe",
        "email": "john@example.com",
        "device_id": "device_123"
      }
    ]
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": ["con_456", "con_789"],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

#summary_created

Triggered when a meeting summary is generated:

{
  "event": "summary_created",
  "data": {
    "meeting_id": "mtg_abc123",
    "session_id": "ses_xyz789",
    "summary": "<summary content in HTML format>"
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": ["con_456"],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

#scorecard_answers_created

Triggered when all questions in a scorecard are answered for a meeting:

{
  "event": "scorecard_answers_created",
  "data": {
    "scorecard_id": "sc_abc123",
    "scorecard_name": "Sales Call Quality",
    "target_object_name": "meeting_session",
    "target_object_id": "ses_xyz789",
    "questions_and_answers": [
      {
        "question_id": "q_1",
        "question_name": "Was budget discussed?",
        "question_type": "yes_no",
        "answer": true,
        "reasoning": "Budget was discussed at 5:30 mark"
      },
      {
        "question_id": "q_2",
        "question_name": "Deal size estimate",
        "question_type": "range",
        "answer": 8,
        "reasoning": "Strong indicators of large deal"
      }
    ]
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": ["con_456"],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

#notes_created

Triggered when a new note is created:

{
  "event": "notes_created",
  "data": {
    "note_id": "note_abc123",
    "note_type": "note",
    "content": "Follow up on pricing discussion",
    "user_id": "usr_456",
    "target_object_name": "Contact",
    "target_object_id": "con_789",
    "created_at": "2025-10-10T14:30:00.000Z"
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": ["con_789"],
    "associated_deal_ids": [],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

For warning-type notes, the content field contains structured data:

{
  "event": "notes_created",
  "data": {
    "note_id": "note_abc123",
    "note_type": "warnings",
    "content": [
      {
        "severity": "high",
        "warning": "Competitor mentioned multiple times",
        "reasoning": "Customer compared pricing to Competitor X"
      },
      {
        "severity": "medium",
        "warning": "Budget concerns raised",
        "reasoning": "Customer asked about payment terms"
      }
    ],
    "user_id": "usr_456",
    "target_object_name": "Opportunity",
    "target_object_id": "deal_101",
    "created_at": "2025-10-10T14:30:00.000Z"
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": [],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

#notes_updated

Triggered when an existing note is updated (same structure as notes_created, but with updated_at instead of created_at):

{
  "event": "notes_updated",
  "data": {
    "note_id": "note_abc123",
    "note_type": "note",
    "content": "Follow up on pricing discussion - scheduled for next week",
    "user_id": "usr_456",
    "target_object_name": "Contact",
    "target_object_id": "con_789",
    "updated_at": "2025-10-10T15:45:00.000Z"
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": ["con_789"],
    "associated_deal_ids": [],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T15:45:00.000Z"
}

#framework_answers_created

Triggered when a framework component value is created. Includes all components in the framework with their current values:

{
  "event": "framework_answers_created",
  "data": {
    "framework_id": "fw_abc123",
    "framework_name": "MEDDIC",
    "target_object_name": "Opportunity",
    "target_object_id": "deal_101",
    "components_and_values": [
      {
        "component_id": "comp_456",
        "component_name": "Metrics",
        "component_value": "Reduce lead enrichment time by 50%",
        "component_status": "completed"
      },
      {
        "component_id": "comp_457",
        "component_name": "Economic Buyer",
        "component_value": "VP of Sales",
        "component_status": "in-progress"
      },
      {
        "component_id": "comp_458",
        "component_name": "Decision Criteria",
        "component_value": null,
        "component_status": "not-started"
      }
    ],
    "created_at": "2025-10-10T14:30:00.000Z"
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": [],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

#framework_answers_updated

Triggered when a framework component value is updated. Includes all components in the framework with their current values (same structure as framework_answers_created, but with updated_at instead of created_at):

{
  "event": "framework_answers_updated",
  "data": {
    "framework_id": "fw_abc123",
    "framework_name": "MEDDIC",
    "target_object_name": "Opportunity",
    "target_object_id": "deal_101",
    "components_and_values": [
      {
        "component_id": "comp_456",
        "component_name": "Metrics",
        "component_type": "text",
        "component_value": "Reduce lead enrichment time by 50%",
        "component_status": "completed"
      },
      {
        "component_id": "comp_457",
        "component_name": "Economic Buyer",
        "component_type": "text",
        "component_value": "CEO",
        "component_status": "completed"
      },
      {
        "component_id": "comp_458",
        "component_name": "Decision Criteria",
        "component_type": "text",
        "component_value": "Price, ease of use, integration capabilities",
        "component_status": "in-progress"
      }
    ],
    "updated_at": "2025-10-10T15:45:00.000Z"
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": [],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T15:45:00.000Z"
}

#meeting_relations_created

Triggered when a meeting's CRM relations are created. This event fires when attribution runs after a meeting ends, associating the meeting with accounts, contacts, deals, or leads. This is useful when you need to know about CRM associations that may be established after the initial meeting events (like transcription_created) have already been sent:

{
  "event": "meeting_relations_created",
  "data": {
    "meeting_id": "mtg_abc123",
    "session_id": "ses_xyz789",
    "relations": {
      "associated_account_ids": ["acc_123"],
      "associated_contact_ids": ["con_456", "con_789"],
      "associated_deal_ids": ["deal_101"],
      "associated_lead_ids": []
    }
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T16:00:00.000Z"
}

Note: This event is sent separately from meeting content events like transcription_created because CRM attribution may run asynchronously after the meeting has ended. Subscribe to this event if your integration needs to track when meetings are linked to CRM records.

#email_generated

Triggered when the AI drafts an email and presents it to the rep for review. This fires as soon as the draft is produced — the rep may still choose to edit or discard it before sending. Use email_sent to capture confirmed sends.

{
  "event": "email_generated",
  "data": {
    "subject": "Follow-up on our conversation",
    "to": "contact@example.com",
    "body": "<p>Hi Jane, ...</p>",
    "chat_id": "chat_abc123",
    "agent_mode": "follow-up"
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": ["con_456"],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

#email_sent

Triggered when the AI sends an email on behalf of a rep, after the rep has reviewed and confirmed the draft.

{
  "event": "email_sent",
  "data": {
    "subject": "Follow-up on our conversation",
    "to": "contact@example.com",
    "integration_id": "google-gmail",
    "user_id": "usr_789"
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": ["con_456"],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:35:00.000Z"
}

#todo_created

Triggered when the AI creates an action item from a meeting. Includes the meeting it was created from and any associated CRM objects.

{
  "event": "todo_created",
  "data": {
    "todo_id": "todo_abc123",
    "type": "email",
    "description": "Send pricing proposal to John",
    "due_at": "2025-10-17T09:00:00.000Z",
    "ai_generated": true,
    "meeting_id": "mtg_abc123",
    "session_id": "ses_xyz789",
    "target_object_name": "deal",
    "target_object_id": "deal_101",
    "target_table": "deals",
    "parent_target_object_name": "account",
    "parent_target_object_id": "acc_123",
    "parent_target_table": "accounts"
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": ["con_456"],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

The type field can be email, meeting, task, or linkedin.

#todo_updated

Triggered when an action item is updated, including status, priority, due date, assignment, and object association changes.

{
  "event": "todo_updated",
  "data": {
    "todo_id": "todo_abc123",
    "type": "email",
    "description": "Send pricing proposal to John",
    "due_at": "2025-10-17T09:00:00.000Z",
    "snoozed_until": null,
    "ai_generated": true,
    "assigned_to": "user_123",
    "priority": "high",
    "status": "done",
    "completed_at": "2025-10-11T10:15:00.000Z",
    "target_object_name": "deal",
    "target_object_id": "deal_101",
    "target_table": "deals",
    "parent_target_object_name": "account",
    "parent_target_object_id": "acc_123",
    "parent_target_table": "accounts",
    "updated_at": "2025-10-11T10:15:00.000Z"
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-11T10:15:00.000Z"
}

#document_generated

Triggered when the AI generates a document from a template. Includes metadata about the template used, so you can track which document types your team is producing.

{
  "event": "document_generated",
  "data": {
    "document_id": "doc_abc123",
    "title": "Acme Corp Account Plan - Q4 2025",
    "template_id": "tmpl_xyz789",
    "template_title": "Account Plan",
    "template_purpose": "icp"
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": [],
    "associated_deal_ids": [],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:30:00.000Z"
}

The template_purpose field can be icp, case_study, product_family, product, deal-summary, or null for general-purpose templates.

#document_updated

Triggered when the AI updates an existing document. The most common case is a deal summary being regenerated after a new meeting or activity. The payload structure is identical to document_generated.

{
  "event": "document_updated",
  "data": {
    "document_id": "doc_abc123",
    "title": "Acme Corp - Summary",
    "template_id": "tmpl_xyz789",
    "template_title": "Deal Summary",
    "template_purpose": "deal-summary"
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": [],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T16:00:00.000Z"
}

#agent_run_completed

Triggered when an agent session finishes. This fires for both user-initiated chats and background automation runs (e.g. post-meeting processing, deal updates). Use initiated_by to distinguish them and tools_used to see what actions the agent took.

{
  "event": "agent_run_completed",
  "data": {
    "chat_id": "chat_abc123",
    "agent_mode": "post-meeting-automation",
    "initiated_by": "system",
    "object_type": "meeting_session",
    "object_id": "ses_xyz789",
    "tools_used": ["createTodo", "generateMeetingSummaryBySessionId", "answerScorecardQuestion"],
    "message_count": 6
  },
  "relations": {
    "associated_account_ids": [],
    "associated_contact_ids": [],
    "associated_deal_ids": ["deal_101"],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2025-10-10T14:32:00.000Z"
}

The initiated_by field is either user (rep opened the chat and sent a message) or system (background agent triggered automatically). The tools_used array lists the unique tool names called during the session.

#signal_action

Triggered when a user clicks a configured action button on a signal in email, Slack, or the feed. This event includes the responding user's ID and email, the signal event that was acted on, the clicked button label and value, and any CRM object associated with the signal.

{
  "event": "signal_action",
  "data": {
    "signalId": "sig_abc123",
    "signalSlug": "price-change",
    "signalEventId": "evt_xyz789",
    "userId": "usr_456",
    "userEmail": "jane@example.com",
    "objectType": "account",
    "objectId": "acc_123",
    "actionType": "feedback",
    "question": null,
    "label": "Yes",
    "value": "yes",
    "miniAppId": "ma_123",
    "respondedAt": "2026-05-05T14:30:00.000Z"
  },
  "relations": {
    "associated_account_ids": ["acc_123"],
    "associated_contact_ids": [],
    "associated_deal_ids": [],
    "associated_lead_ids": []
  },
  "webhook_id": "whk_def456",
  "timestamp": "2026-05-05T14:30:00.000Z"
}

The actionType field is either feedback for predefined Yes/No actions or question for custom question actions. For question actions, question contains the configured prompt and label/value contain the clicked button's configured label and value.

#Next steps

Now that you understand the webhook events and their payloads, make sure to:

Updated 10/10/2025