Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2882,6 +2882,19 @@ export function ElevenLabsIcon(props: SVGProps<SVGSVGElement>) {
)
}

export function AnymailFinderIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='-1 -1 40 40' fill='none'>
<path
fillRule='evenodd'
clipRule='evenodd'
d='M0.914602 12.1473C0.914602 12.1473 13.8811 21.2685 19.0491 22.5118C16.5611 25.4521 9.66107 31.2255 9.75306 31.167C17.1059 26.8151 32.5413 13.7506 32.5413 13.7506C33.02 13.4454 33.5147 13.6719 33.6455 14.2523L37.3308 30.6191C37.4615 31.1995 37.0496 31.7654 36.4095 31.8833L6.78525 37.3397C6.1457 37.4575 5.47651 36.8836 5.29052 36.0576L0.0463848 12.7683C-0.13958 11.9425 0.250498 11.6686 0.914602 12.1473ZM2.52542 9.77466C2.52542 9.77466 19.3996 -0.381419 21.4381 0.011091C23.428 0.394256 31.1593 11.1758 31.5264 11.689L31.5399 11.7079C31.8475 12.0512 31.6451 12.3014 31.0874 12.2682L2.42364 10.571C1.86514 10.5381 1.91192 10.1802 2.52542 9.77466Z'
fill='currentColor'
/>
</svg>
)
}

export function FindymailIcon(props: SVGProps<SVGSVGElement>) {
const id = useId()
const gradient0 = `findymail_paint0_${id}`
Expand Down
2 changes: 2 additions & 0 deletions apps/docs/components/ui/icon-mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import {
AirweaveIcon,
AlgoliaIcon,
AmplitudeIcon,
AnymailFinderIcon,
ApifyIcon,
ApiIcon,
ApolloIcon,
Expand Down Expand Up @@ -328,6 +329,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
airweave: AirweaveIcon,
algolia: AlgoliaIcon,
amplitude: AmplitudeIcon,
anymailfinder: AnymailFinderIcon,
api: ApiIcon,
api_trigger: ApiIcon,
apify: ApifyIcon,
Expand Down
157 changes: 157 additions & 0 deletions apps/docs/content/docs/integrations/anymailfinder.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
---
title: Anymail Finder
description: Find and verify B2B work emails, paying only for verified results
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard
type="anymailfinder"
color="#0E2240"
/>

{/* MANUAL-CONTENT-START:intro */}
[Anymail Finder](https://anymailfinder.com/) is a B2B email finder and verifier. Every address it returns from a find was verified in real time before the response, catch-all domains included, and a find is charged only when it returns a verified email.

With the Anymail Finder block, you can:

- **Find a person's work email**: from their full name and company domain or name, or from their LinkedIn profile URL alone.
- **Find a decision maker**: name a company and a department (CEO, finance, HR, sales and so on) and get one person back with their title, LinkedIn URL and verified email, when you do not know who to look for.
- **List emails at a company**: up to 20 verified addresses at a company, generic mailboxes and named employees, filtered by type.
- **Verify addresses you already have**: a live check that returns valid, invalid or risky, including on catch-all domains.
- **Check your balance**: read the remaining credits on the account.

To connect, create an API key under Settings, API in your Anymail Finder account and paste it into the block, or add it as a workspace BYOK key. Finds cost 1 credit on a verified hit (2 for a decision maker), verifications 0.2 credits each; misses and repeats of the same search within 30 days are free, and every response states the exact charge in `credits_charged`.

In Sim, the Anymail Finder block lets your agents fill in missing emails on prospect tables, find the right contact at a target account, clean a list before an outbound send, and enrich CRM records with addresses that have already been verified.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate Anymail Finder to find verified work emails from a name and company or a LinkedIn URL, find the decision maker in a department at a company, list verified emails at a company, verify addresses you already have, and check your credit balance. A find is charged only when it returns a verified email.



## Actions

### Anymail Finder Find Person Email

Find a person's verified work email from their name and company domain or name, or from their LinkedIn URL alone. Charges 1 credit only when a verified email is found.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `full_name` | string | No | Person's full name \(e.g., 'Satya Nadella'\). Required together with domain or company_name unless linkedin_url is given |
| `domain` | string | No | Company domain \(e.g., microsoft.com\). Preferred over company_name |
| `company_name` | string | No | Company name \(e.g., Microsoft\). Used only when domain is not provided |
| `linkedin_url` | string | No | Person's LinkedIn profile URL. Can be sent on its own, or together with the name to refine the match |
| `apiKey` | string | Yes | Anymail Finder API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `email` | string | Email address found, including risky ones that could not be verified |
| `valid_email` | string | The email address only when email_status is valid; the one to send to |
| `email_status` | string | valid, risky, not_found or blacklisted |
| `mx_domain` | string | Mail provider of the domain \(e.g., google.com, outlook.com\) |
| `mx_host` | string | Primary MX hostname of the domain |
| `person_full_name` | string | Matched full name |
| `person_company_name` | string | Company name, when a LinkedIn profile was involved |
| `person_job_title` | string | Job title, when a LinkedIn profile was involved |
| `credits_charged` | number | Credits charged for this call \(1 on a verified hit, 0 otherwise\) |

### Anymail Finder Find Decision Maker Email

Find the name, job title and verified email of a decision maker in a given department at a company, when you do not know who to look for. Charges 2 credits only when a verified email is found.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | No | Company domain \(e.g., microsoft.com\). Preferred over company_name |
| `company_name` | string | No | Company name \(e.g., Microsoft\). Used only when domain is not provided |
| `decision_maker_category` | array | Yes | One to five departments, tried in order until a verified email is found: ceo, engineering, finance, hr, it, logistics, marketing, operations, buyer, sales \(plus any custom categories on the account\) |
| `apiKey` | string | Yes | Anymail Finder API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `email` | string | Email address found |
| `valid_email` | string | The email address only when email_status is valid; the one to send to |
| `email_status` | string | valid, not_found or blacklisted |
| `decision_maker_category` | string | The requested category the person was found in |
| `person_full_name` | string | Full name |
| `person_first_name` | string | First name |
| `person_last_name` | string | Last name |
| `person_job_title` | string | Job title |
| `person_linkedin_url` | string | LinkedIn profile URL |
| `mx_domain` | string | Mail provider of the domain \(e.g., google.com, outlook.com\) |
| `mx_host` | string | Primary MX hostname of the domain |
| `credits_charged` | number | Credits charged for this call \(2 on a verified hit, 0 otherwise\) |

### Anymail Finder Find Company Emails

List up to 20 verified email addresses at a company, generic ones like contact@ and individual employees. Charges 1 credit for the whole list, only when at least one address is found.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `domain` | string | No | Company domain \(e.g., microsoft.com\). Preferred over company_name |
| `company_name` | string | No | Company name \(e.g., Microsoft\). Used only when domain is not provided |
| `email_type` | string | No | 'any' \(default\) returns both kinds, 'generic' only role addresses like info@ or sales@, 'personal' only individual employees' work addresses |
| `apiKey` | string | Yes | Anymail Finder API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `emails` | array | Email addresses found at the company \(up to 20\) |
| `valid_emails` | array | The verified subset of emails; the ones to send to |
| `email_status` | string | valid, risky, not_found or blacklisted |
| `mx_domain` | string | Mail provider of the domain \(e.g., google.com, outlook.com\) |
| `mx_host` | string | Primary MX hostname of the domain |
| `credits_charged` | number | Credits charged for this call \(1 when verified addresses were found, 0 otherwise\) |

### Anymail Finder Verify Email

Check whether an email address exists and can receive mail, including on catch-all domains. Charges 0.2 credits per check whatever the outcome; repeats within 30 days are free.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `email` | string | Yes | Email address to verify \(e.g., john@example.com\) |
| `apiKey` | string | Yes | Anymail Finder API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `email_status` | string | valid \(deliverable\), invalid \(does not exist or does not accept mail\) or risky \(could not be determined\) |
| `mx_domain` | string | Mail provider of the domain \(e.g., google.com, outlook.com\) |
| `mx_host` | string | Primary MX hostname of the domain |
| `credits_charged` | number | Credits charged for this call \(0.2, or 0 on a 30-day repeat\) |

### Anymail Finder Get Account

Retrieve the remaining credit balance of the authenticated account. Free.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Anymail Finder API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `credits_left` | number | Remaining credits on the account |
| `account_email` | string | Login email of the account owner |


1 change: 1 addition & 0 deletions apps/docs/content/docs/integrations/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"airweave",
"algolia",
"amplitude",
"anymailfinder",
"apify",
"apollo",
"appconfig",
Expand Down
1 change: 1 addition & 0 deletions apps/docs/content/docs/platform/costs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ The BYOK settings page groups providers the same way.
| Hunter | Email finder, verification, and domain search |
| People Data Labs | Person and company enrichment, search, and identity |
| Findymail | Email finder, verification, and phone lookup |
| Anymail Finder | Verified email finder, decision maker lookup, and verification |
| Prospeo | Person and company enrichment and search |
| Wiza | Prospect search, individual reveal, and company enrichment |
| Datagma | Email, phone, person, and company enrichment |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { useParams } from 'next/navigation'
import { useQueryState } from 'nuqs'
import {
AnthropicIcon,
AnymailFinderIcon,
BasetenIcon,
BrandfetchIcon,
CohereIcon,
Expand Down Expand Up @@ -279,6 +280,13 @@ const PROVIDERS: (BYOKManagerProvider & { id: BYOKProviderId })[] = [
description: 'Email finder, verification, and phone lookup',
placeholder: 'Enter your Findymail API key',
},
{
id: 'anymailfinder',
name: 'Anymail Finder',
icon: AnymailFinderIcon,
description: 'Verified email finder, decision maker lookup, and verification',
placeholder: 'Enter your Anymail Finder API key',
},
{
id: 'prospeo',
name: 'Prospeo',
Expand Down Expand Up @@ -399,6 +407,7 @@ const PROVIDER_SECTIONS: BYOKProviderSection[] = [
'hunter',
'peopledatalabs',
'findymail',
'anymailfinder',
'prospeo',
'wiza',
'datagma',
Expand Down
Loading