Resolve is FullContact’s Identity Resolution solution. The Resolve API accepts fragmented customer identifiers and uses the Identity Graph to map those identifiers to a single individual. The result is a unique, persistent identifier called a PersonID.
You can use Resolve via API or batch to map your CRM, call center, mailing address, and other customer information from various platforms to get real-time, two-way consolidation and updating of customer information with high match rates and confidence levels.
Unify your fragmented customer data points down to a persistent PersonID.
Resolve accepts fragmented user, customer and prospect data as multi-field identifiers, matching against the FullContact Identity Graph to recognize them down to a Person level. This match is expressed in what FullContact calls the PersonID, which is customer-scoped, unique per person, persistent and portable, and of course secure. Connections between customer and user databases can be established to the PersonID through the Identity Streme, allowing FullContact customers to provide a unified client experience and journey.
Benefits of resolving identifiers to a PersonID:
Map fragmented records to internal identifiers in the Identity Streme
In addition to the PersonID, Resolve supports the ability to map custom identifiers, such as a customerID, loyaltyID, CDPID and any other internal database ID to the respective user/customer/prospect data (multi-field). You can also leverage this feature to associate analytics data (such as visitIDs and/or orderIDs) as you can map multiple identifiers to a single person.
Benefits of mapping custom identifiers to user/prospect data:
Recognize anonymous website traffic by leveraging Customer Recognition Tags
Resolve real-time traffic on your website down to a personID using an embedded webtag provided by FullContact.
Resolve leverages the person-centric identity graph to accept fragmented & incomplete identifiers and consolidates them down to a single person. Internally FullContact has an identifier for each person in the graph, but in order to provide a client-unique, persistent PersonID, Resolve uses your Identity Streme.
The Identity Streme maintains a mapping between FullContact’s internal IDs and the PersonID. As the underlying graph data changes (your customer gets a new phone number, etc.), the Identity Streme will ensure these mappings remain up to date. Additionally, it will accept custom identifiers (RecordIDs) so you can use your internalIDs to interact with Resolve and Enrich, as well as attach additional metadata to each RecordID.
Benefits of the Identity Streme:
Within the FullContact Platform, you’ll find a high-level demonstration of resolve in action . This guide walks through a customer journey and shows how FullContact’s Resolve offering can help identify and manage client and prospect data. Additionally, the demo walks through using Resolve to serve curated experiences to your customers.
There are multiple API methods that can be used to interact with the Identity Streme:
identity.resolve - resolve a customer record (multi-field input) down to a PersonID
identity.map - Map customer records by sending any acceptable multi field identifier combination for each customer/client record. The RecordID is a unique, custom identifier.
identity.delete - delete a custom identifier (recordID) from the Identity Streme
Our average match rate for Resolve is 93%. Deduplication or overlapping records rate is dependent on the customer records. You can expect an average of 10-15% of duplicate records.
Step 1: If you already have an account, start by logging in. If you don’t have an account, start by creating one in the FullContact Platform.
Doing so will allow you to access the FullContact Platform, which has some helpful tools to get started interacting with FullContact’s services, which you can read more about in the FullContact Platform Overview. Additionally, having an account will allow you to generate an API Key, which is required to interact with our APIs.
Navigate to the “API Keys” menu and click “GENERATE NEW API KEY”. Follow the prompt, giving your API key a name.
Note: Copy your API key and store it somewhere secure. You will not be able to see the whole key again. No longer have access to the full key? Don’t worry! You can generate a new one using the same process.
Be sure to keep this key secure and only share through secure and appropriate channels when necessary. If someone gains access to your API key, they will be able to incur unwanted charges against your account. You can delete keys at any time should you accidentally expose them to the world.
Step 2: Now that you have generated your API key, let’s resolve a person via the API. In this step, we will be sending data to the FullContact in the form of a multi-field identifier.
In this step, contact indentifiers were sent to FullContact. In this particular case, we provided all of Bart's known emails to FullContact's API, which was able to locate Bart in our Identity Graph, generate a unique personID and assign it to the calling account.
Resolve Request - Resolve two emails: bart@fullcontact.com and bart.lorang@fullcontact.com down to PersonID.
curl -X POST \https://api.fullcontact.com/v3/identity.resolve \-H 'Authorization: Bearer {Your API Key}' \-H ‘Content-Type: application/json’ \-d '{"emails": ["bart@fullcontact.com","bart.lorang@fullcontact.com"]}'
Resolve Response - a unique personID representation is returned (200 OK)
{"personIds": ["eYxWc0B-dKRxerTw_uQpxCssM_GyPaLErj0Eu3y2FrU6py1J"]}
Now let’s try to map a custom identifier, known as a recordID, to a lookup input record. Again we’ll provide a multi field identifier as well as a recordID we’d like to associate with our input record. Any further interactions with FullContact services can reference the recordID in lieu of contact fragments.
Map Request - Map two emails: bart@fullcontact.com and bart.lorang@fullcontact.com to a recordID.
curl -X POST \https://api.fullcontact.com/v3/identity.map \-H 'Authorization: Bearer {Your API Key}' \-H ‘Content-Type: application/json’ \-d '{"emails": ["bart@fullcontact.com","bart.lorang@fullcontact.com"],"recordId": "customer123"}'
Map Response - a payload of the mapped recordID will be returned (200 OK)
{"recordIds": ["customer123"]}
Step 3: Fetch additional insights with either new identifier. Once the PersonID and/or RecordID have been mapped to the person's multi field input record, they can be used to enrich the profile further with Insights Bundles
NOTE: When a personID/recordID is generated with anonymous information (MAID, Hashed Email, etc.), only anonymous data can be returned.
Enrich Request using the newly created PersonID
curl -X POST \https://api.fullcontact.com/v3/person.enrich \-H 'Authorization: Bearer {Your API Key}' \-H ‘Content-Type: application/json’ \-d '{"personId": “eYxWc0B-dKRxerTw_uQpxCssM_GyPaLErj0Eu3y2FrU6py1J”}'
OR
Enrich Request using the newly created PersonID
curl -X POST \https://api.fullcontact.com/v3/person.enrich \-H 'Authorization: Bearer {Your API Key}' \-H ‘Content-Type: application/json’ \-d '{"recordId": "customer123"}'
Enrich Response (for either request) - 200 OK
{"fullName": "Bart Lorang","ageRange": "30-39","gender": "Male","location": "Denver, CO, United States","title": "Co-Founder & Managing Director","organization": "V1.vc","twitter": "https://twitter.com/bartlorang","linkedin": "https://www.linkedin.com/in/bartlorang","bio": "CEO & Co-Founder of @FullContact, Managing Director @v1vc_. Tech Entrepreneur, Investor. Husband to @parkerbenson and Father to Greyson Lorang","avatar": "https://d2ojpxxtu63wzl.cloudfront.net/static/a7e6a5aba590d4933e35eaadabd97fd2_44e00e968ac57725a15b32f9ca714827aff8e4818d290cb0c611f2e2585253b3","details": {...}}
Step 4: Next Steps with Resolve
Jump into the resolve API Docs to see more examples on how to call resolve.
Prefer batch data uploads? Please Reach out to a sales representative to learn more.