Share via


Talent CRM Connect Certification

LinkedIn requires all Talent CRM Connect implementations undergo a certification review. This ensures that our members get the best experience using a LinkedIn partner integration. The technical review and sign off also ensures that there are no gaps in integrations and that partner products keep up with the latest features and updates released by LinkedIn.

As an API partner, please go through the requirements listed below. These are the capabilities that an integrating partner is expected to build in their product. We request you to plan and incorporate these features early in your design. When you are nearing completion, you must initiate a Technical Sign Off request by contacting your LinkedIn POC on the Business Development team.

A demo will be scheduled during which you will be asked to showcase all your product capabilities. During this evaluation, LinkedIn may suggest modifications which will need to be completed for the sign off. If all criteria are met (as per the envisioned scope), the technical sign-off is awarded.

Module 1 - Authentication

Rule API Requirements Expected Result
CRM-001 Demonstrate OAuth 2.0 Client Credentials integration. Can request a token
CRM-002 Demonstrate ability to periodically verify that an access token is valid. Method for evaluation validity of token is understood by LI.
CRM-003 Demonstrate ability to detect access token expiry. Store and check TTL for token at time of request
CRM-004 Demonstrate reuse of access token until near expiration. Tokens will be stored and reused. New token retrieved when close to expiration.
CRM-005 Demonstrate ability to retrigger OAuth 2.0 Client Credentials flow in case token has expired or been invalidated. Handle 401 response codes by requesting a new access token.

Module 1 - Customer Onboarding

Rule API Requirements Expected Result
CRM-010 Demonstrate provisioning a new developer application. A CRM tenant is provisioned only one developer application.
CRM-011 Demonstrate ability to detect an application has already been provisioned for a customer When an application is detected, a new one is not created.
CRM-012 Demonstrate enabling Talent CRM Connect for the first time. Integration values from Onboarding Plugin’s JS callback are stored for a customer. Requests to /atsIntegrations and /atsIntegrations/configurations properly set integration values.
CRM-013 Demonstrate the historical sync of jobs and CRM data is initiated after onboarding. Historical sync is initiated following customer onboarding via Onboarding Plugin. Customers can understand progress and errors with sync
CRM-014 (If RSC is supported) Demonstrate the same application enabling RSC and historical sync kicked off for RSC related data. RSC can be enabled in conjunction with CRM Connect without issue
CRM-015 Demonstrate or explain what initiates the synchronization of jobs/CRM data to LinkedIn. Mechanism to sync data continuously is described and understood.
CRM-016 Demonstrate activating Talent CRM Connect with a second contract that uses the same organization ID. The second contract is activated successfully. All atsIntegrations are properly recorded, including new CRM_CSA_API integration context which has the new contract value.
CRM-017 Demonstrate activating Talent CRM Connect with a second contract that uses a different organization ID. The second contract is not activated and an error message is displayed that says only one organization ID can be active at a time.

Module 2 - Create and Manage Jobs

Rule API Requirements Expected Result
CRM-020 Demonstrate sync job success by viewing a candidate in a pipeline with associated jobs. Jobs synced to LI are visible within CRM indicator.

Module 2 - Sync TCRM Candidates

Rule API Requirements Expected Result
CRM-030 Demonstrate a candidate has been synced to LinkedIn as part of historical candidate sync. When viewing the associated LI member in Recruiter, associated candidate data is present from the CRM in Talent Integrations CRM tab.
CRM-031 Demonstrate candidate person URN is associated with candidate in CRM. Candidate data in CRM is augmented with LI person URN.
CRM-032 Demonstrate how LI person URN is used for deduplication within the CRM. Candidates can be deduplicated using LI person URN if architecturally possible.
CRM-033 Demonstrate how updates to a candidate’s record are synced to LinkedIn. When a candidate is updated, updates are reflected within Recruiter due to resync of data
CRM-034 Demonstrate creation of a candidate and subsequent sync to LI. Candidate data can be found in LI if it matches a LI member.
CRM-035 Demonstrate how a candidate synced without required data could be possible and how it would be handled (for example, by submitting a candidate with an improperly formatted email that does not follow x@x.x pattern). Candidate sync failure is handled and highlighted to the user if architecturally possible.
CRM-036 Confirm that all candidate records have been synced to LI as part of historical sync. Gross number of candidates that exist in the CRM matches the number in LI.

Module 2 - Sync TCRM Candidate Resumes

Rule API Requirements Expected Result
CRM-040 Demonstrate a candidate resume has been synced to LinkedIn as part of historical candidate sync. When viewing the associated LI member in Recruiter, associated candidate resume data is present from the CRM in Talent Integrations CRM tab.
CRM-041 Demonstrate adding a new resume to a candidate and subsequent sync to LI. When viewing the associated LI member in Recruiter, new associated candidate resume data is present from the CRM in Talent Integrations CRM tab.
CRM-042 Confirm that all candidate resume records have been synced to LI as part of historical sync. Gross number of candidate resumes that exist in the CRM matches the number in LI.

Module 2 - Sync TCRM Pipelines

Rule API Requirements Expected Result
CRM-050 Demonstrate pipelines have been synced to LI as part of historical sync. When clicking Export to CRM on a candidate in Recruiter, pipeline can be found in the list.
CRM-051 Demonstrate adding a new pipeline to the CRM and subsequent sync to LI. When clicking Export to CRM on a candidate in Recruiter, pipeline can be found in the list.
CRM-052 Confirm that all pipeline records have been synced to LI as part of historical sync. Gross number of pipelines that exist in the CRM matches the number in LI.

Module 2 - Sync TCRM Pipeline Stages

Rule API Requirements Expected Result
CRM-060 Demonstrate pipeline stages have been synced to LI as part of historical sync. When clicking on a candidate in Recruiter, pipeline and stage are visible for a candidate in the pipeline.
CRM-061 Demonstrate adding a new pipeline stage to the CRM and subsequent sync to LI. Update a candidate in the pipeline so it is in the stage. When clicking on a candidate in Recruiter, pipeline and new stage are visible for the candidate in the pipeline.
CRM-062 Demonstrate or explain how stageCategory enum values are determined based on the stage name within the CRM. Stage names are associated with correct enum values when possible. “OTHER” is used only when absolutely necessary.
CRM-063 Confirm that all pipeline stage records have been synced to LI as part of historical sync. Gross number of pipeline stages that exist in the CRM matches the number in LI.

Module 2 - Sync TCRM Candidate Pipelines

Note

Candidate pipeline stage history should be sent via the Candidate Pipeline Stage API

Rule API Requirements Expected Result
CRM-070 Demonstrate candidate pipeline and stage associations have been synced to LI as part of historical sync. When clicking on a candidate in Recruiter, pipeline and stage are visible for a candidate in the pipeline.
CRM-071 Demonstrate adding a new candidate to a pipeline in the CRM and subsequent sync to LI. When clicking on a candidate in Recruiter, pipeline and new stage are visible for the candidate in the pipeline.
CRM-072 Demonstrate or explain how sourceCategory enum values are determined based on the source name within the CRM. Source names are associated with correct enum values when possible. “OTHER” is used only when absolutely necessary.
CRM-073 Confirm that all candidate pipeline and stage records have been synced to LI as part of historical sync. Gross number of candidate pipelines and stages that exist in the CRM matches the number in LI.

Module 2 - Sync TCRM Interactions

Rule API Requirements Expected Result
CRM-080 Demonstrate candidate interactions have been synced to LI as part of historical sync. Pipeline accurately reflected in Recruiter for a given candidate’s interaction.
CRM-081 Demonstrate adding a new candidate interaction in the CRM and subsequent sync to LI. When clicking on a candidate in Recruiter, candidate interaction is visible for the candidate.
CRM-082 Demonstrate updating a candidate interaction and subsequent sync to LI. When clicking on a candidate in Recruiter, candidate interaction is visible for the candidate.
CRM-083 Demonstrate or explain how pipelineId is determined by the CRM for a given interaction. Pipeline determination clearly understood.
CRM-084 Confirm that all interaction records have been synced to LI as part of historical sync. Gross number of interaction records that exist and should be synced from the CRM matches the number in LI.

Module 3 - One Click Export to CRM

Rule API Requirements Expected Result
CRM-090 Demonstrate export of an existing candidate to a pipeline that has never been exported to the CRM. Candidate is not duplicated in CRM. Candidate details are updated with notes (optional) and associated LinkedIn information. Candidate is identified based on person URN already present in CRM.
CRM-091 Demonstrate resync of the updated candidate pipeline back to LI with the associated candidate. Existing candidate is added to pipeline in the CRM, and the associated relationship is sent to LI and reflected in Talent Integrations tab in Recruiter. Source category for the candidate is set to LINKEDIN. Source category in CRM is visible as "LinkedIn"
CRM-092 Demonstrate exporting a new candidate to the CRM. A new candidate is created in the CRM and associated with the correct pipeline.
CRM-093 Demonstrate resyncing the newly created candidate in the CRM back to LI. Source category for the candidate is set to LINKEDIN for related pipeline. A new candidate is sent to LinkedIn with the manualMatchedMember field populated with the member’s person URN that was exported. The exported Candidates should show up with "source" as "LINKEDIN" in parter system UI.
CRM-133 Demonstrate where customers will see or be notified of (and have the option to delete) any LinkedIn member profiles that were deleted from LinkedIn after the customer 1-Click Exported the relevant profile The list of deleted profiles displayed to the customer matches the list retrieved from LinkedIn. Any profiles deleted by the customer are removed from the CRM
CRM-134 Demonstrate usage of 3-legged auth flow to bind CRM users to recruiter seats. Users are asked to complete the 3-legged OAuth2 flow to link their accounts the first time they use the integration after activation.
Recommendation: Build a binding experience on top of viewing the profile plugin.
CRM-135 Demonstrate how InMail history is displayed in the CRM UI, either on the candidate's page or in the message center. The /conversationEvents API is called every 30 minutes or less to display new InMails. The CRM user linked to a recruiter seat is correctly identified as the sender in conversations with the candidate.
CRM-136 Demonstrate how to render the Recommended Matches plugin for a pipeline. Recommendations load within the plugin, which is designed to fully utilize the available space. The section where the plugin appears is labeled as "LinkedIn Recommended Matches."

Module 4 - Profile Plugin

Rule API Requirements Expected Result
CRM-120 Add a candidate to the CRM that does not match a profile on LinkedIn by inventing a name and email address. In the Profile Plugin, manually link this new candidate to a completed LinkedIn profile Refresh the page and ensure that the chosen LinkedIn profile is still displayed in the Profile Plugin. Ensure that the candidate records in CRM and LinkedIn are updated with appropriate Person URN
CRM-121 Logout of LinkedIn, display the candidate Profile Plugin Sign In to LinkedIn widget is displayed. Scrolling in the Profile Plugin fits within CRM UI
CRM-122 Login to LinkedIn, display the candidate Profile Plugin Profile Plug is displayed in authenticated mode. Scrolling in the Profile Plugin fits within CRM UI

Module 5 - Data Deletion

Rule API Requirements Expected Result
CRM-100 Demonstrate deletion of a candidate within the CRM system and associated update to LI. Candidate delete is synced to LinkedIn and reflected in Recruiter.
CRM-101 Demonstrate cascading delete caused by candidate deletion within the CRM system . All the related candidate pipelines, pipeline stages, resumes, and interactions are deleted automatically.
CRM-102 Demonstrate deletion of a pipeline within the CRM system and associated update to LI. Pipeline delete is synced to LinkedIn and reflected in Recruiter.
CRM-103 Demonstrate cascading delete caused by candidate pipeline deletion within the CRM system. All the related candidate pipelines, pipeline stages, and interactions are also deleted automatically.
CRM-104 Demonstrate deletion of a pipeline stage within the CRM system and associated update to LI. Pipeline stage delete is synced to LinkedIn and reflected in Recruiter.
CRM-105 Demonstrate cascading delete caused by pipeline stage deletion within the CRM system Pipeline stage deletes should trigger cascading deletes / updates for associated candidate pipelines in that stage.
CRM-106 Demonstrate deletion of a candidate resume within the CRM system and associated update to LI. Candidate resume delete is synced to LinkedIn and reflected in Recruiter.
CRM-107 Demonstrate deletion of an interaction within the CRM system and associated update to LI. Interaction delete is synced to LinkedIn and reflected in Recruiter.
CRM-108 Demonstrate deletion of any candidate pipeline within the CRM system and associated update to LI. Candidate pipeline delete is synced to LinkedIn and reflected in Recruiter.
CRM-109 Demonstrate the deletion of a purged members. Purged members that customers choose to delete have data retrieve from LI removed from the CRM.
CRM-162 Demonstrate deletion of ACL associations to an entity when a pipeline record is transitioned to publicly accessible. Associated ACL / entity relationships are purged when pipeline record is transitionted to publicly visible. If the ACL is removed as part of this change confirm deletion of the ACL and any referencing entites within LinkedIn.
CRM-163 Demonstrate removal of a user from an ACL. Removal of the ACL list for a user is reflected in Recruiter through verification of no visibility to that ACL's associated pipelines.
CRM-164 Demonstrate removal of a user from ACLs stored in LI when the user is deleted from the CRM or marked as inactive. When a user is deleted, all assignments to ACLs in LI are removed.
CRM-165 Demonstrate deletion of an ACL stored in LI when the ACL is deleted from the CRM. When a ACL is deleted, all assignments to ACLs in LI are removed and all entity / ACL relationships are removed.
CRM-166 Demonstrate cascading delete when a candidate pipeline is deleted in the CRM. All the related records of candidate pipeline stage and interactions are also deleted automatically.
CRM-167 Demonstrate deletion of candidate pipeline stage within the CRM system. The candidate pipeline stage in LinkedIn is also deleted automatically.

Module 6 - Error Handling

Rule API Requirements Expected Result
CRM-110 Demonstrate or explain how a customer re-enables an integration (Talent CRM Connect, RSC, etc.) if it was disabled for enablement or sync issues. Customers can re-enable integrations as desired.
CRM-111 Demonstrate or explain how and when logging is completed for failed requests. Full request, including URL, headers, and body, and responses logged when failures encountered. Batch requests are logged when there are failures within the request, even if there is a 2xx response code.
CRM-112 Demonstrate or explain how and when you retry API requests. Retry logic is understood.
429s requests are exponentially delayed and retried. Future requests to an endpoint after several (5+) attempts return 429 and are held off until UTC midnight for daily limits to reset.
CRM-113 Demonstrate or explain how your support teams can get access to production logging when errors occur. Customer support teams can access production logs to support customer issues.
CRM-114 Demonstrate or explain how customers can understand when API failures occur. Customers can understand when API failures occur and relevant corrective actions that can be taken to resolve issues.
CRM-115 Demonstrate or explain how query tunneling is used when URLs in requests exceed defined limits. Query tunnelling is utilized when query string exceeds set limits.

Module 7 - Retrieve Data from LinkedIn (cont'd)

Rule API Requirements Expected Result
CRM-130 As a recruiter, send an InMail to a LinkedIn member (1st connection not currently in CRM) on your team from a Recruiter. As a candidate, (recipient of InMail) reply to InMail and share contact email. Display new CRM candidate record New candidate is created in CRM with contact info shared via Recruiter. Profile information is retrieved from InMail Stub Profiles endpoint.
CRM-131 As a recruiter, send an InMail to same LinkedIn member. As a candidate, (recipient of InMail) reply to InMail and share a different contact email and phone number Candidate record is updated with new contact info in CRM. Profile information is retrieved from InMail Stub Profiles endpoint.
CRM-132 Demonstrate or explain how seatholders are consumed within the CRM synchronization process Seats are ingested. Pagination is used when calling the seatsV2 endpoint.

Module 8 - Sync CRM ACLs

Rule API Requirements Expected Result
CRM-155 Demonstrate and explain how access restrictions are defined for CRM Pipeline records LI understands access restriction rules and features in the CRM for pipeline records.
CRM-156 Demonstrate and explain which how per-user visibility can be defined for CRM Pipeline records LI understands how the CRM determines users that have access to view a pipeline.
CRM-157 Demonstrate and explain which users are in ACL lists/groups. LI understands how users can be members of ACL lists.
CRM-158 Demonstrate that the max number of ACL a user can be assigned to is < 10 Create and sync multiple records that are access controlled, and multiple users that have access at least one of the records. Confirm that the integration pattern will not produce a ACL membership exceeding the max value.
CRM-159 Demonstrate that visibility restrictions on pipelines in the CRM prevent users in Recruiter from viewing inaccessible records. Sync records that have restricted access. As a user that does not have access in Recruiter, attempt to export a candidate to the pipeline. Confirm that it is not possible. Confirm that a candidate in the pipeline does not list the pipeline membership on the candidate's CRM tab in recruiter if the user does not have access.
CRM-160 Demonstrate that visibility restrictions on pipelines in the CRM allow users in Recruiter to view accessible records. Sync records that have restricted access. As a user that does have access in Recruiter, attempt to export a candidate to the pipeline. Confirm that it is possible. Confirm that a candidate in the pipeline does list the pipeline membership on the candidate's CRM tab in recruiter if the user has access.
CRM-161 Demonstrate the modification of pipeline from no visibility restrictions to having visibility restrictions. After transitioning status in the CRM, changes are reflected in LinkedIn Recruiter. Users with access can still see the pipeline in One CLick Export and candidate membership on the CRM tab.

Versioning

Rule API Requirements Expected Result
CRM-140 Demonstrate or explain what changes will need to take place to facilitate migration to versioned endpoints Versioning migration path clearly understood by LinkedIn. Switching consumption to versioned endpoints requires minimal development support.

Compliance Confirmation

Rule API Requirements Expected Result
CRM-150 Partner is in compliance with all Terms of Service and partnership agreements. Partner is not violating partnership agreements or Terms of Service. Any remediation plans defined to resolve violations have been completed.
CRM-151 Confirmation of compliance with LinkedIn API Breaking Change policy. Complying with and understanding the LinkedIn API Breaking Change policy.