Go to Rilla

ConversationsExport

One processed conversation, including linked CRM data, customer, coaching results and temporary download URLs. Also returned directly by GET /export/conversations/{conversationId}.

29 fieldsapplication/jsonDownload JSON Schema ↓

Fields

Required means the key is present; nullable means its value may be null. These are different. Examples are synthetic, complete for the documented fields, and not real customer data.

conversationIdstringrequired

ID of the conversation.

Example "11111111-1111-4111-8111-111111111111"
recordingIdstringrequired

ID of the underlying recording.

Example "22222222-2222-4222-8222-222222222222"
datestringrequired

Recording start timestamp in ISO 8601 UTC. List selection uses inclusive date bounds.

Example "2026-09-01T14:00:00Z"
processedDatestringrequired

Date/time the conversation finished processing (ISO 8601).

Example "2026-09-01T15:12:00Z"
titlestring | nullrequirednullable

Title of the conversation / appointment.

Example "Home estimate - Jordan Lee"
durationnumberrequired

Processed conversation duration in seconds.

Example 3240
crmEventIDstring | nullrequirednullable

ID of the associated CRM / calendar event.

Example "evt-90817"

The rep who recorded the conversation: { id, name, email }.

transcriptUrlstringrequired

Temporary presigned S3 URL for the conversation's transcript. Expires 6 hours after the response is issued — download or persist the file rather than storing the URL. Temporary signing credentials may cause earlier expiry.

Example "https://example.com/temporary-transcript.json?signature=EXAMPLE"
jobNumberstring | nullrequirednullable

Job number from the CRM / calendar event.

Example "JOB-4471"
totalSoldnumber | nullrequirednullable

Price on the linked appointment in its source currency, or null. This field alone does not establish a sold outcome; no currency code is returned.

Example 12500
outcomestring | nullrequirednullable

Outcome of the appointment.

Example "Sold"
jobSummarystring | nullrequirednullable

AI-generated summary of the job.

Example "Rep walked the customer through the premium package and scheduled install."
customSummarystring | nullrequirednullable

Admin summary / custom insights in your organization's format.

Example "Customer expressed interest in premium package..."
repSpeedWPMnumber | nullrequirednullable

Rep speaking speed, in words per minute.

Example 148
repTalkRationumber | nullrequirednullable

Fraction of time the rep was talking (0–1).

Example 0.54
longestRepMonologuenumber | nullrequirednullable

Longest uninterrupted rep monologue, in seconds.

Example 120
longestCustomerMonologuenumber | nullrequirednullable

Longest uninterrupted customer monologue, in seconds.

Example 64
totalCommentsnumberrequired

All-time comments on this conversation, not bounded by the request window.

Example 3
rillaUrlstringrequired

Link to view the conversation in the Rilla web app.

Example "https://app.rilla.com/conversations/single?id=11111111-1111-4111-8111-111111111111"
audioUrlstringrequired

Temporary presigned S3 URL for the conversation's audio recording. Expires 6 hours after the response is issued — download or persist the file rather than storing the URL. Temporary signing credentials may cause earlier expiry.

Example "https://example.com/temporary-audio.mp3?signature=EXAMPLE"

Users who viewed the conversation. See Viewer.

Coaching checklists scored for the conversation. Each checklist contains its trackers. See Checklist.

Trackers outside the checklist, from the latest completed evaluations. Not a flattened copy of checklists.trackerData.

customFieldsobject | nullrequirednullable

Custom fields from the calendar event. Keys and values are customer-defined. null if none are set.

Example {"leadSource":"Website"}

Linked customer contact and structured address; null when no customer fields exist.

Survey results. Each result includes a survey ID, name and customer-defined data; the upstream service may include additional metadata.

All comments and replies left on the conversation, ordered by createdAt then commentId, not bounded by the request window. Private comments are left out, so it can be shorter than totalComments. See Comment.

Complete example

ConversationsExport · complete example
{
  "conversationId": "11111111-1111-4111-8111-111111111111",
  "recordingId": "22222222-2222-4222-8222-222222222222",
  "date": "2026-09-01T14:00:00Z",
  "processedDate": "2026-09-01T15:12:00Z",
  "title": "Home estimate - Jordan Lee",
  "duration": 3240,
  "crmEventID": "evt-90817",
  "user": {
    "id": "33333333-3333-4333-8333-333333333333",
    "name": "Alex Morgan",
    "email": "alex@example.com"
  },
  "transcriptUrl": "https://example.com/temporary-transcript.json?signature=EXAMPLE",
  "jobNumber": "JOB-4471",
  "stLink": "https://go.servicetitan.com/jobs/4471",
  "totalSold": 12500,
  "outcome": "Sold",
  "jobSummary": "Rep walked the customer through the premium package and scheduled install.",
  "customSummary": "Customer expressed interest in premium package...",
  "repSpeedWPM": 148,
  "repTalkRatio": 0.54,
  "longestRepMonologue": 120,
  "longestCustomerMonologue": 64,
  "totalComments": 3,
  "rillaUrl": "https://app.rilla.com/conversations/single?id=11111111-1111-4111-8111-111111111111",
  "audioUrl": "https://example.com/temporary-audio.mp3?signature=EXAMPLE",
  "viewers": [
    {
      "userId": "user-014",
      "name": "Manager Mike",
      "viewCount": 1,
      "totalViewTimeMs": 270000,
      "views": [
        {
          "viewId": "66666666-6666-4666-8666-666666666666",
          "viewedAt": "2026-09-02T14:30:00.000Z",
          "durationMs": 270000
        }
      ]
    }
  ],
  "checklists": [
    {
      "name": "Discovery",
      "checklistName": "Discovery",
      "score": 1,
      "checklistScore": 1,
      "denominator": 1,
      "checklistDenominator": 1,
      "trackerData": [
        {
          "trackerId": "1042",
          "name": "Asked about budget",
          "trackerName": "Asked about budget",
          "isHit": true,
          "trackerIsHit": true,
          "aiScore": 0.92,
          "trackerAiScore": 0.92
        }
      ]
    }
  ],
  "aiTrackers": [
    {
      "checklistName": "Discovery",
      "trackerId": "1043",
      "trackerName": "Mentioned financing",
      "isHit": true,
      "aiScore": 0.92
    }
  ],
  "customFields": {
    "leadSource": "Website"
  },
  "customer": {
    "name": "Jordan Lee",
    "email": "jordan@example.com",
    "phone": "+1-202-555-0142",
    "address": {
      "street": "123 Example Street",
      "unit": null,
      "city": "New York",
      "state": "NY",
      "zip": "10001",
      "country": "US"
    }
  },
  "surveyResults": [
    {
      "surveyId": "55555555-5555-4555-8555-555555555555",
      "surveyName": "Discovery quality",
      "data": {
        "next_step_confirmed": true
      }
    }
  ],
  "comments": [
    {
      "commentId": "77777777-7777-4777-8777-777777777777",
      "parentId": null,
      "userId": "user-014",
      "userName": "Manager Mike",
      "content": "@Rep Rachel great discovery questions here",
      "createdAt": "2026-09-02T14:30:00.000Z",
      "attachment": {
        "type": "AUDIO",
        "mimeType": "audio/mp4",
        "transcript": "Slow down when you get to price.",
        "downloadUrl": "https://example.com/temporary-comment.m4a?signature=EXAMPLE"
      },
      "startTime": 12.5,
      "endTime": 20.25
    }
  ]
}

All response types →

On this page