Bring in an outside collaborator
Add the accountant, agency or consultant with scoped, never-owner access, send them their one-time invite code privately, and pause their access when the engagement ends.
Integrations · a play in 3 steps.
The steps
- Add the collaborator with their role assignments — they cannot sign in until invited. — createCollaborator
- Send the one-time invite code — you convey it privately; it expires in 7 days. — issueCollaboratorInvite
- Pause their access when the engagement ends. — deactivateCollaborator
The calls
Every operation this use case runs, in the order it first appears, with the request and the response its reference page shows.
createCollaborator
createCollaborator — mutation · Add an external collaborator — an outside party (accountant, agency, consultant) with scoped, never-owner access.
Example request
mutation ExampleCreateCollaborator($input: NewCollaboratorInput!) {
createCollaborator(input: $input) {
id
sysId
type
caption
status
parentId
rootId
createdAt
updatedAt
revisionNum
revision
email
displayName
}
}
Variables:
{
"input": {
"caption": "Blue jeans",
"email": "<the person’s email address>",
"orgRoles": [
{
"org": "01900000-0000-7000-8000-9c1df0590000",
"roles": [
"01900000-0000-7000-8000-98bc5cde0000"
]
}
]
}
}
Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.
Example response
{
"data": {
"createCollaborator": {
"id": "01900000-0000-7000-8000-37386ae00000",
"sysId": "CX-EXMP-0000-000F",
"type": "Collaborator",
"caption": "Blue jeans",
"status": "active",
"parentId": "01900000-0000-7000-8000-065235280000",
"rootId": "01900000-0000-7000-8000-a093dd800000",
"createdAt": "2027-01-31T00:00:00.000Z",
"updatedAt": "2027-01-31T00:00:00.000Z",
"revisionNum": 1,
"revision": "01900000-0000-7000-8000-b7960e180000",
"email": "<the person’s email address>",
"displayName": "Blue jeans"
}
},
"extensions": {
"at": {
"callId": "01EXAMPLE-CALL-ID",
"version": {
"requested": {
"name": "genesis",
"number": 0
},
"serviced": {
"name": "genesis",
"number": 0
}
}
}
}
}
issueCollaboratorInvite
issueCollaboratorInvite — mutation · Send a collaborator their sign-up invite — a one-time code you pass along; issuing again replaces the old one.
Example request
mutation ExampleIssueCollaboratorInvite($collaboratorId: ID!) {
issueCollaboratorInvite(collaboratorId: $collaboratorId) {
inviteToken
expiresAt
}
}
Variables:
{
"collaboratorId": "01900000-0000-7000-8000-4cebc5980000"
}
Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.
Example response
{
"data": {
"issueCollaboratorInvite": {
"inviteToken": "<your session token>",
"expiresAt": "2027-01-31T00:00:00.000Z"
}
},
"extensions": {
"at": {
"callId": "01EXAMPLE-CALL-ID",
"version": {
"requested": {
"name": "genesis",
"number": 0
},
"serviced": {
"name": "genesis",
"number": 0
}
}
}
}
}
deactivateCollaborator
deactivateCollaborator — mutation · Pause a collaborator’s access — they cannot sign in or act until reactivated.
Example request
mutation ExampleDeactivateCollaborator($id: ID!, $revision: ID!, $reason: String) {
deactivateCollaborator(id: $id, revision: $revision, reason: $reason) {
id
sysId
type
caption
status
parentId
rootId
createdAt
updatedAt
revisionNum
revision
email
displayName
}
}
Variables:
{
"id": "01900000-0000-7000-8000-37386ae00000",
"revision": "01900000-0000-7000-8000-b7960e180000",
"reason": "Correcting a miscount."
}
Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.
Example response
{
"data": {
"deactivateCollaborator": {
"id": "01900000-0000-7000-8000-37386ae00000",
"sysId": "CX-EXMP-0000-000F",
"type": "Collaborator",
"caption": "Blue jeans",
"status": "active",
"parentId": "01900000-0000-7000-8000-065235280000",
"rootId": "01900000-0000-7000-8000-a093dd800000",
"createdAt": "2027-01-31T00:00:00.000Z",
"updatedAt": "2027-01-31T00:00:00.000Z",
"revisionNum": 1,
"revision": "01900000-0000-7000-8000-b7960e180000",
"email": "<the person’s email address>",
"displayName": "Blue jeans"
}
},
"extensions": {
"at": {
"callId": "01EXAMPLE-CALL-ID",
"version": {
"requested": {
"name": "genesis",
"number": 0
},
"serviced": {
"name": "genesis",
"number": 0
}
}
}
}
}