Actor
An object that can act on other objects.
union Actor = Agent | Contact | Rule | UserIntegration
Possible types
Agent object common
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
}
}
}
Contact object common
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 (also called a 'collaborator'). In either case, we do not store this 'role' on the contact—rather, that role is defined by their participation with a particular conversation. This means the same contact could be the customer on one conversation, and a collaborator on another.
Rule object common
Rules help you automate certain parts of your workflow. Each rule contains:
- A set of conditions that match on incoming conversations, and;
- 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
}
}
}
UserIntegration object common
Member of
Event object ● EventGroupType object