# Enrich inbound sign-ups automatically — Ravn

Canonical: https://askravn.com/use-cases/enrich-inbound-leads

Use case

# Know who signed up before you reply.

On each new sign-up, call validate_email, and if the address is on a company domain, call domain_to_company to add name, size, industry and location to the record. Free-mail and disposable addresses stop at the first step.
[Start free: 1,000 lookups](https://askravn.com/#start) [Read the docs](https://askravn.com/docs)

Playbook
## One webhook, two calls
Use your sign-up form's webhook, your backend, or the HTTP step in a tool such as Zapier, Make or n8n. There are no native app listings; the HTTP step works with any of them.
- / 01
### Create an API key
Sign in at askravn.com and make a key. Store it as `RAVN_API_KEY` in your secrets, never in the form or browser code.
- / 02
### Check the email
Call validate_email with the sign-up address. If the status is invalid or `disposable` is true, tag the lead and stop. That saves your team time and a lookup.
- / 03
### Skip free mail
If `free_provider` is true (a personal mailbox), there is no company domain to look up. Mark it as a personal sign-up and stop.
- / 04
### Look up the company
For a company address, call domain_to_company with the domain from the validate_email answer. It runs on your own People Data Labs key (connect it with `ravn keys add pdl`), and returns name, employee count, industry, founded year, city, state, country, LinkedIn URL and NAICS codes. Ravn stores none of it.
- / 05
### Write it back and route
Save the fields to your CRM or database, then route by size or industry. A not_found from domain_to_company costs nothing; leave those for a human to check.
- / 06
### Handle limits
On HTTP 429, wait for the `Retry-After` header and retry. On 403 `provider_key_required`, connect your provider key with `ravn keys add pdl`. Do not drop the sign-up on an error; queue it.
Run it
## The two requests

```
# 1. Check the address (1 lookup)
curl https://api.askravn.com/v1/tools/validate_email \
-H "Authorization: Bearer $RAVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "jane@acme.com"}'

# Branch on results.status, results.disposable and results.free_provider.

# 2. Company details for the domain (one lookup on your own PDL key, free if not_found)
curl https://api.askravn.com/v1/tools/domain_to_company \
-H "Authorization: Bearer $RAVN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain": "acme.com"}'

# Backfill last month's sign-ups from a CSV instead
npx ravn enrich signups.csv --tool domain_to_company --map domain=Website --out signups-enriched.csv
```

What it costs
## One lookup per sign-up, one per company
The email check uses one lookup from your plan and needs no provider key. The company lookup is also one lookup when it finds a match and nothing when it does not, and it runs on your own People Data Labs key, which bills you directly for the record.Worked example: 600 sign-ups in a month, of which 400 use a company domain. The email checks take 600 lookups, well inside the 10,000 lookups a month the plan includes. The company lookups take another 400, and if 50 domains return not_found, those 50 lookups are given straight back.Skipping free-mail and disposable addresses before step 4 is what keeps the bill down. The [company enrichment API](https://askravn.com/features/company-enrichment-api) lists every field, and the [error docs](https://askravn.com/docs#errors) list every status code.
FAQ
## Common questions.
[All questions →](https://askravn.com/faq)Is there a native HubSpot or Salesforce app?No. Use your CRM's workflow webhook, or an HTTP step in Zapier, Make or n8n, to call the REST API. The request is the same two calls shown above. The [integrations page](https://askravn.com/integrations) has examples.Can I enrich the person, not just the company?Yes. reverse_email_lookup takes an email and returns a person record if one exists, for one lookup per person matched, on your own People Data Labs key. Use it only where your privacy notice covers it.What happens if Ravn is slow or down during a sign-up?Do not block the sign-up on it. Queue the enrichment and retry. A 503 upstream_unavailable or a 429 with Retry-After is safe to retry later. We do not offer an SLA, so build the retry in.Should I enrich sign-ups that use Gmail or other free mail?There is no company to look up from a free-mail domain, so domain_to_company would only return not_found. Check the free_provider flag from validate_email and stop there. If the person gives a company website elsewhere on the form, look up that domain instead.

## More in [use cases](https://askravn.com/use-cases)
Every page uses the same account, plan and tools. [See pricing →](https://askravn.com/pricing)
- [Build a B2B prospect list with ClaudeAsk Claude for companies that match your customer profile, the right people at each, and verified work emails, using Ravn through the MCP connector..](https://askravn.com/use-cases/build-prospect-list)
- [Check a number is a real mobile before textingNormalise numbers to E.164 and read the number-plan line type with validate_phone, then confirm the live carrier and real line type with phone_to_carrier..](https://askravn.com/use-cases/check-phone-before-texting)
- [Clean and dedupe CRM contact dataExport your CRM contacts, dedupe on email, verify what is left, fill missing company fields and import the cleaned file back, with the Ravn CLI..](https://askravn.com/use-cases/clean-crm-data)
- [Find decision makers at target accountsTurn target company domains into named decision makers with titles and work emails, using people search on your own provider key and a verified email finder..](https://askravn.com/use-cases/find-decision-makers)
- [Identify companies visiting your websiteMatch visitor IPv4 addresses from your logs to the organisation that owns the network with ip_to_company.](https://askravn.com/use-cases/identify-website-visitors)
- [Reduce email bounce rateCut hard bounces by verifying before every send, dropping D and F grades, sending to catch-all addresses with care and re-checking lists that have gone stale..](https://askravn.com/use-cases/reduce-bounce-rate)
- [Account research with ClaudeHave Claude read a company website, pull its firmographics and find the right people with scrape_website, domain_to_company and search_people, in one brief..](https://askravn.com/use-cases/research-accounts-with-claude)
- [Verify an email list before sendingCheck every address on a list before a campaign: run the CSV through validate_email, keep the A and B grades, and decide on catch-all addresses yourself..](https://askravn.com/use-cases/verify-email-list)
