Folder
A folder contains a set of conditions that allow for smart filtering of conversations.
For example, to show only your active conversations, you can create a folder called "Mine" which contains these two conditions:
- "Assigned agent" is "Current User".
- "Status" is "Opened".
By default, folders apply to, and are visible across, all of your channels. However, you can configure them to be only visible to selected channels, agents, or teams.
To fetch all folders and their conditions:
query Folders {
folders {
nodes {
agents {
nodes {
id
email
}
pageInfo {
hasNextPage
}
}
conditions(
orderBy: { field: CREATED_AT, direction: DESC }
) {
nodes {
id
param
operator
value
}
pageInfo {
hasNextPage
}
}
conversationCount
createdAt
default
description
displayCountWhenInactive
hideIfZeroConversations
id
locked
matchType
name
position
state
teams {
nodes {
id
name
}
pageInfo {
hasNextPage
}
}
updatedAt
}
}
}
To find associated conversations in a folder, use the QueryRoot
conversations with a filter argument:
conversations(filter: { folderId: "fol_1234567" }) { ...
By default folders are sorted by their user-defined row order. To sort by name instead:
query Folders {
folders( orderBy: { field: NAME, direction: ASC } ) {
nodes {
id
}
}
}
To find conversations in a folder for a specific channel:
query Folders {
folders {
nodes {
id
conversations ( channel: "ch_12345678" ) {
nodes {
... on Conversation {
id
number
}
}
pageInfo {
hasNextPage
}
}
}
}
}
type Folder implements Node, Timestamped {
agents(
after: String
before: String
filter: AgentFilter
first: Int
last: Int
orderBy: AgentOrder
): AgentConnection
channel: Channel!
channelRestriction: ChannelRestrictionType!
channels(
after: String
before: String
filter: ChannelFilter
first: Int
last: Int
orderBy: ChannelOrder
): ChannelConnection!
conditions(
after: String
before: String
first: Int
id: ID
last: Int
orderBy: ConditionOrder
): ConditionConnection
conversationCount: Int!
createdAt: DateTime!
default: Boolean!
description: String
displayCountWhenInactive: Boolean!
hideIfZeroConversations: Boolean!
id: ID!
locked: Boolean!
matchType: FolderMatchTypes!
name: String!
position: Int!
restriction: Restriction!
state: FolderState!
teams(
after: String
before: String
first: Int
last: Int
orderBy: TeamOrder
): TeamConnection
type: FolderType!
updatedAt: DateTime!
}
Fields
Folder.agents ● AgentConnection object common
Lists the agents that can see the folder. An empty lists implies only certain teams have visibility (see the
teamsfield).
Folder.agents.after●Stringscalar commonReturns the elements in the list that come after the specified cursor.
Folder.agents.before ● String scalar common
Returns the elements in the list that come before the specified cursor.
Folder.agents.filter ● AgentFilter input common
The fields by which to filter the results.
Folder.agents.first ● Int scalar common
Returns the first n elements from the list.
Folder.agents.last ● Int scalar common
Returns the last n elements from the list.
Folder.agents.orderBy ● AgentOrder input common
The field and direction by which to order the results.
Folder.channel ● Channel! non-null interface common
The channel that this folder is in (in the current context).
Folder.channelRestriction ● ChannelRestrictionType! non-null enum common
The currently applied channel restrictions.
Folder.channels ● ChannelConnection! non-null object common
Lists all channels.
Folder.channels.after●Stringscalar commonReturns the elements in the list that come after the specified cursor.
Folder.channels.before ● String scalar common
Returns the elements in the list that come before the specified cursor.
Folder.channels.filter ● ChannelFilter input common
The fields by which to filter the results.
Folder.channels.first ● Int scalar common
Returns the first n elements from the list.
Folder.channels.last ● Int scalar common
Returns the last n elements from the list.
Folder.channels.orderBy ● ChannelOrder input common
The field and direction by which to order the results.
Folder.conditions ● ConditionConnection object common
Lists the conditions that the folder uses to filter conversations.
Folder.conditions.after●Stringscalar commonReturns the elements in the list that come after the specified cursor.
Folder.conditions.before ● String scalar common
Returns the elements in the list that come before the specified cursor.
Folder.conditions.first ● Int scalar common
Returns the first n elements from the list.
Folder.conditions.id ● ID scalar common
The ID of the specific condition to get.
Folder.conditions.last ● Int scalar common
Returns the last n elements from the list.
Folder.conditions.orderBy ● ConditionOrder input common
The field and direction by which to order the results.
Folder.conversationCount ● Int! non-null scalar common
The number of conversations that are in this folder (in the current context)
Folder.createdAt ● DateTime! non-null scalar common
The date and time that the object was created.
Folder.default ● Boolean! non-null scalar common
True if the folder is automatically created by Groove; false otherwise.
Folder.description ● String scalar common
A description of the folder.
Folder.displayCountWhenInactive ● Boolean! non-null scalar common
True if counts in the side navigation are visible when the folder is inactive; false otherwise.
Folder.hideIfZeroConversations ● Boolean! non-null scalar common
True if folder in the side navigation is hidden when there is zero conversations; false otherwise.
Folder.id ● ID! non-null scalar common
Folder.locked ● Boolean! non-null scalar common
True if the folder is protected; false otherwise.
Folder.matchType ● FolderMatchTypes! non-null enum common
The match type of the folder conditions.
Folder.name ● String! non-null scalar common
The name of the folder.
Folder.position ● Int! non-null scalar common
The position that the folder should appear in when listed.
Folder.restriction ● Restriction! non-null object common
The agents or teams that are allowed to access this folder.
Folder.state ● FolderState! non-null enum common
The state of the folder.
Folder.teams ● TeamConnection object common
Lists the teams that can see the folder. An empty lists implies only certain agents have visibility (see the
agentsfield).
Folder.teams.after●Stringscalar commonReturns the elements in the list that come after the specified cursor.
Folder.teams.before ● String scalar common
Returns the elements in the list that come before the specified cursor.
Folder.teams.first ● Int scalar common
Returns the first n elements from the list.
Folder.teams.last ● Int scalar common
Returns the last n elements from the list.
Folder.teams.orderBy ● TeamOrder input common
The field and direction by which to order the results.
Folder.type ● FolderType! non-null enum common
The type of the folder
Folder.updatedAt ● DateTime! non-null scalar common
The date and time that the object was last updated.
Interfaces
Node interface common
An object with an ID.
Timestamped interface common
An object with timestamp fields for when it was created and last updated.
Member of
FolderConnection object ● FolderCreatePayload object ● FolderEdge object ● FolderUpdatePayload object