Playbook
ContactOut — Agent Guidance
When to use
ContactOut for LinkedIn → email/phone enrichment when you have a LinkedIn URL. High accuracy for active LinkedIn users. Strong for US + global. Falls after dropleads in cost-ordered waterfalls. Important: Free pre-check APIs (contactout_check_email_status, contactout_check_work_email, contactout_check_personal_email, contactout_check_phone) are informational only. Do not use an empty pre-check to skip a paid reveal: it can be empty even when ContactOut’s paid reveal returns verified contact data.
Provider characteristics
- Input required: LinkedIn URL (best), email, or name+company
- Geographic coverage: Global, strongest in US + Europe
- Provider credit cost: ~$0.10 per ContactOut email credit; separate phone + search credits
- LinkedIn URL requirement: Must contain “linkedin.com/in/” or “linkedin.com/pub/”. Sales Navigator URLs not supported.
Key operations
contactout_linkedin_contact_info
Uses ContactOut’s Contact Info API (GET /v1/people/linkedin) for one LinkedIn profile. For personal-email waterfalls, call this instead of contactout_enrich_person:
email_type accepts personal, work, personal,work, or none. ContactOut only consumes email credits when emails are returned; email_type: "none" returns no emails and consumes no email credits. include_phone: true can consume phone credits when phone numbers are returned.
A customer credential connected in the dashboard always overrides the managed
personal and work credential lanes.
Managed-key routing follows ContactOut’s endpoint entitlements:
GET /v1/people/linkedin and the work-email status checker use the work key;
POST /v1/people/identifiers uses the managed-only hashed key; enrich, search,
domain, and personal-status endpoints use the personal/default key. The
connector does not currently expose either LinkedIn batch endpoint.
ContactOut does not document a per-call charge response header for this endpoint. Deepline billing is therefore locked to the documented response fields: one email credit when any returned email bucket is non-empty, plus one phone credit when a phone bucket is non-empty.
contactout_get_hashed_email_identifiers
Converts a batch of 5–100 LinkedIn profile URLs into hashed email identifiers for privacy-safe paid-ads audience matching. Use it to raise Meta/Google match rates without handling raw personal emails. ContactOut returns a flatmatches.emails hash list plus a request-scoped
matches_found count. One matched profile can return several hashes, so the
hash count is NOT the matched-profile count. Deepline bills one email credit
per matches_found, never per returned hash.
A batch where nothing matches returns HTTP 404 No hashed emails found, which
Deepline maps to an unbilled empty result. Requests with fewer than 5 unique
profiles are rejected by ContactOut with HTTP 400.
Because the hash list is unattributed, you cannot map a specific hash back to a
specific input profile. Treat the output as an audience-level hash pool, not as
per-row enrichment. Managed requests use the dedicated hashed API credential.
contactout_check_email_status (FREE convenience helper)
Checks work-email and personal-email availability together for one LinkedIn profile.contactout_check_email_status→{ "has_personal_email": false, "has_work_email": true, "status": "verified" }
contactout_check_work_email / contactout_check_personal_email / contactout_check_phone (FREE — informational only)
Check whether a LinkedIn profile has work email, personal email, or phone coverage. Zero credits consumed. Their results are not authoritative and must not gatecontactout_linkedin_contact_info or contactout_enrich_person.
contactout_check_work_email→{ "has_work_email": true, "status": "verified" }contactout_check_personal_email→{ "has_personal_email": false }contactout_check_phone→{ "has_phone": true }
contactout_enrich_person
Enriches a person by LinkedIn URL (preferred), email, or name+company. Returns email array atemail, work_email, personal_email.
contactout_search_people
Search people by title, company, location, seniority. Usereveal_info: false (default) for count/discovery. Set reveal_info: true to retrieve emails (costs search + email credits).
"(Sales AND CRM) NOT Manager"
contactout_enrich_domain
Enriches company data (size, industry, funding, HQ) from a domain name.Output shape
contactout_enrich_person returns a flat profile object. Email at email[0], work_email[0], or personal_email[0]. No nested envelope.
contactout_linkedin_contact_info returns the same flat profile object, but profile-only responses with no email or phone data are treated as no-result for billing and waterfall control.
contactout_search_people returns { profiles: [...], metadata: { total_results: N } }.
Anti-patterns
- Don’t use Sales Navigator or Recruiter URLs — they’ll return 400
- Don’t use an empty free checker result to suppress a paid reveal — only the paid reveal determines whether ContactOut returns usable contact data
- Don’t include “http://” or “www.” in domain values for
enrich_domain - Don’t set
reveal_info: trueon search without knowing the count first — usereveal_info: falseto size the audience