Data Models

This page documents the data models (schemas) returned by the Sybill API. Each model lists its fields, types, and a representative JSON example.

Conventions

All response fields use camelCase. Timestamps are ISO 8601 strings in UTC. UUIDs are represented as strings. Fields marked nullable may be null or absent from the response.


Conversation (list)

Returned by GET /v1/conversations. Contains core meeting metadata without transcript or recording details.

FieldTypeDescription
conversationIdstring (UUID)Unique identifier for the conversation
titlestringMeeting title
startTimestring (ISO 8601)When the meeting started
endTimestring (ISO 8601)When the meeting ended
typestringMeeting type: INTERNAL or EXTERNAL
participantsParticipant[]List of meeting participants
crmCrmInfonullable
{
  "conversationId": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Q4 Pipeline Review",
  "startTime": "2023-11-14T22:13:20Z",
  "endTime": "2023-11-15T00:13:20Z",
  "type": "EXTERNAL",
  "participants": [
    { "name": "Jane Smith", "email": "jane@example.com", "attended": true }
  ],
  "crm": {
    "id": "006...",
    "name": "Acme Deal",
    "type": "opportunity"
  }
}

Conversation (detail)

Returned by GET /v1/conversations/{conversationId}. Extends the list model with transcript, recordings, and AI-generated summary.

FieldTypeDescription
conversationIdstring (UUID)Unique identifier for the conversation
titlestringMeeting title
startTimestring (ISO 8601)When the meeting started
endTimestring (ISO 8601)When the meeting ended
typestringMeeting type: INTERNAL or EXTERNAL
categorystringnullable
participantsParticipant[]List of meeting participants
crmCrmInfonullable
recordingsRecordingsnullable
transcriptTranscriptEntry[]Speaker-segmented transcript
summaryConversationSummarynullable
{
  "conversationId": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Q4 Pipeline Review",
  "startTime": "2023-11-14T22:13:20Z",
  "endTime": "2023-11-15T00:13:20Z",
  "type": "EXTERNAL",
  "category": "prospect_negotiation",
  "participants": [
    { "name": "Jane Smith", "email": "jane@example.com", "attended": true }
  ],
  "crm": { "id": "006...", "name": "Acme Deal", "type": "opportunity" },
  "recordings": {
    "videoUrl": "https://recordings.example.com/meeting.mp4?...",
    "audioUrl": "https://recordings.example.com/meeting.mp3?..."
  },
  "transcript": [
    {
      "speaker": "Jane Smith",
      "text": "Let's review the pipeline numbers.",
      "startTime": 0.0,
      "endTime": 4.5
    }
  ],
  "summary": {
    "Outcome": "Deal moved to negotiation stage.",
    "Key Takeaways": [
      { "topic": "Pricing", "key_takeaway": "Customer requested a 15% volume discount." }
    ],
    "Pain Points": ["Integration complexity", "Timeline concerns"],
    "FAQ": [
      { "question": "What's the pricing?", "answer": "Starting at $10k/year" }
    ],
    "MEDDIC Score": 85
  }
}

Deal (list)

Returned by GET /v1/deals. Contains core deal metadata without summary or contact details.

FieldTypeDescription
dealIdstringCRM remote identifier
namestringDeal name
accountNamestringnullable
stagestringCurrent pipeline stage
pipelinestringPipeline name
amountnumbernullable
closeDatestring (ISO 8601)nullable
closedbooleanWhether the deal is closed (won or lost)
createdDatestring (ISO 8601)When the deal was created in the CRM
lastActivityDatestring (ISO 8601)nullable
ownerOwnernullable
{
  "dealId": "006ABC000000123456",
  "name": "Acme Enterprise Deal",
  "accountName": "Acme Corp",
  "stage": "Negotiation",
  "pipeline": "Sales Pipeline",
  "amount": 50000.0,
  "closeDate": "2024-03-15T00:00:00Z",
  "closed": false,
  "createdDate": "2023-09-01T10:30:00Z",
  "lastActivityDate": "2024-01-10T15:30:00Z",
  "owner": { "name": "Jane Doe", "email": "jane@example.com" }
}

Deal (detail)

Returned by GET /v1/deals/{dealId}. Extends the list model with AI-generated summary, CRM autofill suggestions, and contacts.

FieldTypeDescription
(all fields from Deal list)
summaryobjectnullable
crmAutofillobjectnullable
contactsContact[]People associated with the deal
{
  "dealId": "006ABC000000123456",
  "name": "Acme Enterprise Deal",
  "accountName": "Acme Corp",
  "stage": "Negotiation",
  "pipeline": "Sales Pipeline",
  "amount": 50000.0,
  "closeDate": "2024-03-15T00:00:00Z",
  "closed": false,
  "createdDate": "2023-09-01T10:30:00Z",
  "lastActivityDate": "2024-01-10T15:30:00Z",
  "owner": { "name": "Jane Doe", "email": "jane@example.com" },
  "summary": {
    "Current Status": "Deal is progressing well through negotiation.",
    "Pain Points": ["Budget constraints", "Timeline pressure"],
    "Value Proposition": "Cost savings and efficiency gains"
  },
  "crmAutofill": {
    "Next Steps": "Schedule follow-up call with legal team",
    "Close Date": "2024-03-15"
  },
  "contacts": [
    {
      "name": "John Smith",
      "email": "john@acme.com",
      "title": "VP Sales",
      "phone": "+1234567890"
    }
  ]
}

Account (list)

Returned by GET /v1/accounts. Contains core account metadata without contacts or synced CRM fields.

FieldTypeDescription
accountIdstringCRM remote identifier
namestringnullable
websitestringnullable
ownerOwnernullable
createdDatestring (ISO 8601)nullable
lastActivityDatestring (ISO 8601)nullable
latestDealLatestDealnullable
{
  "accountId": "001ABC000000123456",
  "name": "Acme Corp",
  "website": "https://acme.com",
  "owner": { "name": "Jane Doe", "email": "jane@example.com" },
  "createdDate": "2023-09-01T10:30:00Z",
  "lastActivityDate": "2024-01-10T15:30:00Z",
  "latestDeal": {
    "dealId": "006ABC000000789012",
    "name": "Acme Enterprise Deal",
    "stage": "Negotiation",
    "amount": 50000.0,
    "closeDate": "2024-03-15T00:00:00Z"
  }
}

Account (detail)

Returned by GET /v1/accounts/{accountId}. Extends the list model with contacts and synced CRM fields.

FieldTypeDescription
(all fields from Account list)
contactsContact[]People associated with the account
syncedCrmFieldsobjectnullable
{
  "accountId": "001ABC000000123456",
  "name": "Acme Corp",
  "website": "https://acme.com",
  "owner": { "name": "Jane Doe", "email": "jane@example.com" },
  "createdDate": "2023-09-01T10:30:00Z",
  "lastActivityDate": "2024-01-10T15:30:00Z",
  "latestDeal": {
    "dealId": "006ABC000000789012",
    "name": "Acme Enterprise Deal",
    "stage": "Negotiation",
    "amount": 50000.0,
    "closeDate": "2024-03-15T00:00:00Z"
  },
  "contacts": [
    {
      "name": "John Smith",
      "email": "john@acme.com",
      "title": "VP Sales",
      "phone": "+1234567890"
    }
  ],
  "syncedCrmFields": {
    "Industry": "Technology",
    "Phone": "+1-555-0100",
    "Annual Revenue": "$10M",
    "Number of Employees": "500"
  }
}

Shared models

The models below are embedded within the top-level entities documented above.

Participant

A person associated with a conversation (invitee or attendee).

FieldTypeDescription
namestringDisplay name
emailstringEmail address
attendedbooleanWhether the person actually attended the meeting

Owner

The owner of a CRM deal.

FieldTypeDescription
namestringDisplay name
emailstringEmail address

CrmInfo

CRM deal or opportunity linked to a conversation.

FieldTypeDescription
idstringCRM remote identifier
namestringDeal/opportunity name
typestringCRM object type (e.g. opportunity)

Recordings

Signed URLs for meeting recordings. URLs expire after a short period.

FieldTypeDescription
videoUrlstringnullable
audioUrlstringnullable

TranscriptEntry

A single segment of a meeting transcript.

FieldTypeDescription
speakerstringName of the speaker
textstringWhat was said
startTimenumberOffset in seconds from meeting start
endTimenumberOffset in seconds from meeting start

ConversationSummary

AI-generated meeting summary. Keys vary by meeting type and content.

FieldTypeDescription
Outcomestringnullable
Key Takeawaysobject[]nullable
Pain Pointsstring[]nullable
FAQobject[]nullable
MEDDIC Scorenumbernullable

Contact

A person associated with a CRM deal.

FieldTypeDescription
namestringFull name
emailstringnullable
titlestringnullable
phonestringnullable

LatestDeal

The most recent deal associated with an account. Selection logic: latest open deal by creation date; if no open deals, latest closed deal by creation date.

FieldTypeDescription
dealIdstringCRM remote identifier of the deal
namestringnullable
stagestringnullable
amountnumbernullable
closeDatestring (ISO 8601)nullable

Pagination

Pagination metadata returned alongside all list responses.

FieldTypeDescription
nextCursorstringnullable
hasMorebooleantrue if additional pages exist

See Pagination for usage details.