There are several reasons you may need to merge accounts. For example, duplicate records may have been created in error, integrations may have produced unintended duplicates, or customers may have entered incorrect company information when booking training.
Account merging is not currently available in the user interface. It must be performed via the GraphQL API.
Step 1: Identify the Accounts to Merge
Use a GraphQL query to search for the accounts you want to merge:
query searchForAccount {
accounts(filters: [{
field: name,
operation: wordlike,
value: "Globex"
}]) {
edges {
node {
id
legacyId
name
isIndividual
isVenue
}
}
}
}Replace Globex with the account name you want to search for.
The fields returned are important for validation:
- id: Required to perform the merge (GraphQL ID).
- legacyId: Helps confirm you are selecting the correct account (TMS ID).
- name: Confirms account identity.
-
isIndividual: If
true, the account must be converted to a non-individual account before merging. -
isVenue: If
true, the venue association must be removed before merging.
Example response:
{
"data": {
"accounts": {
"edges": [
{
"node": {
"id": "T3JnYW5pc2F0aW9uOjMyNw==",
"legacyId": "327",
"name": "Globex Corporation",
"isIndividual": false,
"isVenue": false
}
}
]
}
}
}In this example, the account is neither an individual nor a venue and can proceed to merge.
Step 2: Merge the Accounts
Use the following mutation, supplying the GraphQL IDs for the source (fromAccount) and destination (toAccount) accounts:
mutation mergeAccount {
account {
merge(input: {
fromAccount: "XXXXXXXXXXXXX",
toAccount: "XXXXXXXXXXXXXX"
}) {
account {
id
legacyId
name
}
errors {
label
value
message
}
}
}
}The fromAccount will be merged into the toAccount. Ensure you carefully select the correct destination account before executing the mutation.
If the mutation returns errors, review the error messages or contact Support for assistance.
FAQ
What information is merged?
- Contacts
- Bookings
- Registrations
- Financial records
What is not merged?
- Tasks
- Training Tokens
- Pricing Agreements
- Training Passes