Harmonic

Harmonic is a private-market intelligence platform for researching companies, people, and investors. Its Scout agent accepts a natural-language sourcing request—such as “find forward-deployed engineers in enterprise software”—and the Harmonic block converts the result into a predictable contacts table for downstream scoring, review, storage in Sim tables, or delivery to CRM and other integration blocks.

Authentication

This integration uses a reusable Harmonic team API key connection. It does not use delegated OAuth. You need an existing Harmonic workspace with API access; ask your Harmonic workspace administrator or Harmonic support for the team key, then create a Harmonic connection from the block's Harmonic Account field. Sim validates and stores the key once, then sends it only in Harmonic's apikey request header. The same connection can be reused across Harmonic blocks and replaced or revoked from the credentials settings.

Working with people data

  • Scout search: Search People with Scout uses an integration-owned schema so every successful request returns the same normalized contact fields. Scout task errors, timeouts, interruptions, and malformed structured results stop the workflow instead of returning an ambiguous partial result.
  • Saved searches: A team API key can read only saved searches shared with the team. Make a private people search shared in the Harmonic console, then choose it with the basic selector. Advanced mode accepts a numeric saved-search ID or full URN when a search is not shown. Follow pageInfo.nextCursor while pageInfo.hasNext is true.
  • URN-only rows: Saved-search pages may contain person URNs without full profiles. Pass personUrns to Batch Get People to hydrate them into the common contact shape. Get Company Employees returns URNs the same way, so account-based sourcing chains through the same step.
  • Starting from an identifier: Enrich Person turns a LinkedIn profile URL or an email address into a contact. When Harmonic has no record yet it returns an error naming the enrichment it just scheduled; poll that URN with Get Enrichment Status and read the person once it completes.
  • Net-new monitoring: Get People Saved Search Net-New Results returns only people who newly matched, which avoids reprocessing the whole result set on every poll. It requires a saved search you have subscribed to in the Harmonic console — there is no API to subscribe. Acknowledge what you processed with Clear People Saved Search Net-New Results so the next poll starts clean.
  • Email enrichment: Submit Email Enrichment Job queues up to 5,000 people from either person URNs or LinkedIn URLs (one list or the other, never both). Poll Get Email Enrichment Job until isTerminal is true; the per-person rows carry a status but never an address, so pass succeededPersonUrns to Batch Get People to read the resolved emails. Check Get Email Enrichment Usage first to avoid exhausting the monthly quota.
  • Downstream workflows: Pass contacts directly into Sim tables, scoring or approval steps, and other integrations such as a CRM. Every contact-producing action uses the same camelCase output shape. A nullable array means Harmonic did not return that collection for the record; an empty array means Harmonic returned the collection with no values.
  • Large batches: Batch Get People accepts at most 500 combined IDs and URNs and requests only the fields used by the normalized contact output. Exceptionally large profiles can still exceed Sim's response limit; retry with smaller batches if that occurs.
  • Workspace and list APIs: This first version intentionally omits Harmonic's retiring V1 workspace and people-list endpoints. Harmonic says those APIs stop serving traffic on November 5, 2026 and already fail after a workspace completes its V2 migration. See Harmonic's Workspace API migration guide for the V2 GraphQL replacement.

Harmonic recommends no more than 100 saved-search results per page. Its general API limit is 10 requests per second, while Scout task creation is limited to 10 requests per minute and 100 per hour. Endpoint and field availability can also depend on your Harmonic subscription.

Harmonic does not publish a webhook-registration contract for this workflow surface, so the integration has no native triggers. Use a Schedule block to poll a shared saved search when recurring synchronization is needed.

Usage Instructions

Connect a reusable Harmonic team API key, use Scout to find people with natural-language criteria, select team-visible people saved searches, and hydrate person identifiers into normalized contacts for downstream tables, CRM, scoring, and outreach workflows.

Actions

Harmonic Search People with Scout

Ask Harmonic Scout to find people using natural language and return a stable, workflow-ready contacts table.

Input

ParameterTypeRequiredDescription
querystringYesNatural-language people research request, e.g. "Find forward-deployed engineers in enterprise software"

Output

ParameterTypeDescription
contactsarrayPeople matching the Scout request, normalized for downstream workflow use
personUrnstringHarmonic person URN
personIdnumberNumeric Harmonic person ID
fullNamestringFull name
firstNamestringFirst name
lastNamestringLast name
headlinestringLinkedIn headline or current title
currentTitlesarrayCurrent job titles
currentCompanyNamesarrayCurrent company names
currentCompanyUrnsarrayCurrent Harmonic company URNs
primaryEmailstringPrimary known email address
emailsarrayKnown email addresses
phoneNumbersarrayKnown phone numbers
linkedinUrlstringLinkedIn profile URL
formattedLocationstringFormatted location
citystringCity
statestringState or region
countrystringCountry
profilePictureUrlstringProfile picture URL
summarystringScout-generated contact summary
isRedactedbooleanWhether Harmonic marks the person record as redacted
taskIdstringHarmonic Scout task identifier
statusstringFinal Scout task status (success)
countnumberNumber of contacts returned

Harmonic Enrich Person

Resolve a LinkedIn profile URL or email address into a normalized Harmonic contact, queueing enrichment when the person is not yet in Harmonic.

Input

ParameterTypeRequiredDescription
linkedinUrlstringNoLinkedIn profile URL, e.g. https://www.linkedin.com/in/example
emailstringNoEmail address used as a fallback when the LinkedIn URL is absent or unmatched

Output

ParameterTypeDescription
contactobjectNormalized Harmonic contact, or null when the person is not yet in Harmonic
personUrnstringHarmonic person URN
personIdnumberNumeric Harmonic person ID
fullNamestringFull name
firstNamestringFirst name
lastNamestringLast name
headlinestringLinkedIn headline or current title
currentTitlesarrayCurrent job titles
currentCompanyNamesarrayCurrent company names
currentCompanyUrnsarrayCurrent Harmonic company URNs
primaryEmailstringPrimary known email address
emailsarrayKnown email addresses
phoneNumbersarrayKnown phone numbers
linkedinUrlstringLinkedIn profile URL
formattedLocationstringFormatted location
citystringCity
statestringState or region
countrystringCountry
profilePictureUrlstringProfile picture URL
summarystringScout-generated contact summary
isRedactedbooleanWhether Harmonic marks the person record as redacted
enrichmentUrnstringEnrichment URN to poll with Get Enrichment Status when Harmonic queued a refresh
mergedPersonUrnstringURN this person was merged into, when Harmonic deduplicated the record
requestedEntityUrnstringPerson URN Harmonic matched the request to
foundbooleanWhether Harmonic returned a person profile
enrichmentQueuedbooleanWhether Harmonic queued a background refresh (HTTP 201) for this person

Harmonic Get Person

Fetch one Harmonic person by numeric ID or URN, including any email resolved by a completed enrichment job.

Input

ParameterTypeRequiredDescription
personIdstringYesHarmonic person ID or full person URN
companyContextUrnsjsonNoCompany URNs used to scope the returned experience context; may be a JSON-array string

Output

ParameterTypeDescription
contactobjectNormalized Harmonic contact, or null when Harmonic has no such person
personUrnstringHarmonic person URN
personIdnumberNumeric Harmonic person ID
fullNamestringFull name
firstNamestringFirst name
lastNamestringLast name
headlinestringLinkedIn headline or current title
currentTitlesarrayCurrent job titles
currentCompanyNamesarrayCurrent company names
currentCompanyUrnsarrayCurrent Harmonic company URNs
primaryEmailstringPrimary known email address
emailsarrayKnown email addresses
phoneNumbersarrayKnown phone numbers
linkedinUrlstringLinkedIn profile URL
formattedLocationstringFormatted location
citystringCity
statestringState or region
countrystringCountry
profilePictureUrlstringProfile picture URL
summarystringScout-generated contact summary
isRedactedbooleanWhether Harmonic marks the person record as redacted
foundbooleanWhether Harmonic returned a person profile

Harmonic Batch Get People

Fetch full Harmonic person profiles for up to 500 combined numeric IDs and person URNs.

Input

ParameterTypeRequiredDescription
personIdsjsonNoArray of numeric Harmonic person IDs; may be a JSON-array string
personUrnsjsonNoArray of Harmonic person URNs; may be a JSON-array string

Output

ParameterTypeDescription
contactsarrayFetched Harmonic person profiles normalized as contacts
personUrnstringHarmonic person URN
personIdnumberNumeric Harmonic person ID
fullNamestringFull name
firstNamestringFirst name
lastNamestringLast name
headlinestringLinkedIn headline or current title
currentTitlesarrayCurrent job titles
currentCompanyNamesarrayCurrent company names
currentCompanyUrnsarrayCurrent Harmonic company URNs
primaryEmailstringPrimary known email address
emailsarrayKnown email addresses
phoneNumbersarrayKnown phone numbers
linkedinUrlstringLinkedIn profile URL
formattedLocationstringFormatted location
citystringCity
statestringState or region
countrystringCountry
profilePictureUrlstringProfile picture URL
summarystringScout-generated contact summary
isRedactedbooleanWhether Harmonic marks the person record as redacted
countnumberNumber of contacts returned

Harmonic Get Company Employees

List person URNs for a company, filtered by role group and employment status. Pair with Batch Get People to hydrate contacts.

Input

ParameterTypeRequiredDescription
companyIdstringYesHarmonic company ID or full company URN
employeeGroupTypestringNoRole group: CEO, FOUNDERS_AND_CEO, EXECUTIVES, FOUNDERS, LEADERSHIP, NON_LEADERSHIP, ALL, ADVISORS, NON_PARTNERS (default ALL)
employeeStatusstringNoEmployment status: ACTIVE, NOT_ACTIVE, or ACTIVE_AND_NOT_ACTIVE (default ACTIVE)
userConnectionStatusstringNoConnection filter: TEAM_CONNECTION or NO_CONNECTION. Harmonic documents per-user connection filtering as unsupported via the API
sizenumberNoResults to return; Sim caps this at 100 per page (default 50)
cursorstringNoOpaque next-page cursor from a previous response

Output

ParameterTypeDescription
personUrnsarrayPerson URNs for the matching employees; Harmonic returns URNs only
totalCountnumberTotal matching employees
pageInfoobjectCursor pagination metadata
nextCursorstringCursor for the next page
currentCursorstringCursor for the current page
hasNextbooleanWhether another page is available

Harmonic List People Saved Searches

List the team-shared Harmonic saved searches that target people. Use a returned ID or URN to fetch results.

Input

ParameterTypeRequiredDescription

Output

ParameterTypeDescription
savedSearchesarrayTeam-accessible Harmonic saved searches that target people
savedSearchIdnumberSaved search ID
savedSearchUrnstringSaved search URN
namestringSaved search name
isPrivatebooleanWhether the search is private
savedSearchTypestringSaved search entity type (PERSONS)
userSavedSearchTypestringUser-facing saved search type
creatorUrnstringCreator user URN
createdAtstringCreation timestamp
updatedAtstringLast update timestamp
countnumberNumber of people saved searches returned

Harmonic Get People Saved Search Results

Get one page of a Harmonic people saved search. Full records become contacts; URN-only rows are exposed for Batch Get People.

Input

ParameterTypeRequiredDescription
savedSearchIdstringYesPeople saved-search ID or full Harmonic saved-search URN
sizenumberNoResults to return; Sim caps this at 100 per page (default 50)
cursorstringNoOpaque next-page cursor from a previous response

Output

ParameterTypeDescription
contactsarrayFull person records returned by the saved search, normalized as contacts
personUrnstringHarmonic person URN
personIdnumberNumeric Harmonic person ID
fullNamestringFull name
firstNamestringFirst name
lastNamestringLast name
headlinestringLinkedIn headline or current title
currentTitlesarrayCurrent job titles
currentCompanyNamesarrayCurrent company names
currentCompanyUrnsarrayCurrent Harmonic company URNs
primaryEmailstringPrimary known email address
emailsarrayKnown email addresses
phoneNumbersarrayKnown phone numbers
linkedinUrlstringLinkedIn profile URL
formattedLocationstringFormatted location
citystringCity
statestringState or region
countrystringCountry
profilePictureUrlstringProfile picture URL
summarystringScout-generated contact summary
isRedactedbooleanWhether Harmonic marks the person record as redacted
personUrnsarrayAll person URNs in the page, including rows returned without full profiles
totalCountnumberTotal matching people
pageInfoobjectCursor pagination metadata
nextCursorstringCursor for the next page
currentCursorstringCursor for the current page
hasNextbooleanWhether another page is available

Harmonic Get People Saved Search Net-New Results

Get only the people newly matching a subscribed Harmonic people saved search, so a monitor does not reprocess the whole result set.

Input

ParameterTypeRequiredDescription
savedSearchIdstringYesPeople saved-search ID or full Harmonic saved-search URN
sizenumberNoResults to return; Sim caps this at 100 per page (default 50)
cursorstringNoOpaque next-page cursor from a previous response
newResultsSincestringNoOnly return matches after this UTC point, as YYYY-MM-DD or YYYY-MM-DDTHH:00:00Z

Output

ParameterTypeDescription
contactsarrayNewly matching people returned as full profiles, normalized as contacts
personUrnstringHarmonic person URN
personIdnumberNumeric Harmonic person ID
fullNamestringFull name
firstNamestringFirst name
lastNamestringLast name
headlinestringLinkedIn headline or current title
currentTitlesarrayCurrent job titles
currentCompanyNamesarrayCurrent company names
currentCompanyUrnsarrayCurrent Harmonic company URNs
primaryEmailstringPrimary known email address
emailsarrayKnown email addresses
phoneNumbersarrayKnown phone numbers
linkedinUrlstringLinkedIn profile URL
formattedLocationstringFormatted location
citystringCity
statestringState or region
countrystringCountry
profilePictureUrlstringProfile picture URL
summarystringScout-generated contact summary
isRedactedbooleanWhether Harmonic marks the person record as redacted
personUrnsarrayAll newly matching person URNs, including rows returned without full profiles
cursorstringCursor echoed by Harmonic
pageInfoobjectCursor pagination metadata
nextCursorstringCursor for the next page
currentCursorstringCursor for the current page
hasNextbooleanWhether another page is available

Harmonic Clear People Saved Search Net-New Results

Acknowledge net-new people on a saved search so the next poll returns only fresh matches. Clearing everything requires setting the scope explicitly.

Input

ParameterTypeRequiredDescription
savedSearchIdstringYesPeople saved-search ID or full Harmonic saved-search URN
personUrnsjsonNoPerson URNs to acknowledge when clearScope is "selected". May be a JSON-array string
clearScopestringNoEither "selected" (default, acknowledge only the listed URNs) or "all" (clear every net-new result)

Output

ParameterTypeDescription
clearedbooleanWhether Harmonic accepted the acknowledgement
clearedPersonUrnsarrayPerson URNs acknowledged, or null when every net-new result was cleared

Harmonic Submit Email Enrichment Job

Queue bulk email enrichment for up to 5,000 people, given either person URNs or LinkedIn profile URLs.

Input

ParameterTypeRequiredDescription
personUrnsjsonNoArray of Harmonic person URNs, 1-5000; may be a JSON-array string. Mutually exclusive with personLinkedinUrls
personLinkedinUrlsjsonNoArray of LinkedIn profile URLs, 1-5000; may be a JSON-array string. Mutually exclusive with personUrns

Output

ParameterTypeDescription
jobIdstringJob identifier to poll with Get Email Enrichment Job
statusstringJob status (PENDING, IN_PROGRESS, COMPLETED, FAILED)
acceptedCountnumberPeople accepted into the job
monthlyRemainingnumberEmail enrichments left in the team monthly quota
createdAtstringJob creation timestamp
droppedarrayIdentifiers Harmonic dropped before queueing, with the reason for each
submittedIdentifierstringIdentifier submitted to Harmonic
reasonstringWhy Harmonic dropped it (NOT_FOUND, INVALID_URL, ALREADY_HAS_EMAIL, RECENTLY_ATTEMPTED)

Harmonic Get Email Enrichment Job

Check a Harmonic bulk email enrichment job. Per-person results appear once the job is terminal; fetch the emails with Get Person or Batch Get People.

Input

ParameterTypeRequiredDescription
jobIdstringYesJob ID returned by Submit Email Enrichment Job

Output

ParameterTypeDescription
jobIdstringJob identifier
statusstringJob status (PENDING, IN_PROGRESS, COMPLETED, FAILED)
isTerminalbooleanWhether the job finished, meaning results will no longer change
countsobjectPer-outcome tallies for the job
totalProcessednumberPeople processed
totalSucceedednumberPeople with an email found
totalFailednumberPeople whose enrichment failed
totalSkippednumberPeople skipped
totalNotFoundnumberPeople Harmonic could not resolve
resultsarrayPer-person outcomes; null until the job reaches a terminal status
personUrnstringHarmonic person URN
statusstringPer-person job status (PENDING, SUCCESS, NOT_FOUND, FAILED, SKIPPED)
succeededPersonUrnsarrayPerson URNs whose email was found; pass these to Batch Get People
createdAtstringJob creation timestamp
completedAtstringJob completion timestamp

Harmonic Get Email Enrichment Usage

Read the team monthly email-enrichment quota. Check this before a large batch to avoid a quota rejection.

Input

ParameterTypeRequiredDescription

Output

ParameterTypeDescription
monthlyUsagenumberEmails enriched so far this month
monthlyLimitnumberMonthly email enrichment allowance
monthlyRemainingnumberEnrichments left this month

Harmonic Get Enrichment Status

Check enrichment jobs Harmonic queued for people it did not already have, and read the person URN each one produced.

Input

ParameterTypeRequiredDescription
enrichmentUrnsjsonYesArray of Harmonic enrichment URNs or bare enrichment UUIDs from Enrich Person; may be a JSON-array string

Output

ParameterTypeDescription
enrichmentsarrayStatus of each requested enrichment job
enrichmentUrnstringHarmonic enrichment URN
statusstringEnrichment job status (QUEUED, IN_PROGRESS, COMPLETE, FAILED, NOT_FOUND, EXPERIENCES_HIDDEN)
messagestringProvider status message
enrichedEntityUrnstringResulting company or person URN once enrichment completes
countnumberNumber of enrichment statuses returned

On this page