Skip to content

Verify your Intercom contacts before you send

Integration CRM, support and community

Intercom email verification in three steps: export your users and leads, verify the file in PricklyMails, then archive the addresses to remove.

There is no native Intercom connector: you export the list, PricklyMails verifies it, and you bring the result back into Intercom. New addresses can go through the API before they ever reach Intercom.

Verify for free

Step by step

Clean your list in three steps

  1. In Intercom

    Export your users and leads from Intercom

    Before you start

    Exporting contacts requires the Can export lead, user, company data permission in Intercom.

    1. Go to Contacts and click the All Users tab at the top of the people list.
    2. Select the users to export.
    3. Click the More dropdown, then select Export users.
    4. In the dialog box, choose to export only the columns displayed or all columns, then click export these users.
    5. Open the email Intercom sends you and download the CSV from its link, which expires after one hour.
    6. To verify your leads too, export them the same way from the All Leads tab.

    Tip

    The file holds the columns the list displays, or all of them: pick fewer columns from the dropdown menu at the top right of the list before exporting. PricklyMails only needs the addresses, so keep the email column alone in a spreadsheet before moving on.

  2. In PricklyMails

    Verify the file in PricklyMails

    1. In the dashboard, open Batches and click New batch.
    2. Drop the file you exported from Intercom: a .csv or .txt with one address per line, no header row and no quotes. A header row would count as an address in the estimate, though it is never billed, and a quoted address would not be verified: the report lists both as malformed. You can also paste the list.
    3. The dashboard counts the addresses and shows the estimated cost in tokens before anything is sent, then you click Submit batch. A batch holds at least 20 addresses, and your plan sets the largest list it can hold.
    4. The list is verified in the background. Once the batch is done, open it and click Download report: you get a CSV with a row for each address of your file, giving its verdict, its reason, its score and its recommendation, with the dashboard's labels.

    Note

    Download the report from the browser that sent the list: that browser is what keeps the addresses, for the 16 most recent batches at most. Our servers, in Germany, only keep a one-way fingerprint of each one.
    What the report says

    Every address gets a recommendation: the action to take. The report writes it with the dashboard's label; the API returns a short form of it.

    Send
    The address is valid, or hosted by a large provider that accepts every address without confirming any. Send as usual.
    Review
    A domain that accepts any address (catch-all), a generic address such as contact@, a full mailbox, or a server that never answered, or refused to. Take a look before you send.
    Remove
    The address does not exist, its domain cannot receive mail, or it is disposable, mistyped or malformed. Take it out.

    Note

    A malformed address is never verified: the batch counts it under "Malformed addresses", and the report still lists it, with the verdict "Invalid", the reason "Malformed address" and the recommendation "Remove", so you take it out of Intercom with the others. A duplicate, counted under "Duplicates removed", appears only once.

    Behind each recommendation sit a verdict (Valid, Risky, Invalid or Not verifiable), a reason and a score from 0 to 100, each in its own column of the report. When a server never answers, the address comes back "Not verifiable" and the checks that got no answer are refunded.

  3. In Intercom

    Bring the result back into Intercom

    Open the report in a spreadsheet and filter the Recommendation column.

    Remove

    They get archived: Intercom takes them out of your contact lists and statistics, and brings back any who return to your site or app.

    Intercom's help suggests archiving the contacts who hard bounced. Do the same with the addresses to remove, before they bounce: a CSV file tags them in your people list without creating any contact.

    1. Copy them into a new CSV file, under an Email header, and save it under a plain name, without hyphens or other symbols.
    2. In Intercom, go to Contacts then All Users.
    3. Click + Add filter, then Filter audience from CSV.
    4. Drag and drop your file, then click Upload.
    5. Check that the Matching attributes tag matches your Email header.
    6. Enter a tag name, for example to-remove, then click the tick icon to create the tag.
    7. Wait for the email confirming that the tag was created from your CSV: at peak times, tagging can take a few hours.
    8. Click + Add filter and filter the list on Tag is to-remove.
    9. Select the users the filter shows, click the More dropdown, then select Archive users.
    10. Open the All Leads tab and archive the tagged leads the same way.
    Review

    They deserve a look before your next email. To find them in Intercom, tag them the same way with Filter audience from CSV, under a tag of their own, without archiving them.

    Send

    They stay in Intercom: nothing to do.

    Warning

    Archived contacts can no longer be exported, and Intercom's help advises exporting them first: keep the file from the first step as your backup.

    Note

    Filter audience from CSV requires the Can manage tags permission.

Verify each address before it reaches Intercom

Does your sign-up flow or backend create contacts in Intercom through its API, with the Create contact (opens in a new tab) call? Ask PricklyMails first. If the recommendation is remove, don't create the contact.

One call starts the verification and already flags a likely typo, a second one reads the verdict. Depending on your plan, a signed webhook can also send it to you as soon as it's ready.

Request
curl -s https://api.pricklymails.com/api/verify \
  -H "Authorization: Bearer pm_live_9f3a..." \
  -H "Content-Type: application/json" \
  -d '{ "email": "ana.silva@gmail.con" }' \
  | jq '{job_uuid, suggestion}'
Response
{
  "job_uuid": "8f1c2a9e-4b7d-4e2a-9c61-3d5f0b7a2e18",
  "suggestion": "ana.silva@gmail.com"
}
Request
curl -s https://api.pricklymails.com/api/verify/$JOB_UUID \
  -H "Authorization: Bearer pm_live_9f3a..." \
  | jq '.verifications[0] | {status, reason, score, recommendation}'
Response
{
  "status": "invalid",
  "reason": "no_mx_records",
  "score": 0,
  "recommendation": "remove"
}
Read the API docs

Frequently asked questions

Intercom already stops emailing hard bounces, so why verify first?

Intercom's help center says an address that hard bounces is removed from the audience of your later email messages: by then the email has gone out and the bounce has counted. It warns that repeated sends to invalid addresses tarnish your brand's reputation and get Intercom's sending domains blocked, and that Intercom does not validate addresses on your behalf. It advises cleaning old, disengaged users out of your list every 6 months, and validating addresses at sign-up, a third-party service being one way to do it.

SourceIntercom's official help center

Should I archive, unsubscribe or delete the addresses to remove?

Intercom's help center suggests archiving contacts who hard bounced. An archived contact leaves your lists and statistics, its conversations and tickets are suspended, it can no longer be exported, and it comes back with all its data if it returns to your site or app. Unsubscribing keeps the contact in view and only stops your bulk emails: a CSV import with an unsubscribed_from_emails column set to true does it for users in bulk. Deleting, from Settings then Data then People then Delete Data by user ID or email, erases the contact and its conversations for good; within 7 days, Intercom's support can still retrieve it.

Does it matter whether an address belongs to a user or a lead?

It does when you import. A lead is someone who started a conversation or replied to one of your messages without signing up; Intercom keeps leads and users apart even when they share an address, and its help center warns that a CSV import can then create duplicates. That is why the steps above use Filter audience from CSV: it tags existing users and leads alike and never creates a contact. A lead becomes a user once they sign up or log in.

Can I email an address that hard bounced in Intercom again?

Not on your own. Intercom stops sending to it, and its Has hard bounced attribute is read-only, even through the API. If you can confirm the address is valid, with a validation service for example, Intercom's help center has you ask its support team to remove it from the bounce list; an address that bounced as nonexistent (codes 551 and 553) needs that confirmation first. The attribute itself may stay set even once sending works again. Verifying the address first tells you whether the request is worth making.

SourceIntercom's official help center

Does PricklyMails connect to Intercom directly?

No, there is no native connector: you go through a file export, as above. You can also call the PricklyMails API from your own code before an address reaches Intercom.

These trademarks belong to their respective owners. Naming them implies no partnership.

Check your list before your next send.

1,000 tokens free when you sign up, no credit card. After that, you only pay for answers.