feat(anymailfinder): add Anymail Finder email finder and verifier integration - #8563
emma-anymailfinder wants to merge 2 commits into
Conversation
…egration Five tools on https://api.anymailfinder.com/v5.1 (find person email by name + company or LinkedIn URL, find decision maker email by department, find company emails, verify email, get account), a block with canvas sentences, templates and skills, and hosted-key support where getCost bills the credits_charged the API reports (0 on a miss or a 30-day repeat) at $0.02 per credit. Adds an anymailfinder provider to the work-email and email-verification enrichment waterfalls, reading valid_email so a risky guess never fills a cell; registers the BYOK provider id, settings entry and costs row; monochrome icon; docs intro; tests for pricing and the cascade provider; regenerated tool metadata, docs, block names, docs manifest and deployment config. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
@emma-anymailfinder is attempting to deploy a commit to the Sim Team on Vercel. A member of the Team first needs to authorize it. |
|
…t a missing charge to zero Only the selected operation's subBlocks are forwarded to the tool, so a company name left in another operation's field cannot leak into a lookup through the shared company_name mapping. The four billable tools pass credits_charged through untouched, so a response without it hits the getCost guard instead of being recorded as free. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Both Greptile findings addressed in the follow-up commit: the block now forwards only the selected operation's fields (the three *_company_name subBlocks share one tool param, so a stale value could leak into another lookup), and the four billable tools pass credits_charged through untouched so a response without it hits the getCost guard instead of being recorded as free. |
Summary
Adds Anymail Finder, a B2B work-email finder and verifier, as an integration: five tools, a block, hosted-key (BYOK) support with API-reported pricing, and provider slots in the Work Email and Email Verification enrichment waterfalls. Footprint mirrors the Findymail integration.
I work at Anymail Finder. Contact: team@anymailfinder.com.
If you want to judge the data quality yourselves before deciding anything, email that address and we will send test credits for a side-by-side run against the providers already in the waterfalls. We also publish a benchmark of email finders and verifiers, with method and domain list, at https://anymailfinder.com/email-finder-benchmark. Anymail Finder has been running since 2015.
If you then want to serve it on Sim's hosted keys, we will set up a funded account; the env vars are
ANYMAILFINDER_API_KEY_COUNTandANYMAILFINDER_API_KEY_1..N.Tools (
apps/sim/tools/anymailfinder/)anymailfinder_find_person_emailPOST /v5.1/find-email/personanymailfinder_find_decision_maker_emailPOST /v5.1/find-email/decision-makeranymailfinder_find_company_emailsPOST /v5.1/find-email/companyanymailfinder_verify_emailPOST /v5.1/verify-emailanymailfinder_get_accountGET /v5.1/accountAuth is the raw key in
Authorization. Misses are HTTP 200 withemail_status: not_found;valid_emailis set only for a verified address, and that is the field the enrichments read, so ariskyguess never fills a cell. Repeats of the same search or verification within 30 days are free. Response shapes come from the published OpenAPI document (https://api.anymailfinder.com/openapi.json) and were checked against live calls.Pricing and throttling (per the add-hosted-key skill)
credits_charged, the exact amount for that call (0 on a miss or a repeat).transformResponsepasses it through andgetCostbillscredits_charged * ANYMAILFINDER_CREDIT_USD, throwing when the field is missing rather than guessing.ANYMAILFINDER_CREDIT_USD = 0.02, from the $199/month 10,000-credit plan ($0.0199/credit), the same basis asFINDYMAIL_CREDIT_USD. Monthly plans run from $29/400 credits to $799/100k; one-time packs from $1,090/100k. Adjust to the plan Sim funds.per_request, 60 requests per minute per workspace, matching Findymail.Block
apps/sim/blocks/blocks/anymailfinder.ts: five operations,canvasPresentationsentences for each, the duplicate-apiKeypattern so the account-balance operation always uses the user's own key,tools.config.paramscoercing the department list from JSON or comma-separated text, seven templates and four skills grounded in the five operations.Enrichments
work-email: ananymailfinderprovider after Findymail (LinkedIn) and before Prospeo. One provider covers name + domain, LinkedIn URL alone, or both;mapOutputreadsvalid_email.email-verification: ananymailfinderprovider after MillionVerifier and before Enrow.validandinvalidare verdicts;riskyfalls through likeunknowndoes for the other verifiers.Both positions are deliberately conservative for a vendor-submitted provider. The cascade runner logs a hit per provider, so once you have a few weeks of hit rate and cost per hit, reorder on your own numbers; we will not argue for a slot we have not earned on your data.
BYOK and docs
BYOKProviderIdunion,byokProviderIdSchema,PROVIDERSand the EnrichmentPROVIDER_SECTIONSinbyok.tsx, a row incosts.mdx.fill='currentColor', blockbgColor#0E2240.integrations/anymailfinder.mdxwith the MANUAL-CONTENT intro; the rest is generator output.Tests
tools/enrichment-hosting.test.ts: a hit bills one credit, a miss and a 30-day repeat bill 0, decision maker 2, company list 1, verification 0.2, and a response withoutcredits_chargedthrows.enrichments/work-email/work-email.test.ts: the provider accepts name + domain, LinkedIn alone, or both, skips with neither, fills fromvalid_emailonly, and treats ariskyresult as a miss.Checks run
bun run tool-metadata:generate,bun run scripts/generate-docs.ts,bun run generate:block-successors,bun run docs-manifest:generate,bun run deployment-config:generate(output committed)bun run check:byok-providers,check:canvas-sentences --block=anymailfinder,check:bare-icons,check:tool-request-boundarybun run integration-catalog:check,docs:check,deployment-config:check,tool-metadata:checkbun run type-check,bun run lint,bunx vitest run tools/enrichment-hosting.test.ts enrichments/🤖 Generated with Claude Code