Workspace Admins can set up webhooks for your workspace so you can integrate Otter Conversation data into your downstream tools and workflows.
Webhook Payload
Key Fields
- abstract_summary: A concise summary of the meeting’s essential details
- action_items: The list of AI-detected tasks and responsibilities assigned to participants
- insights: A detailed breakdown of key topics and points discussed
- outline: Custom topics or questions to extract precise information from the meeting
- transcript: Contains the entire transcript of the meeting
- calendar_guests: The emails of the users invited to the calendar event (if exists)
calendar_guests to match a corresponding contact in the external system (ex, you are sending the Otter summary to your CRM- conf_join_url: The URL of the Zoom, Google Meet, or Microsoft Teams conference (if exists)
- owner: The Otter owner of the Conversation
- shared_emails: The list of emails the Otter conversation is shared with
Example Payload See example payload
{
"meta": {
"retrieved_at": "2025-01-27T23:27:47.096395+00:00",
"webhook": {
"name": "#All Customer Calls",
"source_type": "channel",
"event": "conversation_completed",
"destination_url": "https://your-webhook-endpoint.com/",
"created_by": {
"id": "user_id",
"name": "Jane Doe",
"email": "jane@test.com",
"first_name": "Jane",
"last_name": "Doe"
},
"source": {
"id": "channel_id",
"name": "All Customer Calls",
"member_count": 97,
"owner": {
"id": "user_id",
"name": "Owner Name",
"email": "owner@test.com",
"first_name": "Owner",
"last_name": "Name"
}
}
}
},
"data": {
"id": "conversation_id",
"title": "product launch meeting",
"url": "https://otter.ai/u/conversation_id",
"owner": {
"id": "user_id",
"name": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@test.com"
},
"created_at": "2025-07-31T12:00:00Z",
"process_status": {
"abstract_summary": "finished",
"action_item": "finished",
"outline": "finished"
},
"calendar_guests": [
{
"name": "John Doe",
"email": "john@test.com",
"permission": "collaborate"
}
],
"shared_emails": [
{
"email": "jane@test.com",
"user": {
"id": "user_id",
"name": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@test.com"
},
"permission": "collaborate"
}
],
"shared_channels": [
{
"channel": {
"id": "channel_id",
"name": "All Customer Calls",
"member_count": 97,
"owner": {
"id": "user_id",
"name": "Owner Name",
"first_name": "Owner",
"last_name": "Name",
"email": "owner@test.com"
}
},
"permission": "collaborate"
}
],
"abstract_summary": "This meeting discussed the next steps in the project launch. The team reviewed timelines, identified key risks, and assigned action items to ensure a successful launch next week.",
"conf_join_url": "https://calendar_meeting_url.com",
"relationships": {
"action_items": [
{
"id": "action_item_id",
"text": "Follow up with the sales team about launch messaging and prepare customer-facing materials",
"assignee": {
"id": "user_id",
"name": "Jane Doe",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@test.com"
},
"status": {
"completed": true,
"created_at": "2025-07-31T12:00:00Z",
"last_modified_at": "2025-07-31T12:00:00Z",
"completed_at": "2025-07-31T12:00:00Z"
}
},
{
"id": "action_item_id_2",
"text": "Coordinate with marketing to finalize launch timeline and promotional assets",
"assignee": {
"id": "user_id_2",
"name": "John Doe",
"first_name": "John",
"last_name": "Doe",
"email": "john@test.com"
},
"status": {
"completed": false,
"created_at": "2025-07-31T12:00:00Z",
"last_modified_at": "2025-07-31T12:00:00Z",
"completed_at": null
}
}
],
"insights": [
{
"topic": "Decisions",
"text": [
"Launch scheduled for next week pending final API testing",
"Marketing campaign will begin two days before launch",
"Team will implement phased rollout approach to minimize risk"
]
},
{
"topic": "Risks & Challenges",
"text": [
"Tight deadline may impact quality assurance",
"Dependency on external API requires coordination with vendor",
"Team fatigue noted as concern for post-launch support"
]
}
],
"outline": [
{
"section": "Project Overview and Timeline",
"text": [
"Jane Doe opened the meeting with a review of the product launch timeline",
"Team confirmed readiness for next week's launch date",
"Discussion of key milestones and dependencies leading up to launch",
"Review of completed pre-launch tasks and remaining action items"
]
},
{
"section": "Risk Assessment and Mitigation",
"text": [
"Team identified three primary risks: tight deadline, team fatigue, and external API dependency",
"Discussion of mitigation strategies for each identified risk",
"Agreement to implement phased rollout to reduce launch day pressure",
"Plan to coordinate closely with external vendor for API stability"
]
},
{
"section": "Marketing and Sales Coordination",
"text": [
"Marketing team presented launch campaign overview",
"Jane Doe assigned to coordinate with sales team on messaging",
"Discussion of customer-facing materials and launch communications",
"Timeline established for marketing activities pre and post-launch"
]
},
{
"section": "Action Items and Next Steps",
"text": [
"Team reviewed and assigned specific action items for launch preparation",
"Follow-up meetings scheduled for the week prior to launch",
"Agreement on communication protocol during launch week",
"Plan established for post-launch review and iteration"
]
}
],
"transcript": {
"content": "Jane Doe 00:00\nAlright everyone, thanks for joining. Let's dive into where we are with the product launch.\n\nJohn Doe 00:15\nWelcome to the project launch meeting! Excited to get this across the finish line.\n\nJane Doe 00:22\nSame here. So we're targeting next week for launch, which means we've got a lot to coordinate over the next few days. Let me walk through the key items we need to address.\n\nJohn Doe 00:35\nSounds good. I know marketing is ready to go, but we should probably talk about some of the risks we're seeing.\n\nJane Doe 00:42\nAbsolutely. That's actually first on my list. We've identified a few concerns - the tight deadline, team fatigue, and our dependency on that external API. Let's talk through mitigation strategies for each of these.\n\n\nTranscribed by https://otter.ai",
"format": "txt"
}
},
"custom_prompt": {
"label": "Next Steps",
"output": "# **Launch Preparation Plan**\n\n| Phase | Task | Owner | Deadline |\n|-------|------|-------|----------|\n| 1 | Finalize API integration testing | Engineering Team | 3 days before launch |\n| 2 | Complete marketing materials | Marketing Team | 2 days before launch |\n| 3 | Sales team briefing and messaging | Jane Doe | 2 days before launch |\n| 4 | Customer communications draft | Jane Doe | 1 day before launch |\n| 5 | Final go/no-go decision meeting | Leadership Team | Morning of launch |\n| 6 | Launch execution | All Teams | Launch day |\n| 7 | Post-launch monitoring | Engineering Team | Launch day + 3 days |\n| 8 | Launch retrospective | All Teams | 1 week post-launch |\n\n# **Key Priorities**\n\n**Immediate Actions:**\n• Jane to schedule sales team coordination meeting\n• Marketing to finalize promotional timeline and assets\n• Engineering to complete final API testing with vendor\n• Leadership to review phased rollout plan\n\n**Risk Mitigation:**\n• Implement phased rollout approach to reduce launch complexity\n• Establish daily check-ins during launch week\n• Create contingency plan for API downtime\n• Plan team capacity for post-launch support period\n\n**Success Metrics:**\n• Monitor system stability during first 48 hours\n• Track customer adoption and feedback\n• Measure marketing campaign performance\n• Assess team workload and identify support needs"
}
}
}Webhook Management
Workspace Admins can get the Webhook page by going to Manage Workspace > Developer. Only Workspace Admins can set up workspace webhooks.
Creating a Webhook
Create a new webhook by clicking on + Create webhook. The following dialog window will show up:
Enter the following information to create your webhook. The fields are:
- Endpoint URL (required): The URL to receive the exported speech, e.g., third-party URLs obtained from your CRM.
- Name (optional): A friendly name for this webhook. It can be null, and a blank field will be displayed for the webhook.
-
Source (required): The sources of speeches to export. Options:
- Workspace: All Conversations shared to the entire workspace will be exported.
- Channel: Only Conversations in the selected channels will be exported to this webhook.
- Currently, only public channels are supported.
-
Event type: the event that will trigger the webhook export.
-
Conversation.processed: A new conversation that is shared to the source has finished the process. -
Conversation.shared: An existing conversation is shared to the source.
-
Updating a Webhook
Currently, there is no way to update a webhook. We recommend creating a new webhook and deleting the old one.
Deleting a Webhook
The webhooks can be deleted with the three-dot icon on the right. The deletion is permanent, and the endpoint URLs will stop receiving data from Otter immediately once they’re deleted.
Webhook Setup Best Practices
Check out some ways webhooks can be set up below. If you have any questions about specific setups, contact your Otter Account Manager.
Example 1 - Export external Sales calls through an auto-share channel
- Set up a public auto-share channel for your Sales calls. This allows you to auto-share external calls from selected team members to a central channel.
- Set up a channel-level webhook by setting the
source= the public channel you set up.
Example 2 - Export all <type of> calls through meeting template output rules
- Set up a meeting template to your preferences that is auto-applied to the calls you want exported.
- Set up an output rule in the meeting template so that all auto-applied meetings with this template are shared to a public channel.
- Set up a channel-level webhook by setting the
source= the public channel you set up.
Example 3 - Manually selected “shared to workspace” meetings
- Set up a webhook where
source= “Conversations shared to anyone in the workspace”. - Ensure the meeting notes are shared with “Workspace members”.
Troubleshooting & FAQ
Is a full API available?
- Otter.ai's Public API is currently in beta and is available only with the Otter Enterprise plan. To enable this feature for your Workspace, contact your Otter account manager.
What is the webhook retry logic?
- For each Conversation, there will be 2 additional retry attempts if the previous ones fail.
Do you support private channels?
- Private channels are not yet supported.
- Please contact your Otter Account Manager if you are interested in this feature. Your feedback and workflow use case will help us in building this feature in future updates.
I didn’t receive a meeting I expected to receive to my webhook. Why?
- Your meeting must be shared to the Workspace or proper channel BEFORE the meeting ends.
Feedback
0 comments
Article is closed for comments.