CustomFieldSubjectType
An object that can have custom fields applied to it.
union CustomFieldSubjectType = Company | Contact | EmailConversation | FacebookConversation | TwitterConversation | WidgetConversation
Possible types
Company object common
A company represents an organization containing one or more contacts.
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.
EmailConversation object common
A Groove conversation initiated in an email channel.
To fetch a specific conversation by ID:
query Conversation {
node(id: "cnv_12345678") {
... on Conversation {
assigned {
at
agent {
id
name
}
team {
id
name
}
}
counts {
attachments
interactions
messages
notes
stateChanges
}
createdAt
deletedAt
drafts {
nodes {
id
}
}
followers {
nodes {
id
email
}
}
id
number
snoozed {
by { id }
until
}
starred
state
stateUpdatedAt
subject
systemUpdatedAt
tags {
nodes {
id
name
}
}
updatedAt
}
}
})
To fetch all conversations in a specific channel or folder:
query Conversations {
conversations(
filter: {
channel: "ch_4567890",
folder: "fol_8901234",
}
) {
nodes {
... on Conversation {
id
number
}
}
pageInfo {
hasNextPage
}
}
}
To find conversations in "all channels" that apply to a specific folder, omit the channel.
query Conversations {
conversations( filter: { folder: "fol_8901234" }) {
nodes {
... on Conversation {
id
number
}
}
pageInfo {
hasNextPage
}
}
}
By default, conversations are returned with the newest conversations first. To sort showing oldest first:
query Conversations {
conversations( orderBy: { field: UPDATED_AT, direction: ASC } ) {
nodes {
... on Conversation {
id
number
}
}
pageInfo {
hasNextPage
}
}
}
FacebookConversation object common
A Groove conversation initiated from Facebook.
To fetch a specific Facebook conversation by ID:
query Conversation {
node(id: "cnv_12345678") {
... on FacebookConversation {
facebookId
}
}
})
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
}
}
}
})
TwitterConversation object common
A Groove conversation initiated from Twitter.
To fetch a specific Twitter conversation by ID:
query Conversation {
node(id: "cnv_12345678") {
... on TwitterConversation {
twitterId
}
}
})
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
}
}
}
})
WidgetConversation object common
A Groove conversation initiated from a Groove Widget.
To fetch a specific Widget conversation by ID:
query Conversation {
node(id: "cnv_12345678") {
... on WidgetConversation {
browser
referrer
pageTitle
pageUrl
platform
referrer
}
}
})
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
}
}
}
})
Member of
CustomFieldRemovePayload object ● CustomFieldValuesUpdatePayload object