Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

Quick StartWhat is Saasco?

Analytics

CRM

Email Marketing

Knowledge

Support

getList ConversationsgetList Contact ConversationspatchUpdate Conversation State

Projects

Conversations

List Contact Conversations

Lists every Support conversation for one CRM contact, including closed and spam threads. Each row is the same listing shape as List Conversations: a preview line, not the transcript.

GET
/projects/{projectId}/support/contacts/{contactId}/conversations

Authorization

Authorization
AuthorizationBearer <token>

In: header

Path Parameters

projectIdrequiredstring

ID of the project that owns the contact.

contactIdrequiredstring

ID of the CRM contact whose conversations to list.

Query Parameters

limitinteger

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.saasco.com/api/v2/projects/string/support/contacts/string/conversations"
[
  {
    "id": "string",
    "createdAt": "string",
    "updatedAt": "string",
    "projectId": "string",
    "contactId": "string",
    "anonymousEmail": "string",
    "state": "open",
    "subject": "string",
    "source": "email",
    "snoozedUntil": "string",
    "ownerChangedAt": "string",
    "assignedToUserId": "string",
    "assignee": {
      "email": "string",
      "id": "string",
      "image": "string",
      "name": "string"
    },
    "contact": {
      "id": "string",
      "createdAt": "string",
      "updatedAt": "string",
      "projectId": "string",
      "distinctId": "string",
      "email": "string",
      "toDelete": true,
      "properties": {
        "age": 0,
        "avatar": "http://example.com",
        "birthday": "string",
        "createdAt": "string",
        "description": "string",
        "displayName": "string",
        "email": "user@example.com",
        "firstName": "string",
        "gender": "string",
        "id": "string",
        "lastName": "string",
        "name": "string",
        "phone": "string",
        "title": "string",
        "username": "string",
        "website": "string",
        "$id": "string",
        "$lastSeen": "string",
        "$lastIdentifiedAt": "string",
        "$processedAt": "string",
        "$unsubscribed": true,
        "$subscribed": true,
        "$unsubscribeReason": "manual",
        "$unsubscribeSource": "string",
        "$emailValidated": true,
        "$lastEmailValidatedAt": "string",
        "$emailValidationResult": "string",
        "$emailScore": 0,
        "$stripeCustomerId": "string",
        "$os": "string",
        "$browser": "string",
        "$browserVersion": "string",
        "$screenHeight": 0,
        "$screenWidth": 0,
        "$screenDpi": 0,
        "$device": "string",
        "$userAgent": "string",
        "$ip": "string",
        "$timezone": "string",
        "$city": "string",
        "$country": "string",
        "$countryCode": "string",
        "$continent": "string",
        "$region": "string",
        "$locale": "string",
        "$latitude": 0,
        "$longitude": 0,
        "$referrer": "string",
        "$referringDomain": "string",
        "$initialReferrer": "string",
        "$initialReferringDomain": "string",
        "$utmSource": "string",
        "$utmMedium": "string",
        "$utmCampaign": "string",
        "$utmTerm": "string",
        "$utmContent": "string",
        "$initialUtmSource": "string",
        "$initialUtmMedium": "string",
        "$initialUtmCampaign": "string",
        "$initialUtmTerm": "string",
        "$initialUtmContent": "string",
        "$_toDelete": true,
        "$_emailScoreActions": "string",
        "property1": "string",
        "property2": "string"
      }
    },
    "owner": "agent",
    "lastMessage": {
      "authorRole": "user",
      "createdAt": "string",
      "id": "string",
      "preview": "string"
    },
    "unseenCustomerMessageCount": 9007199254740991
  }
]
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}

List Conversations

Lists Support inbox conversations (chat and email) with a preview line and unread count, not the transcript. Filter by state; omitted `state` returns open conversations. `spam` is its own view: `open` excludes it and `all` includes it so nothing is unreachable.

Update Conversation State

Sets a conversation to open, closed, or spam. Snooze is not settable here. Manual spam goes through the same writer as the inbox so the audit line and `updatedAt` stay consistent. API-key calls leave the audit unnamed.