diff --git a/apps/docs/components/icons.tsx b/apps/docs/components/icons.tsx index 2240f76652..765920716b 100644 --- a/apps/docs/components/icons.tsx +++ b/apps/docs/components/icons.tsx @@ -1574,6 +1574,48 @@ export function ExaAIIcon(props: SVGProps) { ) } +export function RB2BIcon(props: SVGProps) { + const id = useId() + const clipId = `rb2b_clip_${id}` + return ( + + + + + + + + + + + + + + + + + + + + + + + + ) +} + export function RedditIcon(props: SVGProps) { return ( = { qdrant: QdrantIcon, quiver: QuiverIcon, railway: RailwayIcon, + rb2b: RB2BIcon, rds: RDSIcon, reddit: RedditIcon, redis: RedisIcon, diff --git a/apps/docs/content/docs/en/tools/meta.json b/apps/docs/content/docs/en/tools/meta.json index 1cd443bed5..83bad8df3b 100644 --- a/apps/docs/content/docs/en/tools/meta.json +++ b/apps/docs/content/docs/en/tools/meta.json @@ -148,6 +148,7 @@ "qdrant", "quiver", "railway", + "rb2b", "rds", "reddit", "redis", diff --git a/apps/docs/content/docs/en/tools/rb2b.mdx b/apps/docs/content/docs/en/tools/rb2b.mdx new file mode 100644 index 0000000000..a8e8bcacdb --- /dev/null +++ b/apps/docs/content/docs/en/tools/rb2b.mdx @@ -0,0 +1,756 @@ +--- +title: RB2B +description: Identify and enrich website visitors +--- + +import { BlockInfoCard } from "@/components/ui/block-info-card" + + + +## Usage Instructions + +Resolve IP addresses, hashed emails, and LinkedIn profiles into person-level identity and B2B enrichment data using the RB2B API. Convert IPs to hashed emails, MAIDs, and company domains; enrich emails into LinkedIn profiles, business profiles, and mobile IDs; and look up emails or phone numbers from LinkedIn. Requires an RB2B API key. + + + +## Tools + +### `rb2b_credit_check` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_ip_to_hem` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_ip_to_maid` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_ip_to_company` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_hem_to_business_profile` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_hem_to_best_linkedin` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_hem_to_linkedin` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_hem_to_maid` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_email_to_activity` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_linkedin_to_business_profile` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_linkedin_to_best_personal_email` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_linkedin_to_personal_email` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_linkedin_to_hashed_emails` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_linkedin_to_mobile_phone` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + +### `rb2b_linkedin_slug_search` + +#### Input + +| Parameter | Type | Required | Description | +| --------- | ---- | -------- | ----------- | + +#### Output + +| Parameter | Type | Description | +| --------- | ---- | ----------- | +| `credits_remaining` | number | API credits remaining \(Credit Check\) | +| `results` | json | Result list for IP/MAID/company/activity lookups | +| `match_count` | number | Number of matches \(Email to Last Active Date\) | +| `credits_charged` | number | Credits charged for the request | +| `credits_exhausted` | boolean | Whether the account is out of credits | +| `linkedin_url` | string | LinkedIn profile URL | +| `linkedin_slug` | string | LinkedIn slug | +| `email` | string | Best personal email | +| `emails` | array | Personal email addresses | +| `mobile_phone` | string | Mobile phone number | +| `business_md5_array` | array | MD5 hashes of business emails | +| `business_sha256_array` | array | SHA-256 hashes of business emails | +| `personal_md5_array` | array | MD5 hashes of personal emails | +| `personal_sha256_array` | array | SHA-256 hashes of personal emails | +| `first_name` | string | First name \(business profile\) | +| `last_name` | string | Last name \(business profile\) | +| `full_name` | string | Full name \(LinkedIn business profile\) | +| `headline` | string | LinkedIn headline | +| `title` | string | Job title | +| `seniority` | string | Seniority level | +| `country` | string | Country | +| `current_industry` | string | Current industry | +| `functional_area` | json | Functional area\(s\) | +| `current_company` | string | Current company name | +| `current_company_url` | string | Current company website | +| `current_company_linkedinurl` | string | Current company LinkedIn URL | +| `company` | json | Company details \(LinkedIn business profile\) | +| `business_email` | string | Business email address | +| `personal_email` | string | Personal email address | +| `personal_emails` | array | Personal emails \(business profile\) | +| `linkedinurl` | string | LinkedIn profile URL \(business profile\) | +| `link_email` | string | Linked business email \(business profile\) | +| `work_email_confirmed` | string | Whether the work email is confirmed | +| `company_employee_count` | string | Company employee count | +| `company_employee_range` | string | Company employee range band | +| `company_revenue_range` | string | Company revenue range band | +| `md5` | string | MD5 hash of the resolved email | + + diff --git a/apps/sim/app/(landing)/integrations/data/icon-mapping.ts b/apps/sim/app/(landing)/integrations/data/icon-mapping.ts index f6dd99d831..6865524c39 100644 --- a/apps/sim/app/(landing)/integrations/data/icon-mapping.ts +++ b/apps/sim/app/(landing)/integrations/data/icon-mapping.ts @@ -151,6 +151,7 @@ import { QdrantIcon, QuiverIcon, RailwayIcon, + RB2BIcon, RDSIcon, RedditIcon, RedisIcon, @@ -360,6 +361,7 @@ export const blockTypeToIconMap: Record = { qdrant: QdrantIcon, quiver: QuiverIcon, railway: RailwayIcon, + rb2b: RB2BIcon, rds: RDSIcon, reddit: RedditIcon, redis: RedisIcon, diff --git a/apps/sim/app/(landing)/integrations/data/integrations.json b/apps/sim/app/(landing)/integrations/data/integrations.json index 8508cd87cf..d859c6c322 100644 --- a/apps/sim/app/(landing)/integrations/data/integrations.json +++ b/apps/sim/app/(landing)/integrations/data/integrations.json @@ -11000,6 +11000,85 @@ "integrationTypes": ["developer-tools"], "tags": ["cloud", "ci-cd"] }, + { + "type": "rb2b", + "slug": "rb2b", + "name": "RB2B", + "description": "Identify and enrich website visitors", + "longDescription": "Resolve IP addresses, hashed emails, and LinkedIn profiles into person-level identity and B2B enrichment data using the RB2B API. Convert IPs to hashed emails, MAIDs, and company domains; enrich emails into LinkedIn profiles, business profiles, and mobile IDs; and look up emails or phone numbers from LinkedIn. Requires an RB2B API key.", + "bgColor": "#51FF00", + "iconName": "RB2BIcon", + "docsUrl": "https://docs.sim.ai/tools/rb2b", + "operations": [ + { + "name": "Credit Check", + "description": "Check the number of API credits remaining on your RB2B account." + }, + { + "name": "IP to HEM", + "description": "Convert an IP address (and optional user agent) into hashed email addresses (HEM) with accuracy scores." + }, + { + "name": "IP to MAID", + "description": "Resolve an IP address (and optional user agent) into mobile advertising identifiers (MAIDs) observed over the last 60 days." + }, + { + "name": "IP to Company", + "description": "Identify the company domains associated with an IP address, ranked by confidence." + }, + { + "name": "Email/HEM to Business Profile", + "description": "Return a full business profile (name, title, company, industry, seniority and more) for an email address or MD5-hashed email." + }, + { + "name": "Email/HEM to Best LinkedIn URL", + "description": "Return the most recently active LinkedIn profile URL for an email address or MD5-hashed email." + }, + { + "name": "Email/HEM to LinkedIn Slug", + "description": "Return the LinkedIn slug (the profile identifier portion of the URL) for an email address or MD5-hashed email." + }, + { + "name": "Email/HEM to MAID", + "description": "Return up to five mobile advertising identifiers (MAIDs) associated with an email address or MD5-hashed email." + }, + { + "name": "Email to Last Active Date", + "description": "Return the last known active date for an email address." + }, + { + "name": "LinkedIn to Business Profile", + "description": "Return a full business profile (name, title, company, emails and more) for a LinkedIn profile." + }, + { + "name": "LinkedIn to Best Personal Email", + "description": "Return the personal email with the most recent known network activity for a LinkedIn profile." + }, + { + "name": "LinkedIn to Personal Email", + "description": "Return the personal email addresses associated with a LinkedIn profile." + }, + { + "name": "LinkedIn to Hashed Emails", + "description": "Return the business and personal hashed emails (MD5 and SHA-256) associated with a LinkedIn profile." + }, + { + "name": "LinkedIn to Mobile Phone", + "description": "Return the mobile phone number with the most recent known network activity for a LinkedIn profile." + }, + { + "name": "LinkedIn Slug Search", + "description": "Find a LinkedIn profile URL from a first name, last name, and company domain." + } + ], + "operationCount": 15, + "triggers": [], + "triggerCount": 0, + "authType": "api-key", + "category": "tools", + "integrationTypes": ["sales", "security"], + "tags": ["enrichment", "identity", "sales-engagement"] + }, { "type": "reddit", "slug": "reddit", diff --git a/apps/sim/blocks/blocks/rb2b.ts b/apps/sim/blocks/blocks/rb2b.ts new file mode 100644 index 0000000000..2bfdb800de --- /dev/null +++ b/apps/sim/blocks/blocks/rb2b.ts @@ -0,0 +1,219 @@ +import { RB2BIcon } from '@/components/icons' +import type { BlockConfig } from '@/blocks/types' +import { AuthMode, IntegrationType } from '@/blocks/types' +import type { Rb2bResponse } from '@/tools/rb2b/types' + +const EMAIL_OPERATIONS = [ + 'hem_to_business_profile', + 'hem_to_best_linkedin', + 'hem_to_linkedin', + 'hem_to_maid', +] + +const LINKEDIN_OPERATIONS = [ + 'linkedin_to_business_profile', + 'linkedin_to_best_personal_email', + 'linkedin_to_personal_email', + 'linkedin_to_hashed_emails', + 'linkedin_to_mobile_phone', +] + +const IP_OPERATIONS = ['ip_to_hem', 'ip_to_maid', 'ip_to_company'] + +export const RB2BBlock: BlockConfig = { + type: 'rb2b', + name: 'RB2B', + description: 'Identify and enrich website visitors', + authMode: AuthMode.ApiKey, + longDescription: + 'Resolve IP addresses, hashed emails, and LinkedIn profiles into person-level identity and B2B enrichment data using the RB2B API. Convert IPs to hashed emails, MAIDs, and company domains; enrich emails into LinkedIn profiles, business profiles, and mobile IDs; and look up emails or phone numbers from LinkedIn. Requires an RB2B API key.', + category: 'tools', + integrationType: IntegrationType.Sales, + tags: ['enrichment', 'identity', 'sales-engagement'], + docsLink: 'https://docs.sim.ai/tools/rb2b', + bgColor: '#51FF00', + icon: RB2BIcon, + subBlocks: [ + { + id: 'operation', + title: 'Operation', + type: 'dropdown', + options: [ + { label: 'Credit Check', id: 'credit_check' }, + { label: 'IP to HEM', id: 'ip_to_hem' }, + { label: 'IP to MAID', id: 'ip_to_maid' }, + { label: 'IP to Company', id: 'ip_to_company' }, + { label: 'Email/HEM to Business Profile', id: 'hem_to_business_profile' }, + { label: 'Email/HEM to Best LinkedIn URL', id: 'hem_to_best_linkedin' }, + { label: 'Email/HEM to LinkedIn Slug', id: 'hem_to_linkedin' }, + { label: 'Email/HEM to MAID', id: 'hem_to_maid' }, + { label: 'Email to Last Active Date', id: 'email_to_activity' }, + { label: 'LinkedIn to Business Profile', id: 'linkedin_to_business_profile' }, + { label: 'LinkedIn to Best Personal Email', id: 'linkedin_to_best_personal_email' }, + { label: 'LinkedIn to Personal Email', id: 'linkedin_to_personal_email' }, + { label: 'LinkedIn to Hashed Emails', id: 'linkedin_to_hashed_emails' }, + { label: 'LinkedIn to Mobile Phone', id: 'linkedin_to_mobile_phone' }, + { label: 'LinkedIn Slug Search', id: 'linkedin_slug_search' }, + ], + value: () => 'ip_to_hem', + }, + { + id: 'ip_address', + title: 'IP Address', + type: 'short-input', + placeholder: 'e.g. 162.192.6.240', + condition: { field: 'operation', value: IP_OPERATIONS }, + required: { field: 'operation', value: IP_OPERATIONS }, + }, + { + id: 'user_agent', + title: 'User Agent', + type: 'short-input', + placeholder: 'Optional user agent string', + condition: { field: 'operation', value: ['ip_to_hem', 'ip_to_maid'] }, + }, + { + id: 'include_sha256', + title: 'Include SHA-256 Hashes', + type: 'switch', + condition: { field: 'operation', value: 'ip_to_hem' }, + }, + { + id: 'email', + title: 'Email or MD5 Hash', + type: 'short-input', + placeholder: 'jane@example.com or an MD5 hash', + condition: { field: 'operation', value: EMAIL_OPERATIONS }, + required: { field: 'operation', value: EMAIL_OPERATIONS }, + }, + { + id: 'emailAddress', + title: 'Email Address', + type: 'short-input', + placeholder: 'jane@example.com', + condition: { field: 'operation', value: 'email_to_activity' }, + required: { field: 'operation', value: 'email_to_activity' }, + }, + { + id: 'linkedin_slug', + title: 'LinkedIn Slug or URL', + type: 'short-input', + placeholder: 'e.g. firstname-lastname or full profile URL', + condition: { field: 'operation', value: LINKEDIN_OPERATIONS }, + required: { field: 'operation', value: LINKEDIN_OPERATIONS }, + }, + { + id: 'first_name', + title: 'First Name', + type: 'short-input', + placeholder: 'Jane', + condition: { field: 'operation', value: 'linkedin_slug_search' }, + required: { field: 'operation', value: 'linkedin_slug_search' }, + }, + { + id: 'last_name', + title: 'Last Name', + type: 'short-input', + placeholder: 'Doe', + condition: { field: 'operation', value: 'linkedin_slug_search' }, + required: { field: 'operation', value: 'linkedin_slug_search' }, + }, + { + id: 'company_domain', + title: 'Company Domain', + type: 'short-input', + placeholder: 'example.com', + condition: { field: 'operation', value: 'linkedin_slug_search' }, + required: { field: 'operation', value: 'linkedin_slug_search' }, + }, + { + id: 'apiKey', + title: 'API Key', + type: 'short-input', + placeholder: 'Enter your RB2B API key', + password: true, + required: true, + }, + ], + tools: { + access: [ + 'rb2b_credit_check', + 'rb2b_ip_to_hem', + 'rb2b_ip_to_maid', + 'rb2b_ip_to_company', + 'rb2b_hem_to_business_profile', + 'rb2b_hem_to_best_linkedin', + 'rb2b_hem_to_linkedin', + 'rb2b_hem_to_maid', + 'rb2b_email_to_activity', + 'rb2b_linkedin_to_business_profile', + 'rb2b_linkedin_to_best_personal_email', + 'rb2b_linkedin_to_personal_email', + 'rb2b_linkedin_to_hashed_emails', + 'rb2b_linkedin_to_mobile_phone', + 'rb2b_linkedin_slug_search', + ], + config: { + tool: (params) => `rb2b_${params.operation}`, + params: (params) => { + const email = params.email ?? params.emailAddress + return email !== undefined ? { email } : {} + }, + }, + }, + inputs: { + operation: { type: 'string', description: 'Operation to perform' }, + apiKey: { type: 'string', description: 'RB2B API key' }, + ip_address: { type: 'string', description: 'IP address to resolve' }, + user_agent: { type: 'string', description: 'Optional user agent string' }, + include_sha256: { type: 'boolean', description: 'Include SHA-256 hashes (IP to HEM)' }, + email: { type: 'string', description: 'Email address or MD5 hash (HEM operations)' }, + emailAddress: { type: 'string', description: 'Email address (Email to Last Active Date)' }, + linkedin_slug: { type: 'string', description: 'LinkedIn profile slug or URL' }, + first_name: { type: 'string', description: 'First name (LinkedIn Slug Search)' }, + last_name: { type: 'string', description: 'Last name (LinkedIn Slug Search)' }, + company_domain: { type: 'string', description: 'Company domain (LinkedIn Slug Search)' }, + }, + outputs: { + credits_remaining: { type: 'number', description: 'API credits remaining (Credit Check)' }, + results: { + type: 'json', + description: 'Result list for IP/MAID/company/activity lookups', + }, + match_count: { type: 'number', description: 'Number of matches (Email to Last Active Date)' }, + credits_charged: { type: 'number', description: 'Credits charged for the request' }, + credits_exhausted: { type: 'boolean', description: 'Whether the account is out of credits' }, + linkedin_url: { type: 'string', description: 'LinkedIn profile URL' }, + linkedin_slug: { type: 'string', description: 'LinkedIn slug' }, + email: { type: 'string', description: 'Best personal email' }, + emails: { type: 'array', description: 'Personal email addresses' }, + mobile_phone: { type: 'string', description: 'Mobile phone number' }, + business_md5_array: { type: 'array', description: 'MD5 hashes of business emails' }, + business_sha256_array: { type: 'array', description: 'SHA-256 hashes of business emails' }, + personal_md5_array: { type: 'array', description: 'MD5 hashes of personal emails' }, + personal_sha256_array: { type: 'array', description: 'SHA-256 hashes of personal emails' }, + first_name: { type: 'string', description: 'First name (business profile)' }, + last_name: { type: 'string', description: 'Last name (business profile)' }, + full_name: { type: 'string', description: 'Full name (LinkedIn business profile)' }, + headline: { type: 'string', description: 'LinkedIn headline' }, + title: { type: 'string', description: 'Job title' }, + seniority: { type: 'string', description: 'Seniority level' }, + country: { type: 'string', description: 'Country' }, + current_industry: { type: 'string', description: 'Current industry' }, + functional_area: { type: 'json', description: 'Functional area(s)' }, + current_company: { type: 'string', description: 'Current company name' }, + current_company_url: { type: 'string', description: 'Current company website' }, + current_company_linkedinurl: { type: 'string', description: 'Current company LinkedIn URL' }, + company: { type: 'json', description: 'Company details (LinkedIn business profile)' }, + business_email: { type: 'string', description: 'Business email address' }, + personal_email: { type: 'string', description: 'Personal email address' }, + personal_emails: { type: 'array', description: 'Personal emails (business profile)' }, + linkedinurl: { type: 'string', description: 'LinkedIn profile URL (business profile)' }, + link_email: { type: 'string', description: 'Linked business email (business profile)' }, + work_email_confirmed: { type: 'string', description: 'Whether the work email is confirmed' }, + company_employee_count: { type: 'string', description: 'Company employee count' }, + company_employee_range: { type: 'string', description: 'Company employee range band' }, + company_revenue_range: { type: 'string', description: 'Company revenue range band' }, + md5: { type: 'string', description: 'MD5 hash of the resolved email' }, + }, +} diff --git a/apps/sim/blocks/registry.ts b/apps/sim/blocks/registry.ts index 7e8659ef67..ace529f98c 100644 --- a/apps/sim/blocks/registry.ts +++ b/apps/sim/blocks/registry.ts @@ -165,6 +165,7 @@ import { PulseBlock, PulseV2Block } from '@/blocks/blocks/pulse' import { QdrantBlock } from '@/blocks/blocks/qdrant' import { QuiverBlock } from '@/blocks/blocks/quiver' import { RailwayBlock } from '@/blocks/blocks/railway' +import { RB2BBlock } from '@/blocks/blocks/rb2b' import { RDSBlock } from '@/blocks/blocks/rds' import { RedditBlock } from '@/blocks/blocks/reddit' import { RedisBlock } from '@/blocks/blocks/redis' @@ -432,6 +433,7 @@ export const registry: Record = { qdrant: QdrantBlock, quiver: QuiverBlock, railway: RailwayBlock, + rb2b: RB2BBlock, rds: RDSBlock, reddit: RedditBlock, redis: RedisBlock, diff --git a/apps/sim/components/icons.tsx b/apps/sim/components/icons.tsx index 2240f76652..73ad59450b 100644 --- a/apps/sim/components/icons.tsx +++ b/apps/sim/components/icons.tsx @@ -1574,6 +1574,48 @@ export function ExaAIIcon(props: SVGProps) { ) } +export function RB2BIcon(props: SVGProps) { + const id = useId() + const clipId = `rb2b_clip_${id}` + return ( + + + + + + + + + + + + + + + + + + + + + + + + ) +} + export function RedditIcon(props: SVGProps) { return ( ) { return (