Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

Integration recipe

LeadOcean + Slack: enrich a LinkedIn profile from a pasted URL

Paste a LinkedIn URL in a channel. Make calls POST /v1/people/enrich and replies with the role, company and work email.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

You get a Slack channel where anyone pastes a LinkedIn profile URL and a bot replies in the thread with the person's current title, company and work email. The bot is a four-module Make scenario. Slack triggers it, a Text parser pulls out the URL, Make's HTTP module calls LeadOcean, and a second Slack module posts the answer. LeadOcean needs a free key. Slack has no native HTTP step here, so Make does the call.

How it works

  1. Create a channel such as #enrich-me. Add a Slack connection in Make. The Watch New Events module runs on a user connection (Make Slack docs, September 2026).
  2. Add Slack, Watch New Events (instant). Click Create a webhook, pick the message event type and select your connection (Make Slack docs, September 2026).
  3. Filter for profile links. Put a filter after the trigger: the message text contains linkedin.com/in/. Everything else is ignored. Then add Text parser, Match pattern to pull the clean URL out of the message (Make docs, October 2026).
  4. Add HTTP, Make a request. Method POST to https://api.leadocean.io/v1/people/enrich. Set Parse response to Yes so the fields are mappable (Make HTTP docs, September 2026).
  5. Send the URL. The body is { "linkedin_url": "<profile URL>", "reveal_email": true }. LeadOcean takes exactly one identifier per call (LeadOcean docs, September 2026).
  6. Add Slack, Create a Message. Reply in the same channel and thread with the mapped fields.
  7. Test with a placeholder URL, then switch the scenario on.

Configuration

Slack wraps links as <url|label>, so extract the clean URL first. Text parser, Match pattern takes a regular expression (Make docs, October 2026). Map its match into the body.

text
Module:   Text parser > Match pattern
Pattern:  https://www\.linkedin\.com/in/[^|>\s]+
Text:     the message text from the Slack trigger
text
Module:   HTTP > Make a request
Method:   POST
URL:      https://api.leadocean.io/v1/people/enrich
Headers:  x-api-key: <your LeadOcean key>
          content-type: application/json
Body:     JSON string
          { "linkedin_url": "https://www.linkedin.com/in/jane-doe", "reveal_email": true }
Parse response: Yes

Make's HTTP module has a Headers field and a JSON body type (Make HTTP docs, September 2026). Test the same call from a terminal first.

bash
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "content-type: application/json" \
  -d '{"linkedin_url":"https://www.linkedin.com/in/jane-doe","reveal_email":true}'

Make advises its Credentials field over raw headers. Pick the API key type to keep the key out of the headers (Make HTTP docs, September 2026).

Field mapping

LeadOcean fieldSlack replyNote
data.profile_data.profile_urlProfile linkEcho it so the thread is readable.
data.contact_data.contact_current_experiences[].job_titleTitleFirst entry is the current role.
data.contact_data.contact_current_experiences[].company_nameCompanySame entry as the title.
data.contact_data.contact_emails[].emailWork emailTake the entry typed work.
data.contact_data.contact_emails[].statusEmail statusOnly send to verified or catch_all_valid.
data.contact_data.contact_phones[].phonePhoneOptional. Only present when LeadOcean holds one.

Cost at 10,000 rows

10,000 pasted URLs cost LeadOcean at most 10,000 records. The first 1,000 are free, for life. A profile LeadOcean holds nothing for is a 404 and costs nothing (LeadOcean docs, September 2026).

LeadOcean. Free is $0 for 1,000 records, no card, 5 requests a second. Solo is $97 a month and Agency is $497 a month, both with a fair-use pace and no per-record price (LeadOcean pricing).

Make. Each pasted URL is one run of four modules on your Make plan. Size the plan on Make's pricing page for your monthly volume.

Troubleshooting

SymptomCauseFix
Scenario never firesSlack connection is a bot, not a userWatch modules need a user connection (Make Slack docs, September 2026).
401 from LeadOceanWrong headerUse x-api-key, not Authorization.
400 from LeadOceanTwo identifiers, or the Slack `<urllabel>` text sent rawSend linkedin_url alone, with a clean URL.
404 from LeadOceanLeadOcean holds nothing for that profileExpected and free. Post "no match" in the thread.
402 mid-runThe 1,000 free records are spentMove to Solo or Agency.
Bot replies to itselfReply text contains linkedin.com/in/Reply with the title and email only, or filter out bot messages.

FAQ

Can Slack call LeadOcean without Make?

Yes. Any small service that receives Slack's events and makes one POST works. Make is the no-code route. The calls in this recipe are the same either way.

Does it return a phone number?

Only when LeadOcean holds one. Phones sit in contact_phones[] on the same response. There is no separate call.

Is it safe to post emails in a shared channel?

Post them in a private channel. Read email_status before anyone sends, because LeadOcean does not refund bounces.

How do I enrich a whole list instead?

Loop the same call over a CSV. See enriching LinkedIn URLs in Go, in C# and the customer profile prompt.

Back to all integrations. See pricing.

Turn every LinkedIn link in Slack into a contact. Start free.

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →