Interfaces

BaseInterface#

No description

interface BaseInterface {
}

Channel#

A channel is a source of incoming conversations. It dictates how messages in those conversations are sent and received.

For example, an EmailChannel is a channel where messages are sent as email. To fetch all of them:

query Channels {
channels {
nodes {
... on Channel {
__typename
id
name
conversationCount
}
}
}
}

By default channels are sorted by their user-defined row-order, called their position. To sort by name instead:

query Channels {
channels(orderBy: { field: NAME, direction: ASC }) {
nodes {
... on EmailChannel {
id
}
}
}
}

To find which agents have permission to view this channel:

query Channels {
channels {
nodes {
id
name
permittedAgents {
totalCount
nodes {
id
}
}
}
}
}

Only find channels where the user is granted access to view it:

query Channels {
channels(filter: { scope: CURRENT_USER }) {
nodes {
id
name
permittedAgents {
totalCount
nodes {
id
}
}
}
}
}

Find all channels the user is allowed to view. Admin users can always view all channels:

query Channels {
channels(filter: { scope: ALL }) {
nodes {
id
name
permittedAgents {
totalCount
nodes {
id
}
}
}
}
}
interface Channel {
color: String!
conversationCount(state: [ConversationState!] = []): Int!
createdAt: DateTime!
customFields(
after: String
before: String
first: Int = 0
last: Int = 0
): CustomFieldConnection!
errors: [ChannelErrorTypeUnion!]!
folders(
after: String
before: String
first: Int = 0
last: Int = 0
filter: FolderFilter = "[object Object]"
orderBy: FolderOrder = "[object Object]"
): FolderConnection
id: ID!
name: String!
permittedAgents(
after: String
before: String
first: Int = 0
last: Int = 0
agentIds: [ID!] = []
): AgentConnection!
pinnedSearches(
after: String
before: String
first: Int = 0
last: Int = 0
filter: PinnedSearchFilter
orderBy: PinnedSearchOrder = "[object Object]"
): PinnedSearchConnection
restriction: Restriction!
senderName: String
state: ChannelState!
tags(
after: String
before: String
first: Int = 0
last: Int = 0
filter: TagFilter
orderBy: TagOrder
): TagConnection
type: ChannelType!
updatedAt: DateTime!
}

Fields#

NameDescription
color (String!) The color of the channel.
conversationCount (Int!) The count of conversations in the channel.
Arguments
state ([ConversationState!])
Filter by state.
createdAt (DateTime!) The date and time that the object was created.
customFields (CustomFieldConnection!) The custom fields belonging to the custom field category.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
errors ([ChannelErrorTypeUnion!]!) Represents errors that occurred during channel integration setup.
folders (FolderConnection) Lists all folders that are accessible to the authenticated agent. Each folder can be associated with one or more mailboxes.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (FolderFilter)
The fields by which to filter the results.
orderBy (FolderOrder)
The field and direction by which to order the results.
id (ID!) The name of the channel.
permittedAgents (AgentConnection!) The agents permitted to access this channel.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
agentIds ([ID!])
Agents that needs to be included.
pinnedSearches (PinnedSearchConnection) Returns the elements in the list that come after the specified cursor.
Arguments
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (PinnedSearchFilter)
The fields by which to filter the results.
orderBy (PinnedSearchOrder)
The field and direction by which to order the results.
restriction (Restriction!) The agents or teams that are allowed to access this channel.
senderName (String) Customers see this name in the From field when they view conversations sent from this channel.
state (ChannelState!) The state of the channel.
tags (TagConnection) Lists all tags.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (TagFilter)
The fields by which to filter the results.
orderBy (TagOrder)
The field and direction by which to order the results.
type (ChannelType!) The communication type of the channel.
updatedAt (DateTime!) The date and time that the object was last updated.

CompaniesField#

A list of companies filtered by input.

interface CompaniesField {
companies(
after: String
before: String
first: Int = 0
last: Int = 0
filter: CompanyFilter
orderBy: CompanyOrder = "[object Object]"
): CompanyConnection
}

Fields#

NameDescription
companies (CompanyConnection) Lists all companies.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (CompanyFilter)
The fields by which to filter the results.
orderBy (CompanyOrder)
The field and direction by which to order the results.

ContactsField#

A list of contacts filtered by input.

interface ContactsField {
contacts(
after: String
before: String
first: Int = 0
last: Int = 0
filter: ContactFilter = "[object Object]"
orderBy: ContactOrder = "[object Object]"
): ContactConnection
}

Fields#

NameDescription
contacts (ContactConnection) Lists all contacts.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (ContactFilter)
The fields by which to filter the results.
orderBy (ContactOrder)
The field and direction by which to order the results.

Conversation#

A Groove conversation is a thread of messages (for example emails, chats, or notes) and associated actions or events (for example 'opened', 'snoozed', and 'assigned').

To fetch Messages/Ratings/StateChanges/etc. on a conversation, query the Events connection (on the QueryRoot) with the conversation ID.

To fetch all possible fields:

query Conversation {
node(id: "cnv_12345678") {
__typename
... on Conversation {
assigned {
at
agent {
id
name
}
team {
id
name
}
}
counts {
attachments
interactions
messages
notes
stateChanges
}
createdAt
contact {
id
email
}
deletedAt
drafts {
nodes {
id
}
}
followers {
nodes {
id
email
}
}
id
number
snoozed {
by {
id
}
until
}
starred
state
stateUpdatedAt
summaryMessage {
id
bodyPlainText
}
subject
systemUpdatedAt
tags {
nodes {
id
name
}
}
updatedAt
... on FacebookConversation {
facebookId
}
... on TwitterConversation {
twitterId
}
... on WidgetConversation {
browser
referrer
pageTitle
pageUrl
platform
referrer
}
}
}
}

To search conversations matching a specific keyword:

query Conversations {
conversations(filter: { keywords: "rad" }) {
edges {
node {
... on Conversation {
id
number
searchSummary {
author {
__typename
... on Agent {
email
role
}
... on Contact {
email
}
}
body
forwarded
note
}
}
}
}
}
}
interface Conversation {
assigned: Assignment
channel: Channel!
contact: Contact
counts: ConversationCounts!
createdAt: DateTime!
customFieldValues(
after: String
before: String
first: Int = 0
last: Int = 0
filter: CustomFieldValuesFilter = "[object Object]"
): CustomFieldValueConnection
deletedAt: DateTime
drafts(
after: String
before: String
first: Int = 0
last: Int = 0
): DraftConnection
followers(
after: String
before: String
first: Int = 0
last: Int = 0
filter: AgentFilter = "[object Object]"
orderBy: AgentOrder = "[object Object]"
): AgentConnection
id: ID!
lastUnansweredUserMessageAt: DateTime!
number: Int!
searchSummary: SearchSummary
snoozed: Snooze
starred: Boolean!
state: ConversationState!
stateUpdatedAt: DateTime
subject: String
summaryMessage: SummaryMessage
systemUpdatedAt: DateTime!
tags(
after: String
before: String
first: Int = 0
last: Int = 0
filter: TagFilter
orderBy: TagOrder
): TagConnection
updatedAt: DateTime!
}

Fields#

NameDescription
assigned (Assignment) The agents and/or teams that are assigned to the conversation.
channel (Channel!) The channel in which the conversation is happening.
contact (Contact) The primary contact associated with the conversation.
counts (ConversationCounts!) The statistics about the messages and interactions in the conversation.
createdAt (DateTime!) The date and time that the object was created.
customFieldValues (CustomFieldValueConnection) Lists all custom fields.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (CustomFieldValuesFilter)
Filter custom field values.
deletedAt (DateTime) The date and time that the conversation was trashed.
drafts (DraftConnection) The current user's draft messages on the conversation.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
followers (AgentConnection) Lists all agents that are following the conversation.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (AgentFilter)
The fields by which to filter the results.
orderBy (AgentOrder)
The field and direction by which to order the results.
id (ID!) The date and time of the last unanswered user message.
number (Int!) The ID of the conversation within the account.
searchSummary (SearchSummary) The comment that matched the given search keywords.
snoozed (Snooze) The agent that snoozed the conversation and when it is snoozed until.
starred (Boolean!) True if the conversation is starred; false otherwise.
state (ConversationState!) The state of the conversation.
stateUpdatedAt (DateTime) The date and time that the conversation state was last updated.
subject (String) The subject of the conversation.
summaryMessage (SummaryMessage) The conversation summary, which is usually the first MessageChange in the conversation.
systemUpdatedAt (DateTime!) The date and time that the conversation was last updated.
tags (TagConnection) Lists all tags.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (TagFilter)
The fields by which to filter the results.
orderBy (TagOrder)
The field and direction by which to order the results.
updatedAt (DateTime!) The date and time that the object was last updated.

CustomFieldValuesField#

A list of custom fields filtered by input.

interface CustomFieldValuesField {
customFieldValues(
after: String
before: String
first: Int = 0
last: Int = 0
filter: CustomFieldValuesFilter = "[object Object]"
): CustomFieldValueConnection
}

Fields#

NameDescription
customFieldValues (CustomFieldValueConnection) Lists all custom fields.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
filter (CustomFieldValuesFilter)
Filter custom field values.

Delayable#

A message with delayed deliveries.

interface Delayable {
deliverBy: DateTime
}

Fields#

NameDescription
deliverBy (DateTime) The date and time that the message was sent. Used to allow for undoing send.

Draft#

An object with timestamp fields for when it was created and last updated.

interface Draft {
agent: Agent!
assignment: Assignment
contextId: ID
conversation: Conversation!
conversationId: ID!
createdAt: DateTime!
draftId: String
draftType: DraftType
id: ID!
lastSyncedAt: DateTime!
metadata: JSON!
payload: JSON
updatedAt: DateTime!
version: Int!
}

Fields#

NameDescription
agent (Agent!) The agent who created the draft.
assignment (Assignment) The agents and/or teams that are assigned to the draft.
contextId (ID) The ID of the context within the conversation.
conversation (Conversation!) The conversation this draft belongs to.
conversationId (ID!) The conversation ID this draft belongs to.
createdAt (DateTime!) The date and time that the object was created.
draftId (String) The UUID used to identify the draft.
draftType (DraftType) The type of the draft.
id (ID!) The datetime when the draft was last synced.
metadata (JSON!) Metadata related to the draft.
payload (JSON) The payload of the draft, which is a schemaless JSON object.
updatedAt (DateTime!) The date and time that the object was last updated.
version (Int!) The draft version.

EmailInterface#

No description

interface EmailInterface {
aiDraftsChannels: [EmailChannel!]
aiDraftsKnowledgeBases: [KnowledgeBase!]
aiQualityRating: String
autoBccAddress: String
color: String!
email: String
emailTemplates: [EmailTemplate!]!
forwardEmailAddress: String!
fromName: String!
incomingEmailServer: IncomingServerTypeUnion
outgoingEmailServer: OutgoingServerTypeUnion
position: Int!
provider: String!
signature: String
threadingType: ThreadingType!
useAgentName: Boolean
}

Fields#

NameDescription
aiDraftsChannels ([EmailChannel!]) List of mailbox IDs used for generating AI drafts.
aiDraftsKnowledgeBases ([KnowledgeBase!]) List of knowledge base IDs used for generating AI drafts.
aiQualityRating (String) AI quality rating for the mailbox.
autoBccAddress (String) Auto BCC email address.
color (String!) The color of the mailbox.
email (String) The email address associated with the mailbox.
emailTemplates ([EmailTemplate!]!) Email template used for automated or manual email communication.
forwardEmailAddress (String!) The forwarding email address associated with the mailbox.
fromName (String!) The name that replies should be sent from.
incomingEmailServer (IncomingServerTypeUnion) The custom server used to send out emails.
outgoingEmailServer (OutgoingServerTypeUnion) The custom server used to send out emails.
position (Int!) The position that the mailbox should appear at when listed.
provider (String!) The provider.
signature (String) The default signature on outgoing messages from the mailbox.
threadingType (ThreadingType!) Whether to use the agent.
useAgentName (Boolean) Whether to use the agent.

Emailable#

A message that is sent via email.

interface Emailable {
bcc(
after: String
before: String
first: Int = 0
last: Int = 0
): RecipientConnection
cc(
after: String
before: String
first: Int = 0
last: Int = 0
): RecipientConnection
to(
after: String
before: String
first: Int = 0
last: Int = 0
): RecipientConnection!
}

Fields#

NameDescription
bcc (RecipientConnection) The "Bcc" recipients of the email.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
cc (RecipientConnection) The "Cc" recipients of the email.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
to (RecipientConnection!) The "To" recipients of the email.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.

ErrorType#

Represents errors that occurred during channel integration operations.

interface ErrorType {
createdAt: DateTime!
message: String!
type: String!
updatedAt: DateTime!
}

Fields#

NameDescription
createdAt (DateTime!) The date and time that the object was created.
message (String!) A detailed message describing the error encountered during the channel operation.
type (String!) The type or category of the error that occurred during the channel operation.
updatedAt (DateTime!) The date and time that the object was last updated.

Integration#

An object with timestamp fields for when it was created and last updated.

interface Integration {
createdAt: DateTime!
id: ID!
legacyId: String!
provider: IntegrationProvider!
settings: IntegrationSettings!
uid: String
updatedAt: DateTime!
}

Fields#

NameDescription
createdAt (DateTime!) The date and time that the object was created.
id (ID!) The Groove legacy API ID.
provider (IntegrationProvider!) The integration provider.
settings (IntegrationSettings!) The global settings for all integrations of this provider type.
uid (String) The integration UID.
updatedAt (DateTime!) The date and time that the object was last updated.

Message#

An individual message, for example an incoming email, an email reply, or a note.

interface Message {
attachments(
after: String
before: String
first: Int = 0
last: Int = 0
): AttachmentConnection
author: Author
body: String
bodyPlainText: String
cannedReply: CannedReply
channel: Channel!
createdAt: DateTime!
editedAt: DateTime
fromMerge: Boolean
fromMove: Boolean
id: ID!
isNote: Boolean!
sourceConversation: Conversation
summary: SummaryMessage!
updatedAt: DateTime!
}

Fields#

NameDescription
attachments (AttachmentConnection) The files attached to the message, if any.
Arguments
after (String)
Returns the elements in the list that come after the specified cursor.
before (String)
Returns the elements in the list that come before the specified cursor.
first (Int)
Returns the first n elements from the list.
last (Int)
Returns the last n elements from the list.
author (Author) The actor that authored the body.
body (String) The body of the message in HTML.
bodyPlainText (String) The body of the message in plain text.
cannedReply (CannedReply) The canned reply used for this message.
channel (Channel!) The channel this message belongs to.
createdAt (DateTime!) The date and time that the object was created.
editedAt (DateTime) The date and time that the object was last updated.
fromMerge (Boolean) True if the message comes from a merged conversation; false otherwise.
fromMove (Boolean) True if the message was moved from another conversation; false otherwise.
id (ID!) True if the message is a note; false otherwise.
sourceConversation (Conversation) The conversation the message was moved from.
summary (SummaryMessage!) The summary of the message.
updatedAt (DateTime!) The date and time that the object was last updated.

Node#

An object with an ID.

interface Node {
id: ID!
}

Fields#

NameDescription
id (ID!) ID of the object.

Previewable#

A preview is a list of integers representing the number of lines and the respective lengths of multi-line content, for example messages, merges, and ratings. It can be used to build a visual approximation of the content of the change while the full change is being fetched.

An object implements previewable if preview lines can be derived from its content.

interface Previewable {
preview: [Int!]
}

Fields#

NameDescription
preview ([Int!]) The preview lines and their respective lengths.

Publishable#

An object that can be published, for example Knowledge Base categories or articles.

For example:

... on Publishable {
author {
id
email
}
description
featured
meta {
description
robots
}
openGraph {
description
imageUrl
title
}
pageTitle
position
publishedAt
slug
state
title
updater {
id
email
}
}
interface Publishable {
author: Agent
description: String
featured: Boolean!
meta: Meta
openGraph: OpenGraph
pageTitle: String
position: Int!
publishedAt: DateTime
slug: String
state: PublishState!
title: String
updater: Agent
}

Fields#

NameDescription
author (Agent) The author of the object.
description (String) A description of the object.
featured (Boolean!) True if the object is set to be featured; false otherwise.
meta (Meta) The meta data of the object.
openGraph (OpenGraph) The Open Graph information of the object.
pageTitle (String) The HTML page title of the object.
position (Int!) The position that the article should appear in when listed.
publishedAt (DateTime) The date and time that the object was last published.
slug (String) The URL slug of the object.
state (PublishState!) The state of the object.
title (String) The title of the object.
updater (Agent) The agent that last updated the object.

Server#

The interface for different server types.

interface Server {
createdAt: DateTime!
encryption: EncryptionType
host: String!
id: ID!
port: Int!
protocol: ProtocolType!
updatedAt: DateTime!
username: String!
verified: Boolean!
}

Fields#

NameDescription
createdAt (DateTime!) The date and time that the object was created.
encryption (EncryptionType) The type of encryption used (e.g., SSL, TLS, None.
host (String!) The server hostname or IP address.
id (ID!) The port number the server listens on.
protocol (ProtocolType!) The protocol used by the server (e.g., SMTP, IMAP, POP3.
updatedAt (DateTime!) The date and time that the object was last updated.
username (String!) The username for authenticating with the SMTP server.
verified (Boolean!) Has the connection been verified.

Timestamped#

An object with timestamp fields for when it was created and last updated.

interface Timestamped {
createdAt: DateTime!
updatedAt: DateTime!
}

Fields#

NameDescription
createdAt (DateTime!) The date and time that the object was created.
updatedAt (DateTime!) The date and time that the object was last updated.

Utilizationabled#

An object with utilization fields for when it was last used and how many times it has been used.

interface Utilizationabled {
countUsed: Int!
lastUsedAt: DateTime
}

Fields#

NameDescription
countUsed (Int!) The number of times the object has been utilized.
lastUsedAt (DateTime) The date and time that the object was last used.