Skip to main content
When you submit a recording to Shilo, the AI pipeline processes it asynchronously and populates an analysis object with structured coaching data. The same analysis schema is returned for calls, appointments, and roleplays, so the concepts here apply across all three resource types. Understanding how to read and interpret the analysis object is the foundation of any Shilo integration.

Analysis Endpoints

Each recording type exposes a dedicated analysis endpoint:

The progress Field

The progress field is an integer from 0 to 100 that indicates how far along the AI processing pipeline the recording has advanced. Poll the analysis endpoint and check progress before reading any other field:
  • progress < 100 — Processing is still in progress. Analysis sub-objects may be null or absent. Do not use partial results.
  • progress == 100 — Processing is complete. Individual analysis sub-objects (action_items, coaching, disposition, objections, rating, speakers, and summary) are optional and may still be null or omitted, so clients must check for presence before reading each field.
Store the completed analysis object in your own database after progress reaches 100. This avoids repeated polling on already-processed recordings and reduces unnecessary API calls.

Analysis Sub-Objects

rating

The AI’s overall assessment of the call’s quality or outcome. Example:

summary

A concise natural-language narrative of what happened on the call. Example (object form):
Example (string form):

coaching

Structured coaching feedback broken into two complementary lists. Example:

disposition

The AI’s classification of how the call ended or what outcome it represents. Example:

objections

Objections that the prospect raised during the conversation. Example:

action_items

Follow-up tasks identified from the call, split into two priority tiers. Example:

speakers

AI-resolved speaker identities reconciled with your user and contact data. Example:

Complete Analysis Response Example

The following payload shows what a fully populated response can look like. It is an illustrative example, not a guaranteed shape: any of action_items, coaching, disposition, objections, rating, speakers, and summary may be null or omitted, and summary.outcome may be an object or a string.

Transcripts

In addition to the structured analysis object, you can retrieve the full call transcript with AI-resolved speaker names: A 409 Conflict response means the transcript is not yet ready—speaker resolution must complete before the transcript is available. Poll and retry after a short wait.
For Shilo accounts connected to Follow Up Boss, only the call and appointment transcript endpoints (GET /api/v1/calls/{identifier}/transcript and GET /api/v1/appointments/{identifier}/transcript) are unsupported and return 403 Forbidden. The roleplay transcript endpoint, GET /api/v1/roleplays/{identifier}/transcript, remains supported for all integrations, including Follow Up Boss.