# Blivz Integration

## Overview

Blivz is a GTM data and prospecting platform built around spreadsheet-style lists. Its **column enrichment system** lets you add new columns powered by external APIs  and Tomba ships as a native integration with three actions: **Find Email**, **Domain Search**, and **Verify Email**.

Enrich any Blivz GTM list with professional email addresses, verification status, and contact data  directly inside the table, without leaving the platform.

## Prerequisites

| Requirement                | Details                                                                                          |
| -------------------------- | ------------------------------------------------------------------------------------------------ |
| **Blivz account**          | Sign up at [lists.blivz.com](https://lists.blivz.com/sign-up)  supports Google and GitHub OAuth |
| **A Blivz list with data** | Your list needs at least a **full name** column and a **domain** column to use Find Email        |
| **Tomba API key**          | Obtain from [app.tomba.io/api](https://app.tomba.io/api)  format: `ta_xxxxxxxxxxxxxxxxxxxxxx`   |

## Quick Setup

<Stepper>

1. **Open your list in Blivz**

    Navigate to **Lists → your list**. Your list should contain columns for Company, Website, Domain, and contact full names.

2. **Click "+ Add Column" → Integrations**

    The column type dropdown appears at the top-right of the table header. Select **Integrations** to open the integration picker.

3. **Select a Tomba action**

    In the "Add Integration" modal, search or scroll to find the Tomba actions. Choose from **Find Email**, **Domain Search**, or **Verify Email**.

4. **Create a connection with your API key**

    Click **+ New Connection**, enter a connection name (e.g. "My Tomba API"), paste your API key, and click **Save**. A "Connection created" toast confirms success.

5. **Map inputs and run**

    Set the required input fields to your list columns. Click **Run on N rows**. Results stream into the new column.

</Stepper>

## Available Actions

### Find Email

Find a professional email address using a full name and company domain.

**Inputs:**

| Input              | Type   | Required | Description                       | Example          |
| ------------------ | ------ | -------- | --------------------------------- | ---------------- |
| **Full Name**      | string | Required | Full name of the person           | `Arjun Lalwani`  |
| **Company Domain** | string | Required | The company domain (not full URL) | `getapproval.ai` |

**Output:**

Returns a JSON object with the following fields:

| Field          | Type          | Description                                                       |
| -------------- | ------------- | ----------------------------------------------------------------- |
| `email`        | string        | The found professional email address                              |
| `first_name`   | string / null | First name extracted from the profile                             |
| `last_name`    | string / null | Last name extracted from the profile                              |
| `full_name`    | string / null | Full name                                                         |
| `website_url`  | string / null | Company website URL                                               |
| `company`      | string / null | Company name                                                      |
| `position`     | string / null | Job title / position                                              |
| `country`      | string / null | Country (ISO code)                                                |
| `score`        | number        | Confidence score 0–100. A score of 100 means very high confidence |
| `verification` | object        | Object with `date` and `status` properties                        |
| `sources`      | array         | Web sources where the email was found                             |

### Domain Search

Find all email addresses associated with a company domain, including company metadata, email patterns, technologies, and social profiles.

**Inputs:**

| Input              | Type   | Required | Description                                  |
| ------------------ | ------ | -------- | -------------------------------------------- |
| **Company Domain** | string | Required | The domain to search (e.g., `stripe.com`)    |
| **Limit**          | number | Optional | Max emails to return. Default: 10. Max: 100. |

**Output:**

```json
{
    "organization": "Stripe",
    "website_url": "https://stripe.com",
    "country": "US",
    "description": "...",
    "industry": "Fintech",
    "twitter": "https://twitter.com/stripe",
    "linkedin": "https://linkedin.com/company/stripe",
    "technologies": ["React", "Go", "AWS"],
    "pattern": "{first}@{domain}",
    "emails": [
        {
            "email": "john@stripe.com",
            "first_name": "John",
            "last_name": "Collison",
            "full_name": "John Collison",
            "position": "Co-Founder",
            "score": 99
        }
    ]
}
```

### Verify Email

Verify if an email address is valid and deliverable, with detailed SMTP check results.

**Inputs:**

| Input             | Type   | Required | Description         |
| ----------------- | ------ | -------- | ------------------- |
| **Email Address** | string | Required | The email to verify |

**Output:**

```json
{
    "email": "john@stripe.com",
    "status": "valid",
    "result": "deliverable",
    "score": 98,
    "regexp": true,
    "gibberish": false,
    "disposable": false,
    "webmail": false,
    "mx_records": true,
    "smtp_server": true,
    "smtp_check": true,
    "accept_all": false,
    "block": false
}
```

**Status Values:**

| Status       | Meaning                                                             |
| ------------ | ------------------------------------------------------------------- |
| `valid`      | Email is deliverable. Safe to send.                                 |
| `invalid`    | Email does not exist or will bounce.                                |
| `accept_all` | Domain accepts all email. Cannot confirm individual deliverability. |
| `unknown`    | Could not determine status (e.g., SMTP timeout).                    |

## Creating a Connection

When adding a Tomba action for the first time, you'll need to create a connection:

1. Click **+ New Connection** in the action panel
2. Enter a **Connection Name** (e.g., "My Tomba API")
3. Paste your **API Key** from [app.tomba.io/api](https://app.tomba.io/api)
4. Click **Save**

Your connection is stored securely and can be reused across all lists and actions.

## Mapping Columns

The column pickers for inputs show a searchable dropdown of all existing columns in your list, with a live preview of the values in the selected column. This lets you verify you're mapping to the correct data before running.

:::tip[Domain format]
Tomba accepts all domain formats  plain domains (`getapproval.ai`), with protocols (`http://`, `https://`), with `www.` prefix, or subdomains. The integration automatically normalizes the input.
:::

## Running on Rows

| Button            | Behavior                                                                                            |
| ----------------- | --------------------------------------------------------------------------------------------------- |
| **Test (1 row)**  | Runs only on the first row. Use this to validate your mapping before running on all rows.           |
| **Run on N rows** | Runs on all rows in the list. Results stream in row by row as they are returned from the Tomba API. |

During execution, the new column is added immediately and results fill in progressively. After completion, a toast confirms the operation.

## Tips & Best Practices

### Chaining Actions

Run **Find Email** first, then add a second **Verify Email** column that maps to the email output of the first column. This gives you both the found email and its verified deliverability status in the same list.

### Using "Only run if"

Enable the **Only run if** checkbox to add a filter condition. For example, only run Find Email if the `full name` column is not empty. This avoids wasting API credits on rows you don't need enriched.

### Handling undefined results

If many rows return `undefined`, check that your **Domain** column contains clean domain values (e.g., `stripe.com` rather than `https://www.stripe.com/payments`).

### Exporting enriched data

Once enrichment is complete, click **Export CSV** to download the full table including all enriched columns.

## Resources

- [Blivz Platform](https://www.blivz.com)
- [Tomba API Documentation](/api)
- [Get your API Key](https://app.tomba.io/api)
