# Quo (OpenPhone)

> Manage contacts, conversations, and send text messages via the Quo (OpenPhone) phone communication platform.

Source: https://cotera.co/docs/reference/tools/individual-tools/quo

---

**Authentication Type:** API Key\
**Description:** Manage contacts, conversations, and send text messages via the Quo (OpenPhone) phone communication platform. Also known as OpenPhone.

***

## Authentication

To authenticate, you'll need a Quo API key. Your API key is passed directly in the `Authorization` header. Obtain your API key from the Quo dashboard under API settings.

***

## Contacts

Manage your Quo contact book — create, retrieve, update, and delete contact records.

### List Contacts

Retrieve a paginated list of contacts from your Quo account.

**Operation Type:** Query (Read)

**Parameters:**

* **pageToken** `string` (optional): Pagination token from a previous response to fetch the next page

**Returns:**

* **data** `array`: List of contact objects, each containing:
  * **id** `string`: Contact ID
  * **externalId** `string` (nullable): External system ID
  * **source** `string` (nullable): Source system
  * **sourceUrl** `string` (nullable): Source URL
  * **defaultFields** `object`: Contact fields including firstName, lastName, company, emails, phoneNumbers, role
  * **createdAt** `string` (nullable): Creation timestamp
  * **updatedAt** `string` (nullable): Last update timestamp
  * **createdByUserId** `string` (nullable): ID of the creating user
* **totalItems** `number`: Total number of contacts
* **nextPageToken** `string` (nullable): Token to fetch the next page

**Example Usage:**

```json
{
  "pageToken": null
}
```

***

### Create Contact

Create a new contact in your Quo account.

**Operation Type:** Mutation (Write)

**Parameters:**

* **firstName** `string` (optional): Contact's first name
* **lastName** `string` (optional): Contact's last name
* **company** `string` (optional): Contact's company name
* **emails** `array of strings` (optional): Contact's email addresses
* **phoneNumbers** `array of strings` (optional): Contact's phone numbers in E.164 format
* **role** `string` (optional): Contact's role or job title
* **externalId** `string` (optional): External system ID for the contact
* **source** `string` (optional): Source system that created the contact
* **sourceUrl** `string` (optional): URL of the source record
* **createdByUserId** `string` (optional): ID of the Quo user creating the contact

**Returns:** The created Contact object (same fields as List Contacts items)

**Example Usage:**

```json
{
  "firstName": "Jane",
  "lastName": "Smith",
  "company": "Acme Corp",
  "emails": ["jane.smith@acme.com"],
  "phoneNumbers": ["+14155550100"],
  "role": "VP of Sales"
}
```

***

### Get Contact

Retrieve a single contact by their ID.

**Operation Type:** Query (Read)

**Parameters:**

* **id** `string` (required): The contact ID to retrieve

**Returns:** A single Contact object

**Example Usage:**

```json
{
  "id": "contact_abc123"
}
```

***

### Update Contact

Update an existing contact. Only provide the fields you want to change.

**Operation Type:** Mutation (Write)

**Parameters:**

* **id** `string` (required): The contact ID to update
* **firstName** `string` (optional): Updated first name
* **lastName** `string` (optional): Updated last name
* **company** `string` (optional): Updated company name
* **emails** `array of strings` (optional): Updated email addresses
* **phoneNumbers** `array of strings` (optional): Updated phone numbers
* **role** `string` (optional): Updated role or job title
* **externalId** `string` (optional): Updated external system ID
* **source** `string` (optional): Updated source system
* **sourceUrl** `string` (optional): Updated source URL

**Returns:** The updated Contact object

**Example Usage:**

```json
{
  "id": "contact_abc123",
  "company": "Acme Holdings",
  "role": "Director of Sales"
}
```

***

### Delete Contact

Delete a contact from your Quo account.

**Operation Type:** Mutation (Write)

**Parameters:**

* **id** `string` (required): The contact ID to delete

**Returns:**

* **success** `boolean`: Whether the contact was successfully deleted

**Example Usage:**

```json
{
  "id": "contact_abc123"
}
```

***

## Conversations

Manage conversation status in your Quo inbox.

### List Conversations

Retrieve a paginated list of conversations.

**Operation Type:** Query (Read)

**Parameters:**

* **pageToken** `string` (optional): Pagination token from a previous response

**Returns:**

* **data** `array`: List of conversation objects, each containing:
  * **id** `string`: Conversation ID
  * **assignedTo** `string` (nullable): User ID the conversation is assigned to
  * **phoneNumberId** `string` (nullable): Phone number ID associated with the conversation
  * **participants** `array of strings`: Participant identifiers
  * **createdAt** `string` (nullable): Creation timestamp
  * **updatedAt** `string` (nullable): Last update timestamp
* **totalItems** `number`: Total number of conversations
* **nextPageToken** `string` (nullable): Token to fetch the next page

**Example Usage:**

```json
{
  "pageToken": null
}
```

***

### Mark Conversation Open

Mark a conversation as open in your inbox.

**Operation Type:** Mutation (Write)

**Parameters:**

* **conversationId** `string` (required): The conversation ID to mark as open

**Returns:**

* **success** `boolean`: Whether the operation succeeded

**Example Usage:**

```json
{
  "conversationId": "conv_xyz789"
}
```

***

### Mark Conversation Read

Mark a conversation as read.

**Operation Type:** Mutation (Write)

**Parameters:**

* **conversationId** `string` (required): The conversation ID to mark as read

**Returns:**

* **success** `boolean`: Whether the operation succeeded

**Example Usage:**

```json
{
  "conversationId": "conv_xyz789"
}
```

***

### Mark Conversation Done

Mark a conversation as done (archived/closed).

**Operation Type:** Mutation (Write)

**Parameters:**

* **conversationId** `string` (required): The conversation ID to mark as done

**Returns:**

* **success** `boolean`: Whether the operation succeeded

**Example Usage:**

```json
{
  "conversationId": "conv_xyz789"
}
```

***

## Messages

Send and retrieve SMS/text messages through Quo.

### Send Message

Send a text message to one or more recipients.

**Operation Type:** Mutation (Write)

**Parameters:**

* **content** `string` (required): The text content of the message to send
* **from** `string` (required): The phone number to send from in E.164 format (e.g. +14155550100)
* **to** `array of strings` (required): List of recipient phone numbers in E.164 format
* **phoneNumberId** `string` (optional): The Quo phone number ID (alternative to `from`)
* **userId** `string` (optional): The Quo user ID to send the message as
* **setInboxStatus** `string` (optional): Set the inbox status after sending (e.g., "done", "open")

**Returns:**

* **id** `string`: Message ID
* **to** `array of strings`: Recipient phone numbers
* **from** `string` (nullable): Sender phone number
* **text** `string` (nullable): Message text content
* **phoneNumberId** `string` (nullable): Phone number ID used to send
* **conversationId** `string` (nullable): Conversation ID the message belongs to
* **direction** `string` (nullable): Message direction
* **userId** `string` (nullable): User ID who sent the message
* **status** `string` (nullable): Message delivery status
* **createdAt** `string` (nullable): Creation timestamp
* **updatedAt** `string` (nullable): Last update timestamp

**Example Usage:**

```json
{
  "content": "Hi! Following up on your inquiry about our services.",
  "from": "+14155550100",
  "to": ["+12125550200"]
}
```

***

### List Messages

Retrieve a paginated list of messages.

**Operation Type:** Query (Read)

**Parameters:**

* **pageToken** `string` (optional): Pagination token from a previous response

**Returns:**

* **data** `array`: List of message objects (same fields as Send Message returns)
* **totalItems** `number`: Total number of messages
* **nextPageToken** `string` (nullable): Token to fetch the next page

**Example Usage:**

```json
{
  "pageToken": null
}
```

***

### Get Message

Retrieve a single message by its ID.

**Operation Type:** Query (Read)

**Parameters:**

* **id** `string` (required): The message ID to retrieve

**Returns:** A single Message object (same fields as Send Message returns)

**Example Usage:**

```json
{
  "id": "msg_def456"
}
```

***

## Common Use Cases

**Customer Communication:**

* Send personalized text messages to leads and customers
* Track conversation history with contacts
* Organize conversations by status (open, read, done)

**Contact Management:**

* Sync contacts from external CRMs into Quo
* Enrich contact records with company and role information
* Look up contact details before reaching out

**Workflow Automation:**

* Automatically send follow-up messages based on CRM events
* Mark conversations as done after completing outreach sequences
* List recent messages to monitor response rates

