You don't need a developer to add real-time company signals to your CRM. With Zapier, Make (formerly Integromat), or similar no-code tools, you can automatically enrich new leads with funding data, hiring signals, and growth indicators — in about 30 minutes of setup.

Think about it: every time a new contact lands in your CRM, you currently see a name, an email address, maybe a phone number. That tells you almost nothing about whether this lead is worth your team's time. Is their company growing? Did they just raise a round? Are they hiring aggressively — a sign they're expanding and buying?

Most sales teams either manually research each lead (eating up hours of SDR time) or pay five figures a year for data enrichment platforms that lock them into rigid contracts. There's a faster, cheaper, and far more flexible path: connecting your CRM to BounceWatch's company signal API through a no-code automation tool.

In this guide, you'll build that connection step-by-step — no developer needed, no code to maintain. Whether you're on HubSpot, Salesforce, or Pipedrive, you'll have real-time company intelligence flowing into your pipeline by the end of this article.

What You'll Build

By the end of this guide, you'll have an automated workflow that runs every time a new lead enters your CRM. Here's the flow:

New CRM Contact Created

Extract Company Domain from Email
([email protected] → acmecorp.com)

BounceWatch API Call
(GET /api/v1/company?domain=acmecorp.com)

Update CRM Record
(Company name, industry, funding, employee count, signals)

[Optional] Slack Alert
(If high-value signal detected → notify SDR team)

The result: every new lead in your CRM is automatically enriched with company data and real-time signals. Your SDRs open a contact and immediately see whether the company just raised funding, is on a hiring surge, or has recently expanded into new markets. No tab-switching. No manual research. No waiting for someone from engineering to build an integration.

This same workflow works for retroactive enrichment too — you can run it against your existing database to fill in gaps for thousands of contacts over a weekend.

Prerequisites

Before you start, make sure you have the following ready. None of these require technical expertise:

  • BounceWatch API Key: Sign up at BounceWatch and grab your API key from the dashboard. The free tier includes enough credits to test your workflow and enrich your first few hundred leads. You'll find your key under Settings → API.
  • Zapier Account (or Make): A free Zapier account works for testing. You'll need a paid plan (Starter or higher) for multi-step Zaps in production. If you prefer Make, a free account there also works — we'll cover both.
  • CRM Access: Admin or editor access to your CRM. This guide covers HubSpot, Salesforce, and Pipedrive, but the approach works with any CRM that has a Zapier integration (which is nearly all of them).
  • Custom CRM Fields (optional but recommended): Create custom fields in your CRM for the enriched data — things like "Funding Stage," "Employee Count," "Signal Tags." We'll tell you exactly which fields to create in the setup steps.

Got everything? Let's build.

Method 1: Zapier (Step-by-Step)

Zapier is the most popular no-code automation platform, and it makes this integration straightforward. We'll walk through each step with exact configuration details so you can follow along screen-by-screen.

Step 1 — Trigger: New Contact in Your CRM

Open Zapier and click "Create Zap." For your trigger:

  • App: Choose your CRM (HubSpot, Salesforce, or Pipedrive)
  • Trigger Event:
    • HubSpot: Select "New Contact"
    • Salesforce: Select "New Record" → Object: Lead (or Contact)
    • Pipedrive: Select "New Person"
  • Account: Connect your CRM account (Zapier will walk you through OAuth)
  • Test: Pull in a sample contact. You should see a test record with an email address — that's what we'll use in the next step.

A quick note on trigger choice: you might be tempted to use "New or Updated Contact" instead of just "New Contact." For your first version, stick with new contacts only. Triggering on updates can create loops if your enrichment step itself updates the contact. You can add update-based triggers later once you've added loop-prevention logic (we'll cover that in the advanced section).

Step 2 — Action: Extract Domain from Email

Your CRM stores email addresses, but BounceWatch's API needs a company domain. We need to extract acmecorp.com from [email protected]. Zapier's built-in Formatter tool handles this perfectly.

  • App: Formatter by Zapier
  • Action Event: Text → "Split Text"
  • Input: Select the email field from Step 1 (e.g., {{Contact Email}})
  • Separator: @
  • Segment Index: Second (this grabs everything after the @)

Test this step. You should see the domain portion of the email as the output — something like acmecorp.com.

Important: You'll want to add a filter after this step (or in Step 3) to skip free email domains. If someone signs up with a Gmail, Yahoo, or Outlook address, there's no company domain to enrich. We'll handle this in the troubleshooting section, but for now, keep building — you can add the filter later.

Step 3 — Action: Call the BounceWatch API

This is where the magic happens. We'll use Zapier's built-in Webhooks tool to call BounceWatch's company enrichment API.

  • App: Webhooks by Zapier
  • Action Event: "GET" (not POST — we're requesting data, not sending it)
  • URL: https://api.bouncewatch.com/api/v1/company
  • Query String Params:
    • Key: domain — Value: select the output from Step 2 (the extracted domain)
    • Key: include_signals — Value: true
  • Headers:
    • Key: Authorization — Value: Bearer YOUR_API_KEY_HERE
    • Key: Accept — Value: application/json

Replace YOUR_API_KEY_HERE with your actual BounceWatch API key. Test this step. If the domain exists in our database, you'll see a JSON response with company data: name, industry, employee count, funding information, country, and recent signals.

The response will look something like this:

{
  "company": {
    "name": "Acme Corp",
    "domain": "acmecorp.com",
    "industry": "Enterprise Software",
    "employee_count": 245,
    "country": "United States",
    "funding_stage": "Series B",
    "total_funding_usd": 32000000,
    "founded_year": 2019
  },
  "signals": [
    {
      "type": "recently_funded",
      "title": "Acme Corp raises $18M Series B",
      "date": "2026-02-15",
      "details": {
        "amount": 18000000,
        "round": "Series B"
      }
    },
    {
      "type": "hiring_surge",
      "title": "Acme Corp posted 34 new jobs in 14 days",
      "date": "2026-03-01"
    }
  ],
  "signal_count": 2
}

Zapier will automatically parse this JSON into individual fields you can use in the next step. You'll see fields like company__name, company__industry, signals__0__type, and so on.

Step 4 — Action: Update Your CRM Record

Now we write the enriched data back to the CRM contact that triggered the workflow.

  • App: Your CRM (same as Step 1)
  • Action Event:
    • HubSpot: "Update Contact"
    • Salesforce: "Update Record"
    • Pipedrive: "Update Person"
  • Record ID: Use the contact/lead ID from Step 1
  • Field Mapping: Map API response fields to your CRM fields (see the data mapping table below)

For the field mapping, you'll connect Zapier output fields from Step 3 to your CRM custom fields. For example:

  • CRM field "Company Name" ← company__name
  • CRM field "Industry" ← company__industry
  • CRM field "Employee Count" ← company__employee_count
  • CRM field "Funding Stage" ← company__funding_stage
  • CRM field "Total Funding" ← company__total_funding_usd
  • CRM field "Country" ← company__country

For signals, you have a few options. The simplest approach is to concatenate the signal types into a tag or text field: use another Formatter step to join signals__type values with commas, then store the result in a "Signal Tags" custom field. Alternatively, you can add the full signal details as a CRM note or activity — this gives your reps more context when they open the contact.

Step 5 — Optional: Slack Notification for High-Value Leads

This step is optional but incredibly powerful for signal-based outbound teams. When the API returns a high-value signal — like a recent funding round — you want your SDR team to know immediately.

  • Add a Filter Step: Only continue if signals__0__type contains recently_funded OR hiring_surge
  • App: Slack
  • Action Event: "Send Channel Message"
  • Channel: Your sales alerts channel (e.g., #high-value-leads)
  • Message:
🚀 High-Value Lead Alert!

Company: {{company__name}}
Domain: {{company__domain}}
Signal: {{signals__0__title}}
Funding Stage: {{company__funding_stage}}
Employee Count: {{company__employee_count}}

CRM Link: {{contact_url}}

— BounceWatch Auto-Enrichment

Now your SDRs get a Slack ping the moment a well-funded or rapidly growing company enters your pipeline. The lead is already enriched in the CRM — all they have to do is click and start personalizing their outreach.

Turn on your Zap, and you're live. Every new CRM contact will be automatically enriched with company data and signals.

Method 2: Make (Integromat)

If you prefer Make over Zapier — maybe for its visual workflow builder or more generous free tier — the same integration works with a few differences in terminology and setup. Here's the Make-specific approach:

Create a new Scenario in Make and add these modules:

Module 1: CRM Trigger

  • Search for your CRM app (HubSpot, Salesforce, Pipedrive)
  • Select the "Watch New Contacts" (HubSpot), "Watch Records" (Salesforce), or "Watch Persons" (Pipedrive) trigger
  • Connect your CRM account and configure the polling interval (Make checks for new records at your specified interval, unlike Zapier's instant triggers on some CRMs)

Module 2: Text Parser — Extract Domain

  • Add a Tools → Set Variable module or use the built-in Text Parser → Match Pattern module
  • Pattern: @(.+)$ applied to the email field
  • This captures everything after the @ symbol — your company domain
  • Alternatively, use a simple Text Parser → Split with @ as the delimiter and take the second element

Module 3: HTTP — Call BounceWatch API

  • Add an HTTP → Make a Request module
  • URL: https://api.bouncewatch.com/api/v1/company?domain={{domain}}&include_signals=true
  • Method: GET
  • Headers: Add Authorization: Bearer YOUR_API_KEY and Accept: application/json
  • Parse response: Yes (Make will auto-parse the JSON)

Make's HTTP module is more straightforward than Zapier's Webhooks for simple GET requests. You get the full parsed response as a structured data object that you can map directly in subsequent modules.

Module 4: JSON Parse (if needed)

If Make doesn't auto-parse the response (this depends on the content-type header), add a JSON → Parse JSON module. Feed the HTTP response body into it. The output will be the same structured data — company name, industry, signals array, etc.

Module 5: CRM Update

  • Add your CRM's "Update a Contact" module
  • Map fields exactly as described in the Zapier section above
  • For signals, use Make's Array Aggregator to join signal types into a comma-separated string for your CRM tag field

Module 6 (Optional): Slack or Email Alert

  • Add a Filter between Module 3 and this module: only continue if signals[].type equals "recently_funded" or "hiring_surge"
  • Add a Slack → Send Message module with the same message template

Click "Run once" to test, then activate scheduling. Make's visual canvas makes it easy to see the data flow and debug any field mapping issues — you can click on any connection line to see the actual data passing through.

What Data Gets Added to Your CRM

Here's a complete reference of the fields you can map from BounceWatch's API response to your CRM. Create these as custom fields in your CRM before setting up the automation:

CRM Field (Create This) API Response Field Type Example Value
Company Name company.name Text Acme Corp
Industry company.industry Text / Dropdown Enterprise Software
Employee Count company.employee_count Number 245
Funding Stage company.funding_stage Dropdown Series B
Total Funding (USD) company.total_funding_usd Currency $32,000,000
Country company.country Text / Dropdown United States
Founded Year company.founded_year Number 2019
Signal Tags signals[].type (joined) Multi-select / Tags recently_funded, hiring_surge
Signal Count signal_count Number 2
Last Signal Date signals[0].date Date 2026-03-01
Enrichment Source (Hardcoded) Text BounceWatch API
Enriched At (Timestamp of Zap run) Date/Time 2026-03-21 14:30:00

Pro tip: Adding "Enrichment Source" and "Enriched At" fields helps you track which contacts have already been enriched, prevents duplicate API calls, and lets you measure the enrichment's impact on your pipeline. You can use the "Enriched At" field as a filter in your Zap to skip contacts that were already processed — this is your loop-prevention mechanism if you later switch to "New or Updated Contact" triggers.

Advanced: Signal-Based Alerts

The basic workflow enriches every new contact. But the real power of signal-based selling comes from acting on specific signals in real time. Here's how to set up targeted alerts for your SDR team.

Funding Alert: Recently Funded Companies

In Zapier, add a Filter step after the API call:

  • Condition: signals__0__type Text Contains recently_funded
  • AND: signals__0__details__amount Number Greater Than 5000000

Then add a Slack action that sends to your #deals-above-5m channel:

💰 Big Funding Alert

{{company__name}} just raised ${{signals__0__details__amount}}
Round: {{signals__0__details__round}}
Industry: {{company__industry}}
Employees: {{company__employee_count}}

This lead is in your CRM — reach out within 24 hours.
CRM Link: {{contact_url}}

Companies that just closed a funding round above $5M are actively spending. They're hiring, buying tools, and expanding. Your outreach window is 2-4 weeks — this alert makes sure your team doesn't miss it.

Hiring Surge Alert

Same pattern, different filter:

  • Condition: signals__type contains hiring_surge
  • Action: Slack message to #expansion-signals or email to the account owner

A hiring surge means the company is scaling a team. If they're hiring in your product's domain (e.g., hiring marketers and you sell marketing software), that's a golden opportunity. You can even add a second filter to check if the job titles match your ICP.

Combining Signals for Lead Scoring

For more sophisticated setups, use the signal_count field as a simple lead score. Companies with 3+ active signals are significantly more likely to be in a buying cycle than companies with zero signals. Map signal_count to a "Signal Score" field in your CRM, then build CRM views or reports that filter for high-signal leads. For a deeper dive, check out our guide on signal-based lead scoring with the API.

Advanced: Scheduled Batch Enrichment

What about the thousands of contacts already sitting in your CRM, un-enriched? You don't want to manually trigger a Zap for each one. Here's how to run batch enrichment on a schedule.

Option A: Zapier + Google Sheets

  1. Export your existing CRM contacts to a Google Sheet (most CRMs have a native export). Include columns: Contact ID, Email, Company Domain (if available).
  2. Create a new Zap with trigger: "New Spreadsheet Row in Google Sheets"
  3. Steps 2-4 are identical to the main workflow above — extract domain, call API, update CRM record using the Contact ID
  4. Zapier will process one row at a time. For large batches, this runs over hours — that's fine, it's background processing.

Option B: Zapier Schedule + CRM Filter

  1. Trigger: Schedule by Zapier → Every Day / Every Week
  2. Action: CRM → "Find Contacts" where "Enriched At" is empty (this finds un-enriched contacts)
  3. Loop: Use Zapier's Looping by Zapier to iterate through results
  4. For each contact: Extract domain → API call → Update record

Option B is cleaner because it's self-contained — no Google Sheets export needed. It automatically finds and enriches contacts that haven't been processed yet. Set it to run nightly, and your entire CRM database will be enriched within days.

Option C: Make Scenario with Iterator

Make handles batch processing more naturally than Zapier. Create a Scenario with:

  1. Schedule trigger (daily)
  2. CRM module: Search for contacts where "Enriched At" is empty (limit: 100 per run)
  3. Iterator module: processes each contact individually
  4. HTTP + JSON + CRM Update modules (same as Method 2 above)

Make's iterator is more intuitive than Zapier's looping, and its pricing model (based on operations, not tasks) can be more cost-effective for batch processing.

Rate limit reminder: BounceWatch's API has rate limits depending on your plan. For batch enrichment, add a Sleep module (Make) or use Zapier's built-in throttling to stay within limits. The free tier allows 100 requests per day — enough for a steady drip enrichment. Paid plans go up to 10,000+ daily requests for larger databases. See our enrichment pipeline guide for more on managing rate limits.

Troubleshooting Common Issues

Here are the most common problems people run into when setting up this workflow, and how to fix each one:

1. API Key Errors (401 Unauthorized)

Symptom: The Webhooks step returns a 401 status code.

Fix: Double-check your Authorization header. It must be Bearer YOUR_KEY with a space between "Bearer" and the key. Make sure there are no trailing spaces or line breaks in the key. If you regenerated your key recently, update it in the Zap.

2. Rate Limit Errors (429 Too Many Requests)

Symptom: The API returns a 429 status after several successful calls.

Fix: You've hit your plan's rate limit. For real-time enrichment (one contact at a time), this rarely happens. It's most common during batch enrichment. Add a delay between calls: in Zapier, use the "Delay by Zapier" action (set to 5-10 seconds). In Make, use the Sleep module. If you consistently hit limits, consider upgrading your plan.

3. Empty API Responses (Company Not Found)

Symptom: The API returns successfully but with empty or null company data.

Fix: Not every domain is in our database. Add a Filter step after the API call: only continue to the CRM update if company__name Exists. This prevents the workflow from overwriting existing CRM data with blanks. You can optionally tag these contacts as "Enrichment: No Data" so you know they were processed.

4. Free Email Domains (Gmail, Yahoo, etc.)

Symptom: The API returns irrelevant data for domains like gmail.com or yahoo.com.

Fix: Add a filter after the domain extraction step. In Zapier, use a Filter: domain Does not contain gmail.com AND domain Does not contain yahoo.com AND domain Does not contain hotmail.com AND domain Does not contain outlook.com. In Make, use a Router with a filter condition. A more robust approach is to maintain a Google Sheet with a list of free email providers and check against it — there are over 4,000 free email domains out there.

5. CRM Field Mapping Mismatches

Symptom: Data appears in the wrong CRM fields or fields show as empty.

Fix: Make sure your CRM custom fields match the data type. A common mistake: creating a "Total Funding" field as text instead of currency/number, which causes formatting issues. Another common issue: dropdown fields that expect specific values — if your CRM "Industry" field is a dropdown, the API value must exactly match one of the dropdown options, or the update will silently fail. Use text fields during testing, then switch to structured fields once you've verified the data.

6. Zap Runs But CRM Doesn't Update

Symptom: All steps show as successful in Zapier's history, but the CRM record is unchanged.

Fix: Check the CRM update step's output carefully. Some CRMs require specific identifiers. In HubSpot, make sure you're using vid (contact ID) or email as the lookup. In Salesforce, you need the Record ID. In Pipedrive, you need the Person ID. Also verify that the connected CRM account has write permissions for the fields you're updating.

Start Enriching Your CRM Today

You've just seen how to build a complete, automated CRM enrichment pipeline without writing a single line of code. Every new lead gets company data, funding information, and real-time growth signals — automatically.

Here's what this means for your team:

  • SDRs save 15-30 minutes per lead on manual research
  • Signal-based alerts mean you reach recently funded companies within hours, not weeks
  • Every contact in your CRM has the context your reps need to personalize outreach
  • No engineering dependency — Sales Ops owns and maintains the entire workflow

The entire setup takes about 30 minutes. The free API tier gives you enough credits to test your workflow and enrich your first batch of leads. Once you see the impact on your pipeline, upgrading is a no-brainer.

Get Your Free API Key

Connect your CRM to real-time company signals in 30 minutes — no code required.

Start Free →

Further reading: