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.
There is no dedicated merge screen for Accounts, but you can perform the merge yourself without asking Administrate Support to do it for you. Use the Import Data tool to merge Accounts in bulk or the GraphQL API to merge them one at a time. Both routes run the same merge: the source Account's contacts, bookings, registrations and financial records are moved onto the destination Account, and the source Account is then deleted. Your user role needs both the Account - edit and Account - delete permissions.
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.
Merging in bulk with Import Data
To merge many pairs of accounts at once, use the Import Data tool:
- Open Import Data and select the Account entity, then the merge action ("Merges two Accounts").
- Download the template. It has two required columns: - From Account — the ID of the Account that will be merged and then deleted. - To Account — the ID of the Account that will be merged into.
- Fill in one row per merge. Both ID columns accept either form returned by the account search query in Step 1: the encoded Account ID (
id, such asT3JnYW5pc2F0aW9uOjMyNw==) or the plain numeric TMS ID (legacyId, such as327). Numeric IDs are converted to the encoded form during processing. - Save as CSV and upload the file.
If you maintain your own external IDs on Accounts, the mergeByExternalIds action accepts those instead of encoded IDs.
Validate the surviving Account
A merge deletes the source Account, so validate the destination Account after the import completes:
- contacts and their details
- registrations and event history
- invoices and other financial records
- custom field values, where the source and destination held different values
FAQ
What information is merged?
- Contacts
- Bookings
- Registrations
- Financial records
What is not merged?
- Tasks
- Training Tokens
- Pricing Agreements
- Training Passes