Unions

Actor#

An object that can act on other objects.

union Actor = Agent | Contact | Rule | UserIntegration

Agent

An agent is a user on Groove that is part of an organization.

To find all active agents, along with the teams they belong to, ordered by name:

query Agents {
agents {
edges {
node {
account {
id
subdomain
}
avatarUrl
createdAt
email
id
name
role
state
subdomain
preferences {
edges {
node {
key
value
}
}
}
teams {
edges {
node {
id
name
}
}
pageInfo {
hasNextPage
}
}
oauthCredentials {
edges {
node {
uid
provider
accessToken
refreshToken
expiresAt
createdAt
updatedAt
}
}
}
username
updatedAt
twoFactorAuthCode {
uri
code
}
}
}
}
}

To query for invited agents:

query Agents {
agents(filter: { state: INVITED }) {
edges {
node {
id
name
}
}
}
}

To reverse order the search:

query Agents {
agents(orderBy: { field: NAME, direction: DESC }) {
edges {
node {
id
name
}
}
}
}

To fetch agents ordered by the most times you assigned them to a conversation:

query Agents {
agents(orderBy: { field: ASSIGNMENT_COUNT, direction: DESC }) {
nodes {
id
name
}
}
}

To fetch a single agent:

query Node {
node(id: $agentId) {
... on Agent {
id
name
}
}
}
  1. A set of actions that will be performed on matching conversations.

To fetch all rules and their conditions:

query Rules {
rules {
nodes {
createdAt
creator {
id
}
description
id
name
position
state
updatedAt
}
}
}

By default rules are sorted by their user-defined row order. To sort by name instead:

query Rules {
rules(orderBy: { field: NAME, direction: ASC }) {
nodes {
id
}
}
}

Possible types#

NameDescription
Agent An agent is a user on Groove that is part of an organization. To find all active agents, along with the teams they belong to, ordered by name.
Contact A contact contains the personal information associated with someone you have interacted with using Groove. They are identified by some unique contact detail such as an email address, a Twitter handle, or a phone number. This depends on how the contact was created. A contact is often a customer who initated a conversation. It could also be someone who was copied in on a conversation.
Rule Rules help you automate certain parts of your workflow. Each rule contains: 1. A set of conditions that match on incoming conversations, and; 2. A set of actions that will be performed on matching conversations. To fetch all rules and their conditions.

Author#

An object that can author things, for example messages or events.

union Author = Agent | Contact

Agent

An agent is a user on Groove that is part of an organization.

To find all active agents, along with the teams they belong to, ordered by name:

query Agents {
agents {
edges {
node {
account {
id
subdomain
}
avatarUrl
createdAt
email
id
name
role
state
subdomain
preferences {
edges {
node {
key
value
}
}
}
teams {
edges {
node {
id
name
}
}
pageInfo {
hasNextPage
}
}
oauthCredentials {
edges {
node {
uid
provider
accessToken
refreshToken
expiresAt
createdAt
updatedAt
}
}
}
username
updatedAt
twoFactorAuthCode {
uri
code
}
}
}
}
}

To query for invited agents:

query Agents {
agents(filter: { state: INVITED }) {
edges {
node {
id
name
}
}
}
}

To reverse order the search:

query Agents {
agents(orderBy: { field: NAME, direction: DESC }) {
edges {
node {
id
name
}
}
}
}

To fetch agents ordered by the most times you assigned them to a conversation:

query Agents {
agents(orderBy: { field: ASSIGNMENT_COUNT, direction: DESC }) {
nodes {
id
name
}
}
}

To fetch a single agent:

query Node {
node(id: $agentId) {
... on Agent {
id
name
}
}
}

Possible types#

NameDescription
Agent An agent is a user on Groove that is part of an organization. To find all active agents, along with the teams they belong to, ordered by name.
Contact A contact contains the personal information associated with someone you have interacted with using Groove. They are identified by some unique contact detail such as an email address, a Twitter handle, or a phone number. This depends on how the contact was created. A contact is often a customer who initated a conversation. It could also be someone who was copied in on a conversation.

ChangeTypeUnion#

An object that can initiate a change.

union ChangeTypeUnion =
AgentChanged
| ChannelChanged
| CommentDeleted
| CommentEdited
| CommentReacted
| ContactChange
| ContactOpenedMessage
| ConversationDeleted
| ConversationMerged
| ConversationRestored
| ConversationStarred
| ConversationUnstarred
| EmailMessage
| FollowerAdded
| FollowerRemoved
| ForwardedMessage
| IntegrationAdded
| IntegrationExternalChange
| IntegrationRemoved
| MessageMoved
| Note
| Rating
| Reply
| ShopifyExternalChange
| Snoozed
| StateChanged
| SubjectChanged
| Tagged
| TeamChanged
| TwitterMessage
| Unsnoozed
| Untagged
| WidgetMessage

Possible types#

NameDescription
AgentChanged A conversation was reassigned to another agent.
ChannelChanged A conversation was moved to another channel.
CommentDeleted A comment was deleted.
CommentEdited A comment was edited.
CommentReacted A reaction was left on a comment.
ContactChange A conversation was reassigned to another contact.
ContactOpenedMessage A contact opened a message.
ConversationDeleted A conversation was moved to trash.
ConversationMerged A conversation was merged into another conversation.
ConversationRestored A conversation was restored from trash.
ConversationStarred The conversation was starred.
ConversationUnstarred The conversation was unstarred.
EmailMessage A message created in Groove as a result of an incoming email. Both contacts and agents can author these type of messages. For example, if an agent replies directly to a contact.
FollowerAdded A conversation is followed by an agent.
FollowerRemoved A conversation is unfollowed by an agent.
ForwardedMessage A message forwarded by an agent from Groove to a third party.
IntegrationAdded An integration was added to a conversation.
IntegrationExternalChange A change to a conversation was triggered by a linked integration.
IntegrationRemoved An integration was removed from a conversation.
MessageMoved A message was moved from one conversation to start another.
Note A message created by an agent in Groove, visible only to other agents.
Rating A rating is feedback on a conversation message from a contact for an agent.
Reply An email message from an agent to a contact.
ShopifyExternalChange A change that happened on Shopify.
Snoozed A conversation was snoozed.
StateChanged The state of the conversation changed.
SubjectChanged A conversation subject was updated.
Tagged A tag was added to a conversation.
TeamChanged A conversation was reassigned to another team.
TwitterMessage A message sent to or received from Twitter.
Unsnoozed A conversation was unsnoozed.
Untagged A tag was removed from a conversation.
WidgetMessage A message received from a contact using the Widget.

CustomFieldSubjectType#

An object that can have custom fields applied to it.

union CustomFieldSubjectType = Company | Contact

Possible types#

NameDescription
Company A company represents an organization containing one or more contacts.
Contact A contact contains the personal information associated with someone you have interacted with using Groove. They are identified by some unique contact detail such as an email address, a Twitter handle, or a phone number. This depends on how the contact was created. A contact is often a customer who initated a conversation. It could also be someone who was copied in on a conversation.

DraftTypeUnion#

No description

union DraftTypeUnion = NoteDraft | ReplyDraft

IntegrationUnion#

No description

union IntegrationUnion =
AccountIntegration
| ChannelIntegration
| JiraServerIntegration
| RechargeIntegration
| SalesforceIntegration
| ShopifyIntegration
| ShopifyV2Integration
| UserIntegration

Recipient#

An object that can receive email replies.

union Recipient = Agent | Contact

Agent

An agent is a user on Groove that is part of an organization.

To find all active agents, along with the teams they belong to, ordered by name:

query Agents {
agents {
edges {
node {
account {
id
subdomain
}
avatarUrl
createdAt
email
id
name
role
state
subdomain
preferences {
edges {
node {
key
value
}
}
}
teams {
edges {
node {
id
name
}
}
pageInfo {
hasNextPage
}
}
oauthCredentials {
edges {
node {
uid
provider
accessToken
refreshToken
expiresAt
createdAt
updatedAt
}
}
}
username
updatedAt
twoFactorAuthCode {
uri
code
}
}
}
}
}

To query for invited agents:

query Agents {
agents(filter: { state: INVITED }) {
edges {
node {
id
name
}
}
}
}

To reverse order the search:

query Agents {
agents(orderBy: { field: NAME, direction: DESC }) {
edges {
node {
id
name
}
}
}
}

To fetch agents ordered by the most times you assigned them to a conversation:

query Agents {
agents(orderBy: { field: ASSIGNMENT_COUNT, direction: DESC }) {
nodes {
id
name
}
}
}

To fetch a single agent:

query Node {
node(id: $agentId) {
... on Agent {
id
name
}
}
}

Possible types#

NameDescription
Agent An agent is a user on Groove that is part of an organization. To find all active agents, along with the teams they belong to, ordered by name.
Contact A contact contains the personal information associated with someone you have interacted with using Groove. They are identified by some unique contact detail such as an email address, a Twitter handle, or a phone number. This depends on how the contact was created. A contact is often a customer who initated a conversation. It could also be someone who was copied in on a conversation.

ValueTypeUnion#

All possible custom field value types.

union ValueTypeUnion =
Address
| File
| IpAddress
| Link
| Money
| Session
| Text
| UserAgent

Possible types#

NameDescription
Address A full address.
File A file attached to a contact or company.
IpAddress An IP address.
Link A text link.
Money A amount with the linked defined currency.
Session A contact visit session as recorded by the Widget.
Text A text string. It can represent either a single line, multiple lines, or an email.
UserAgent A characteristic string used to identify visitors.