Quo (OpenPhone)
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
- id
- totalItems
number: Total number of contacts - nextPageToken
string(nullable): Token to fetch the next page
Example Usage:
{
"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:
{
"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:
{
"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:
{
"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:
{
"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
- id
- totalItems
number: Total number of conversations - nextPageToken
string(nullable): Token to fetch the next page
Example Usage:
{
"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:
{
"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:
{
"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:
{
"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 tofrom) - 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:
{
"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:
{
"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:
{
"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