Aller au contenu principal

Exemples de requêtes complexes

Ces exemples montrent des requêtes imbriquées qui récupèrent des données liées en une seule demande. Pour les détails des arguments de connexion, consultez les pages de référence des types parents (par exemple Document, Group). Pour les concepts de pagination, voir Comment fonctionne la pagination.

Organisation avec groupes et membres

Voir : Organisation type · Group type · GroupMember type

query GetOrganisationWithGroups($id: ID!) {
organisation(id: $id) {
id
name
retention
created
groupConnection(first: 10) {
totalCount
pageInfo {
hasNextPage
endCursor
}
groups {
id
name
publicName
credit
memberConnection(first: 5) {
totalCount
groupMembers {
id
name
canAdminister
canCreateSend
canEdit
isActive
lastLogin
user {
id
name
email
}
}
}
}
}
}
}

Groupe avec modèles et documents

Voir : Group type · Template type · Document type

query GetGroupWithContent($id: ID!, $from: AWSDateTime, $to: AWSDateTime) {
group(id: $id) {
id
name
credit
licensesRemaining
templateConnection(first: 20, archived: false) {
totalCount
templates {
id
title
pageCount
valid
locked
tags
created
lastSent
}
}
documentConnection(first: 20, from: $from, to: $to) {
totalCount
documents {
id
name
status
created
senderName
senderEmail
recipients {
id
firstName
lastName
email
status
signedDateTime
}
}
}
}
}

Modèle avec éléments et rôles

Voir : Template type · TemplateElement type · Role type · DirectLink type

query GetTemplateWithDetails($id: ID!) {
template(id: $id) {
id
title
pageCount
pageDimensions
fileName
link
valid
locked
tags
roles {
id
name
roleType
signerIndex
ordinal
experience
}
elementConnection(first: 100) {
totalCount
templateElements {
id
elementType
ax
ay
bx
by
page
label
optional
role
signer
validation
value
}
}
directLinks {
id
name
link
emailValidation
redirectLink
}
}
}

Document avec destinataires et éléments

Voir : Document type · Recipient type · AuditLogItem type

query GetDocumentWithDetails($id: ID!) {
document(id: $id) {
id
name
link
status
hash
created
modified
senderName
senderEmail
batchId
batchName
template {
id
title
}
recipients {
id
firstName
lastName
email
role
roleType
status
authentication
emailOpenedDateTime
documentFirstViewedDateTime
signedDateTime
sentDateTime
emailProblem
}
elementConnection(first: 100) {
totalCount
documentElements {
id
elementType
ax
ay
bx
by
page
label
value
role
signer
}
}
auditLog {
id
name
email
status
description
created
code
ip
}
}
}

Lot avec documents et destinataires

Voir : Batch type · Document type

query GetBatchWithDocuments($id: ID!) {
batch(id: $id) {
id
name
enforceOrder
type
creatorName
documentCount
inProgressCount
rejectedCount
completedCount
bouncedCount
created
status
progress
documentConnection(first: 50) {
totalCount
documents {
id
name
status
created
recipients {
id
firstName
lastName
email
status
signedDateTime
}
}
}
}
}

Utilisateur avec organisations et groupes

Voir : User type · GroupMember type · Webhook type

query GetUserWithMemberships($id: ID) {
user(id: $id) {
id
name
firstName
lastName
email
timeZone
companySize
companyRole
lastDocumentSentAt
lastValidTemplateMadeAt
uploadedTemplatesCount
organisationConnection {
totalCount
organisations {
id
name
created
}
}
memberConnection(first: 20) {
totalCount
groupMembers {
id
canAdminister
canCreateSend
canEdit
isActive
lastLogin
group {
id
name
publicName
credit
}
}
}
webhooks {
id
url
event
enabled
created
groupId
}
}
}

Groupe avec contacts et groupes de contacts

Voir : Group type · Contact type · ContactGroup type

query GetGroupWithContacts($id: ID!) {
group(id: $id) {
id
name
contactConnection(first: 50) {
totalCount
contacts {
id
name
firstName
lastName
email
timeZone
phoneNumber
}
}
contactGroupConnection(first: 20) {
totalCount
contactGroups {
id
name
colour
contacts {
id
name
email
}
}
}
}
}

Groupe avec expériences et calendriers

Voir : Group type · Experience type · Schedule type · Attachment type

query GetGroupWithSettings($id: ID!) {
group(id: $id) {
id
name
experienceConnection(first: 10) {
totalCount
experiences {
id
name
defaultExperience
language
allowSignatureReuse
canReassign
created
}
}
scheduleConnection(first: 10) {
totalCount
schedules {
id
name
default
active
items {
id
daysAfter
frequency
subject
message
when
timeOfDay
skipWeekend
}
}
}
attachmentConnection(first: 10) {
totalCount
attachments {
id
filename
extension
description
autoAttach
created
createdBy
}
}
}
}

Organisation avec facturation et factures

Voir : Organisation type · Billing type · Invoice type · Quotas type

query GetOrganisationWithBilling($id: ID!) {
organisation(id: $id) {
id
name
billing {
id
customerName
address1
postcode
created
billingContactEmail
technicalContactEmail
taxRate
docSendCredit
userLimit
userCount
alertCount
planName
paymentSystem
currency
invoiceConnection(first: 20) {
totalCount
invoices {
id
created
invoiceNumber
subTotal
totalIncTax
currency
link
}
}
}
quotas {
docSendCredit
contactPrimaryEmail
contactSecondaryEmail
contactTechnicalEmail
}
}
}

Exemples de recherche et de filtrage

Filtrer les documents par statut et plage de dates

query FilterDocuments($groupId: ID!, $from: AWSDateTime!, $to: AWSDateTime!, $status: String!) {
group(id: $groupId) {
id
name
documentConnection(
first: 50
from: $from
to: $to
status: $status
) {
totalCount
documents {
id
name
status
created
senderName
senderEmail
}
}
}
}

Rechercher des modèles

query SearchTemplates($groupId: ID!, $search: String!) {
group(id: $groupId) {
id
name
templateConnection(
first: 20
search: $search
archived: false
) {
totalCount
templates {
id
title
created
lastSent
tags
}
}
}
}

Filtrer les contacts

query FilterContacts($groupId: ID!, $filter: AWSJSON!) {
group(id: $groupId) {
id
name
contactConnection(
first: 50
filter: $filter
) {
totalCount
contacts {
id
name
firstName
lastName
email
}
}
}
}