/* =========================
Speak – Structured Outputs (page-scoped)
– Same layout pattern as Voice Agents page
– Minimal CSS: relies on global tokens + btn-* classes
========================= */
.sp-structured-outputs{
–sp-text: var(–bodyText, #0f172a);
–sp-muted: var(–bodyMuted, #475569);
–sp-light: var(–bodyLight, #64748b);
–sp-border: var(–border, #e5e7eb);
–sp-soft: var(–soft, #f8fafc);
–sp-shadow: var(–shadowMd, 0 10px 30px rgba(0,0,0,.06));
–sp-radius: 14px;
–sp-focus: 0 0 0 3px rgba(37, 99, 235, .22);
color: var(–sp-text);
font-family: var(–fontBody, system-ui, -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, Arial, sans-serif);
}
.sp-structured-outputs *{ box-sizing:border-box; }
.sp-structured-outputs section{ padding: clamp(2.75rem, 5.5vw, 4.75rem) 1.25rem; }
.sp-structured-outputs .sp-container{ max-width: 1180px; margin: 0 auto; }
.sp-structured-outputs .sp-kicker{
font-size:.85rem; font-weight:650; color:var(–sp-muted);
letter-spacing:.05em; text-transform:uppercase; margin:0 0 .6rem;
}
.sp-structured-outputs h1{
font-family: var(–fontHeading, inherit);
font-size: clamp(2.05rem, 4.2vw, 3.05rem);
line-height: 1.06;
margin: 0 0 1rem;
letter-spacing: -0.02em;
}
.sp-structured-outputs h2{
font-family: var(–fontHeading, inherit);
font-size: clamp(1.55rem, 2.6vw, 2.05rem);
line-height: 1.15;
margin: 0 0 1rem;
letter-spacing: -0.01em;
}
.sp-structured-outputs .sp-lead{
font-size: 1.1rem;
color: var(–sp-muted);
line-height: 1.55;
max-width: 920px;
margin: 0;
}
.sp-structured-outputs a{ color: inherit; }
.sp-structured-outputs a:not(.elementor-button):not(.elementor-button-link):not([role=”button”]){
text-decoration: underline;
text-underline-offset: 3px;
}
.sp-structured-outputs a.elementor-button,
.sp-structured-outputs a.elementor-button:hover{ text-decoration:none !important; }
/* Hero */
.sp-structured-outputs .sp-hero{ background:#fff; border-bottom:1px solid var(–sp-border); }
.sp-structured-outputs .sp-hero-grid{
display:grid;
grid-template-columns: 1.1fr .9fr;
gap: 1.75rem;
align-items:start;
}
@media (max-width: 920px){
.sp-structured-outputs .sp-hero-grid{ grid-template-columns: 1fr; }
}
.sp-structured-outputs .sp-cta-row{
display:flex; flex-wrap:wrap; gap:.75rem;
margin-top: 1.35rem; align-items:center;
}
.sp-structured-outputs .sp-trial{
margin-top:.85rem; color:var(–sp-muted);
font-size:.9rem; line-height:1.45;
}
.sp-structured-outputs .sp-trial b{ color:var(–sp-text); font-weight:650; }
.sp-structured-outputs .sp-hero-side{
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
background: var(–sp-soft);
padding: 1.15rem 1.15rem 1.25rem;
box-shadow: var(–sp-shadow);
}
.sp-structured-outputs .sp-hero-side h3{
margin:0 0 .65rem;
font-size:1rem; font-weight:700; letter-spacing:-0.01em;
}
.sp-structured-outputs .sp-mini-list{
margin:0; padding-left: 1.1rem;
color:var(–sp-muted); line-height:1.55; font-size:.95rem;
}
.sp-structured-outputs .sp-mini-list li{ margin:.25rem 0; }
.sp-structured-outputs .sp-pills{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem; }
.sp-structured-outputs .sp-pill{
display:inline-flex; align-items:center; gap:.45rem;
padding:.35rem .75rem; border-radius:999px;
border:1px solid var(–sp-border); background:#fff;
font-size:.82rem; color:var(–sp-muted); white-space:nowrap;
}
/* Code snippet */
.sp-structured-outputs .sp-code{
background:#0b1220; color:#e5e7eb;
border-radius:14px; padding:14px; overflow:auto;
font-size:13px; line-height:1.55;
border:1px solid rgba(255,255,255,.08);
margin-top: .9rem;
}
.sp-structured-outputs .sp-code code{ color:inherit; }
.sp-structured-outputs .sp-code__row{
display:flex; align-items:center; justify-content:space-between;
gap:10px; margin:0 0 10px 0;
}
.sp-structured-outputs .sp-code__label{
font-size:12px; letter-spacing:.02em;
text-transform:uppercase; opacity:.9; font-weight:700;
}
.sp-structured-outputs .sp-copybtn{
background:rgba(255,255,255,.08);
border:1px solid rgba(255,255,255,.14);
color:#fff; border-radius:12px;
padding:8px 10px; cursor:pointer;
font-weight:700; font-size:12px;
}
.sp-structured-outputs .sp-copybtn:hover{ background:rgba(255,255,255,.12); }
/* Sections */
.sp-structured-outputs .sp-section-alt{
background: var(–sp-soft);
border-top:1px solid var(–sp-border);
border-bottom:1px solid var(–sp-border);
}
/* Trust */
.sp-structured-outputs .sp-trust{
padding-top: clamp(1.8rem, 3vw, 2.5rem);
padding-bottom: clamp(1.8rem, 3vw, 2.5rem);
background:#fff;
border-bottom:1px solid var(–sp-border);
}
.sp-structured-outputs .sp-trust-pill{
display:inline-block;
background: var(–sp-soft);
border:1px solid var(–sp-border);
padding:.35rem .75rem;
border-radius:999px;
font-size:.85rem;
color:var(–sp-muted);
}
.sp-structured-outputs .sp-trust-pill b{ color:var(–sp-text); font-weight:700; }
.sp-structured-outputs .sp-logo-grid{
display:grid;
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 1rem;
align-items:center;
margin-top: 1.15rem;
}
@media (max-width: 1020px){
.sp-structured-outputs .sp-logo-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 560px){
.sp-structured-outputs .sp-logo-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sp-structured-outputs .sp-logo{
display:flex; align-items:center; justify-content:center;
padding:.6rem .5rem; border-radius: 12px;
border:1px solid transparent;
}
.sp-structured-outputs .sp-logo img{
max-height:42px; width:auto;
filter: grayscale(1); opacity:.78;
transition: all .18s ease;
}
.sp-structured-outputs .sp-logo:hover{
border-color: var(–sp-border);
background: var(–sp-soft);
}
.sp-structured-outputs .sp-logo:hover img{ filter:none; opacity:1; }
.sp-structured-outputs .sp-metrics{
display:grid;
grid-template-columns: repeat(4, minmax(0,1fr));
gap: 1rem;
margin-top: 1.25rem;
}
@media (max-width: 980px){
.sp-structured-outputs .sp-metrics{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
.sp-structured-outputs .sp-metric{
background:#fff;
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
padding: 1.05rem 1.1rem;
box-shadow: var(–sp-shadow);
}
.sp-structured-outputs .sp-metric b{
display:block;
font-size:1.15rem;
letter-spacing:-0.01em;
margin-bottom:.25rem;
}
.sp-structured-outputs .sp-metric span{
color:var(–sp-muted);
font-size:.9rem;
line-height:1.35;
display:block;
}
/* Cards */
.sp-structured-outputs .sp-grid{
display:grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 1.15rem;
margin-top: 1.25rem;
}
@media (max-width: 980px){
.sp-structured-outputs .sp-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px){
.sp-structured-outputs .sp-grid{ grid-template-columns: 1fr; }
}
.sp-structured-outputs .sp-card{
background:#fff;
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
padding: 1.25rem 1.25rem 1.15rem;
box-shadow: var(–sp-shadow);
display:flex;
flex-direction:column;
min-height: 190px;
}
.sp-structured-outputs .sp-ic{
width:38px; height:38px;
border-radius:12px;
border:1px solid var(–sp-border);
background: var(–sp-soft);
display:flex;
align-items:center;
justify-content:center;
margin-bottom:.9rem;
flex:0 0 auto;
}
.sp-structured-outputs .sp-ic svg{
width:20px; height:20px;
stroke: var(–sp-muted);
fill:none;
stroke-width:2;
stroke-linecap:round;
stroke-linejoin:round;
}
.sp-structured-outputs .sp-card h3{
margin:0 0 .55rem;
font-size:1.02rem;
line-height:1.25;
letter-spacing:-0.01em;
min-height:2.6em;
}
.sp-structured-outputs .sp-card p{
margin:0;
color:var(–sp-muted);
line-height:1.55;
font-size:.95rem;
min-height:4.9em;
}
.sp-structured-outputs .sp-card-foot{
margin-top:.9rem;
display:flex;
gap:.75rem;
flex-wrap:wrap;
align-items:center;
}
.sp-structured-outputs .sp-chip{
font-size:.82rem;
color:var(–sp-muted);
border:1px solid var(–sp-border);
background: var(–sp-soft);
border-radius:999px;
padding:.25rem .6rem;
}
/* Split cards */
.sp-structured-outputs .sp-split{
display:grid;
grid-template-columns: repeat(2, minmax(0,1fr));
gap: 1.15rem;
margin-top: 1.25rem;
}
@media (max-width: 920px){
.sp-structured-outputs .sp-split{ grid-template-columns: 1fr; }
}
.sp-structured-outputs .sp-split-card{
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
background:#fff;
padding: 1.2rem 1.2rem 1.1rem;
box-shadow: var(–sp-shadow);
}
.sp-structured-outputs .sp-split-card h3{
margin:0 0 .5rem;
font-size:1.08rem;
letter-spacing:-0.01em;
}
.sp-structured-outputs .sp-split-card p{
margin:0 0 .9rem;
color:var(–sp-muted);
line-height:1.55;
font-size:.95rem;
}
.sp-structured-outputs .sp-split-actions{
display:flex;
gap:.75rem;
flex-wrap:wrap;
align-items:center;
}
/* SEO */
.sp-structured-outputs .sp-seo{
background:#fff;
border-top:1px solid var(–sp-border);
border-bottom:1px solid var(–sp-border);
}
.sp-structured-outputs .sp-seo-grid{
display:grid;
grid-template-columns: 1.05fr .95fr;
gap: 1.5rem;
align-items:start;
margin-top: 1.25rem;
}
@media (max-width: 980px){
.sp-structured-outputs .sp-seo-grid{ grid-template-columns: 1fr; }
}
.sp-structured-outputs .sp-seo p{
color:var(–sp-muted);
line-height:1.7;
font-size:1rem;
margin:0 0 1rem;
max-width: 980px;
}
.sp-structured-outputs .sp-seo h3{
margin: 1.25rem 0 .55rem;
font-size: 1.05rem;
letter-spacing:-0.01em;
}
.sp-structured-outputs .sp-seo-card{
background: var(–sp-soft);
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
padding: 1.15rem 1.15rem 1.05rem;
box-shadow: var(–sp-shadow);
}
.sp-structured-outputs .sp-seo-card h3{
margin:0 0 .55rem;
font-size:1.02rem;
letter-spacing:-0.01em;
}
.sp-structured-outputs .sp-seo-card p{
margin:0 0 .85rem;
color:var(–sp-muted);
line-height:1.6;
font-size:.95rem;
}
.sp-structured-outputs .sp-seo-card ul{
margin:0;
padding-left: 1.1rem;
color:var(–sp-muted);
line-height:1.6;
font-size:.95rem;
}
.sp-structured-outputs .sp-seo-card li{ margin:.35rem 0; }
/* FAQ */
.sp-structured-outputs .sp-faq-wrap{
margin-top: 1.25rem;
background:#fff;
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
overflow:hidden;
box-shadow: var(–sp-shadow);
}
.sp-structured-outputs .sp-at-faq{ border-bottom:1px solid var(–sp-border); padding: 0 1.15rem; }
.sp-structured-outputs .sp-at-faq:last-child{ border-bottom:none; }
.sp-structured-outputs .sp-at-faq-q{
width:100%;
text-align:left;
padding: 1rem 0;
background:none;
border:none;
cursor:pointer;
font-weight:700;
display:flex;
align-items:center;
justify-content:space-between;
gap:1rem;
color:var(–sp-text);
font-size:.98rem;
}
.sp-structured-outputs .sp-at-faq-q:focus{ outline:none; box-shadow: var(–sp-focus); border-radius:10px; }
.sp-structured-outputs .sp-at-faq-ic{
width:28px; height:28px;
border-radius:999px;
border:1px solid var(–sp-border);
background: var(–sp-soft);
display:flex;
align-items:center;
justify-content:center;
font-weight:800;
color:var(–sp-muted);
flex:0 0 auto;
}
.sp-structured-outputs .sp-at-faq-a{
padding: 0 0 1rem;
color: var(–sp-muted);
line-height: 1.6;
font-size: .95rem;
}
/* Final CTA */
.sp-structured-outputs .sp-final{ background:#fff; border-top:1px solid var(–sp-border); }
.sp-structured-outputs .sp-final-grid{
display:grid;
grid-template-columns: repeat(2, minmax(0,1fr));
gap: 1.25rem;
margin-top: 1.25rem;
text-align:left;
}
@media (max-width: 920px){
.sp-structured-outputs .sp-final-grid{ grid-template-columns: 1fr; }
}
.sp-structured-outputs .sp-panel{
background: var(–sp-soft);
border:1px solid var(–sp-border);
border-radius: var(–sp-radius);
padding: 1.25rem;
box-shadow: var(–sp-shadow);
}
.sp-structured-outputs .sp-panel h3{
margin:0 0 .5rem;
font-size:1.02rem;
letter-spacing:-0.01em;
}
.sp-structured-outputs .sp-panel p{
margin:0 0 .95rem;
color:var(–sp-muted);
line-height:1.55;
font-size:.95rem;
}
.sp-structured-outputs .sp-panel-actions{
display:flex;
gap:.75rem;
flex-wrap:wrap;
align-items:center;
}

Speak AI Agents + Structured Outputs

Turn messy conversations into clean, usable fields

Define the labels you care about and Speak extracts them automatically from each call or meeting. Get consistent structured outputs like qualification score, key requirements, objections, next steps, and more.

Try Speak Free
Book Consult
See FAQs
7-day trial includes credits (personal email), and more credits (work email) of transcription and AI analysis.

Trusted by 250,000+ people and teams
Ontario
Deloitte
HubSpot

IEEE
Queen’s University
Less busywork
Stop re-watching calls for details
More consistency
Same fields across every conversation
Better analysis
Trend fields over time, at scale
Faster follow-up
Send summaries and next steps instantly

How structured outputs work

Conversations are naturally unstructured. Structured outputs let you define what matters, then extract it automatically so you can search, filter, score, and report across hundreds of calls.

Create a label and a prompt

Pick a field name like “Qualification Score” or “Primary Pain Point” and write a short prompt describing exactly what to extract.

Go to Speak
See examples

Speak extracts it from each conversation

After the call, Speak identifies the value from the transcript and returns a consistent structured output you can view and export.

Integrations
Read FAQs

Try Speak Free
Book Consult
Docs/API

Popular structured output examples

Start with common fields, then customize for your workflow. You can create as many structured outputs as you want and tailor prompts by team, use case, or folder.

Call summary

Generate a short, consistent recap for every conversation so teammates can jump in without listening to the full recording.

Support
Sales

Qualification score

Assign a simple score based on fit, urgency, and readiness. Perfect for inbound calls and lead screening at scale.

Lead gen
Routing

Primary pain point

Extract the main problem in the customer’s words. Useful for research, positioning, and improving onboarding content.

Research
Insights

Objections and blockers

Capture hesitations (price, security, timing) so sales can follow up with the right collateral and remove friction quickly.

Sales
Follow-up

Next steps

Extract commitments and actions. Turn conversations into a clean follow-up email or internal task list without manual notes.

Ops
Execution

Contact fields

Pull first name, last name, email, company, role, or region automatically so your CRM stays clean and your team moves faster.

CRM
Automation

Try Speak Free
Book Consult
Help Docs

Structured outputs: the missing layer between conversations and analytics

Calls and meetings contain the most valuable information in your business, but it is hard to use at scale. Notes are inconsistent, recordings are time-consuming to review, and every team tracks different details. Structured outputs solve this by turning unstructured conversation into a consistent set of fields you can search, filter, and analyze over time.

A structured output is a defined field extracted from a conversation. It can be a simple value like “First Name,” a score like “Qualification Score,” a list like “Key Requirements,” or a short paragraph like “Call Summary.” The key idea is consistency: you define what should be captured, and Speak produces the same kind of output for every conversation.

Why structured outputs matter

Most organizations treat conversations as isolated events. A sales call is helpful in the moment, but the insight disappears in a follow-up email. A support call resolves an issue, but the root cause never becomes a measurable trend. Research interviews contain gold, but insights remain locked in a transcript. Structured outputs make conversations comparable, so you can see what is happening across weeks, months, and teams.

Custom structured outputs for any workflow

Speak includes standard structured outputs for common use cases, but the best part is customization. You can create your own by defining a label and writing a prompt. For example: “Extract the caller’s main goal in one sentence” or “Return a 1–5 qualification score with a short reason.” This flexibility works for sales, research, HR, operations, and any workflow where conversations carry critical details.

Examples: sales calls and lead qualification

In sales, structured outputs help you capture what matters consistently. Track budget, timeline, objections, decision maker status, and next steps. Use a qualification score to route leads automatically. When your team reviews pipeline, they can see structured signals at a glance instead of guessing from incomplete notes.

Examples: research interviews and qualitative analysis

In research, structured outputs make qualitative work easier to scale. Extract themes, pain points, outcomes, and key quotes. Then analyze those fields across many interviews. This helps researchers move faster from raw conversation to findings without losing the nuance of participants’ language.

Examples: support calls and quality improvement

Support teams can structure issue type, severity, root cause, and resolution. Over time, you can identify recurring issues and prioritize product fixes. Structured outputs also help new team members ramp faster because patterns become visible without manually listening to dozens of calls.

Making structured outputs reliable

The best structured outputs are specific. Define what counts as evidence, what to do when something is unknown, and how short you want the answer. For example: “Return ‘Unknown’ if the caller does not state a timeline.” This makes outputs more consistent and easier to trust.

Structured outputs for automation

Structured outputs become even more valuable when you route them into downstream systems. For example, automatically update CRM fields, push key requirements into a project brief, or create a follow-up email draft from next steps and objections. This turns conversations into actions without manual admin work.

Structured outputs for long conversations

As calls get longer, important details are easier to miss. Structured outputs act like a “clean extraction layer” at the end of each conversation so key information is always captured, even when the call covers multiple topics.

Frequently asked questions

Common questions about structured outputs, custom fields, formatting, and how teams use them for sales, research, and support.


A structured output is a defined field extracted from a conversation, such as a value, score, list, or short summary that stays consistent across calls.

Yes. Create a label and write a prompt for what to extract. You can tailor fields to sales, research, support, HR, or any workflow.

Start with 5: call summary, key requirements, next steps, objections or blockers, and a simple qualification score (or issue severity for support).

Be explicit about format and what counts as evidence. Define what to do when something is unknown and keep outputs short and constrained.

Yes. Because fields are consistent, you can filter and analyze patterns across many calls, such as common objections, recurring issues, or top themes.

Yes. Many teams connect structured outputs to CRMs, spreadsheets, and internal dashboards so conversation insights flow into workflows automatically.
Try Speak Free
Book Consult
Help Docs

Define your fields once – then extract them automatically

Create structured outputs for your workflow, apply them across conversations, and analyze results over time. Stop losing critical details inside long calls.

Start self-serve

Create a few structured outputs, run them on recent calls, and export results to your workflow during your trial.

Try Speak Free
Login

Work with our team

We’ll help you design field sets, prompts, and automation so structured outputs reliably power reporting and routing.

Book Consult
Security & Privacy

Questions? Call +1 (647) 372-1565 or email [email protected]



AI-Powered Analysis with Speak AI

Speak AI combines transcription, NLP analytics, sentiment analysis, and AI agents into one platform. Built for researchers, teams, and enterprises working with audio, video, and text data. Supports 100+ languages.

Text Analysis Tool
Automated Transcription
AI Voice Agents
AI Consulting & Implementation
AI Meeting Assistant

Try Speak AI Free →

How to Extract Structured Data from Audio Using Speak AI

Speak AI’s structured output extraction lets you define a JSON schema and deploy an AI agent that extracts matching fields from any audio or video recording — turning unstructured voice data into clean, structured records your applications can consume directly.

What structured output extraction enables

  • Custom JSON schema — define the fields you want to extract (contact name, intent, sentiment, action items, entities) and the agent extracts them from every transcript
  • Contact and entity extraction — pull names, organizations, locations, and custom entity types from recorded conversations automatically
  • Meeting action item extraction — define an action item schema and extract tasks, owners, and deadlines from any meeting or call recording
  • Survey coding automation — define a coding schema for qualitative survey responses and apply it across the full respondent dataset
  • CRM and database integration — structured output JSON feeds directly into your CRM, data warehouse, or internal tools without manual data entry

Structured output extraction FAQ

How do I extract structured data from audio files with AI?

Define your output schema via the Speak AI API, submit audio files for transcription, and configure the structured extraction step to run on the resulting transcript. The API returns a JSON object matching your schema for each recording. Full documentation at docs.speakai.co.

What data can Speak AI extract from audio recordings as structured output?

Any information present in the spoken content: named entities, sentiment scores, action items, custom field values, topic classifications, and any other fields you define in your extraction schema. The AI reasons over the full transcript to populate your schema.

Can I use Speak AI structured outputs to feed a CRM automatically?

Yes. A common pattern: Speak AI transcribes call recordings via API, runs structured extraction (contact name, intent, follow-up required), and the JSON output is written to your CRM via webhook — eliminating manual call logging for sales and customer success teams.

Extract structured data from audio — get your API key free, no credit card required.

Get Free API Key