Skip to content

Confirm Migration

POST
/integrations/migrations/{migration_id}/confirm

Accept the discovery and START IMPORTING. Records begin landing.

A migration cannot be un-run - only cancelled part-way, leaving whatever already arrived. Read the status first: its warnings are the things discovery could not resolve on its own.

An empty body accepts the discovery as proposed, which is the point of previewing it. Org admin, matching the app.

Authorizations

Parameters

Path Parameters

migration_id
required

Migration id from discovery.

string

Migration id from discovery.

Header Parameters

X-Target-Org-Id
Any of:
string

Request Body

Accept a discovery and START IMPORTING.

This is the irreversible half: records begin landing in graph8 and a migration cannot be un-run, only cancelled part-way.

Every field is OPTIONAL and omitting them accepts the discovery as proposed - which is the point of previewing it first. Send field_mappings_override to change where a CRM field lands, selected_list_ids to import only some lists, or owner_decisions to say what happens to the records of Salesforce owners who are not in graph8. A Salesforce discovery with an unmatched owner needs a decision for that owner: without one the confirm is refused with 422.

object
field_mappings_override
Any of:
object
key
additional properties
Array<object>
object
key
additional properties
any
owner_decisions
Any of:
Array<object>
<= 500 items

What happens to the records of one Salesforce record owner who is not a graph8 member.

Discovery lists every record owner in the status’s owners, each with a match.status. An owner whose status is unmatched needs a decision, or the confirm is refused with 422. An owner whose status is placeholder (inactive in Salesforce, a rep who left) may only be assigned; without a decision their records stay on the placeholder, as history.

object
action
required

invite: invite the owner to graph8 by email; their records are held for the invited address and become theirs when they first sign in. Invites go out in a member’s name, so an API key’s confirm with an invite decision is refused with 403. assign: move only their OPEN deals and OPEN tasks to the graph8 member assign_to_team_member_id; contacts, companies and closed records stay on the owner’s placeholder. match: this Salesforce user IS the graph8 member assign_to_team_member_id; EVERY record they own moves to that member. unassigned: import their records with no owner.

string
Allowed values: invite assign unassigned match
assign_to_team_member_id
Any of:
string
<= 64 characters
invite_email
Any of:
string
<= 320 characters
sf_user_id
required

The owner’s Salesforce user id, as discovery listed it in owners.

string
>= 1 characters <= 64 characters
selected_list_ids
Any of:
Array<string>

Responses

202

Successful Response

object
data
required

An open envelope for a connection, a token or a migration report.

Open because the migration STATUS payload carries a per-entity progress map, a discovered-field map and a pipeline list that all grow with the providers - and because a dropped warning on a migration report reads as “nothing went wrong”.

object
key
additional properties
any
pagination
Any of:
object
has_next
required

Whether there are more pages

boolean
limit
required

Items per page

integer
next_cursor
Any of:
string
notes
Any of:
Array<string>
page
required

Current page number (1-indexed)

integer
total
required

Total number of items

integer
total_available
Any of:
integer
total_is_lower_bound
Any of:
boolean

422

Validation Error

object
detail
Array<object>
object
loc
required
Array
msg
required
string
type
required
string