Skip to main content

Data & Productivity Integrations

Log every lead into a spreadsheet, database, or your own API endpoint. Configure from Settings โ†’ Integrations.


Google Sheetsโ€‹

Append a new row to a Google Sheet for every lead that enters LeadHub.

Step 1 โ€” Create a Google Cloud Projectโ€‹

  1. Go to console.cloud.google.com.
  2. Click New Project, name it LeadHub, and create it.
  3. Search for Google Sheets API and Enable it.
  4. Also enable Google Drive API.

Step 2 โ€” Create OAuth Credentialsโ€‹

  1. In the Cloud Console, go to APIs & Services โ†’ Credentials.
  2. Click Create Credentials โ†’ OAuth client ID.
  3. Set the Application Type to Web application.
  4. Under Authorized redirect URIs, add: https://yourdomain.com/oauth/google-sheets/callback
  5. Click Create and copy the Client ID and Client Secret.

Step 3 โ€” Prepare Your Google Sheetโ€‹

  1. Create a new Google Sheet (or open an existing one).
  2. Add column headers in row 1 โ€” suggested: ID | First Name | Last Name | Email | Phone | Company | Source | Pipeline | Stage | Score | Created At
  3. Copy the Spreadsheet ID from the URL: https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit

Step 4 โ€” Configure in LeadHubโ€‹

  1. Go to Settings โ†’ Integrations โ†’ Google Sheets.
  2. Fill in:
    FieldValue
    Client IDFrom Step 2
    Client SecretFrom Step 2
    Spreadsheet IDFrom Step 3
    Sheet NameThe tab name, e.g. Sheet1
  3. Click Connect with Google to complete the OAuth flow.

Each new lead appends a row with the lead's full details.


Notionโ€‹

Create a new page (database entry) in a Notion database for every lead.

Step 1 โ€” Create a Notion Integrationโ€‹

  1. Go to notion.so/my-integrations.
  2. Click + New integration.
  3. Give it a name (LeadHub) and select your workspace.
  4. Copy the Internal Integration Token (starts with secret_).

Step 2 โ€” Share Your Database with the Integrationโ€‹

  1. Open the Notion database where you want leads stored.
  2. Click Share (top right) โ†’ search for your integration name โ†’ click Invite.

Step 3 โ€” Get Your Database IDโ€‹

From the database URL: https://www.notion.so/yourworkspace/DATABASE_ID?v=...

The Database ID is the 32-character string before the ?.

Step 4 โ€” Configure in LeadHubโ€‹

  1. Go to Settings โ†’ Integrations โ†’ Notion.
  2. Fill in:
    FieldValue
    API TokenInternal Integration Token from Step 1
    Database IDFrom Step 3
  3. Click Save & Test.

LeadHub creates a new page in the database. Ensure your database has properties matching: Name, Email, Phone, Source, Company.


Airtableโ€‹

Add a new record to an Airtable base for every lead.

Step 1 โ€” Get Your API Key and Base/Table Detailsโ€‹

  1. Go to airtable.com/account โ†’ scroll to API section โ†’ generate a Personal Access Token.
    • Enable scopes: data.records:write, schema.bases:read
    • Select the base you want to use
  2. Open your Airtable base and get the Base ID from the URL: https://airtable.com/BASE_ID/tblXXX/...
  3. Note the Table Name (the tab name in your base).

Step 2 โ€” Prepare Your Airtable Tableโ€‹

Ensure the table has fields for: Name, Email, Phone, Source, Company, Pipeline, Stage, Score.

Step 3 โ€” Configure in LeadHubโ€‹

  1. Go to Settings โ†’ Integrations โ†’ Airtable.
  2. Fill in:
    FieldValue
    API KeyPersonal Access Token from Step 1
    Base IDFrom Step 2
    Table NameExact table name (case-sensitive)
  3. Click Save & Test.

Generic Webhookโ€‹

Send lead data to any URL โ€” your own server, a custom integration, a serverless function, or any endpoint that accepts HTTP POST requests.

Step 1 โ€” Prepare Your Endpointโ€‹

Your endpoint must:

  • Accept HTTP POST requests
  • Accept Content-Type: application/json
  • Return a 2xx HTTP status code on success

Step 2 โ€” Configure in LeadHubโ€‹

  1. Go to Settings โ†’ Integrations โ†’ Generic Webhook.
  2. Fill in:
    FieldValue
    Webhook URLThe full URL of your endpoint
    Secret Key(Optional) A secret string added as X-LeadHub-Signature header
  3. Click Save & Test.

Payload Structureโ€‹

{
"event": "lead.created",
"id": "lead_01HXZ3...",
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
"phone": "+1 555 000 1234",
"company": "Acme Corp",
"source": "facebook_lead_ads",
"pipeline": "Sales",
"stage": "New",
"score": 72,
"tags": ["webinar", "hot"],
"custom_fields": {},
"created_at": "2025-06-15T14:23:00Z"
}

Signature Verificationโ€‹

If you set a Secret Key, every request includes the header:

X-LeadHub-Signature: sha256=HMAC_SHA256(secret, payload_body)

Verify this in your endpoint to ensure requests come from LeadHub.


REST API Pushโ€‹

Push lead data to a RESTful API endpoint with configurable HTTP method, headers, and field mapping.

Step 1 โ€” Identify Your API Endpointโ€‹

You need:

  • The full endpoint URL (e.g. https://api.yourapp.com/v1/leads)
  • The HTTP method: POST, PUT, or PATCH
  • Any required authentication headers (e.g. Authorization: Bearer YOUR_TOKEN)

Step 2 โ€” Configure in LeadHubโ€‹

  1. Go to Settings โ†’ Integrations โ†’ REST API Push.
  2. Fill in:
    FieldValue
    Endpoint URLFull URL of the API endpoint
    HTTP MethodPOST, PUT, or PATCH
    HeadersJSON object of headers, e.g. {"Authorization": "Bearer abc123"}
  3. Click Save & Test.

Notesโ€‹

  • LeadHub sends the same JSON payload as the Generic Webhook.
  • Use this integration when you have your own internal API or a custom SaaS API that isn't natively supported.
  • Retries: up to 3 attempts on failure, with exponential backoff.

Troubleshootingโ€‹

ProblemSolution
Google Sheets OAuth errorEnsure the redirect URI matches exactly, including https://
Notion "object not found"The integration is not shared with the database โ€” re-check Step 2
Airtable field mismatchField names are case-sensitive โ€” verify exact names in Airtable
Webhook returning 4xxCheck that your endpoint accepts Content-Type: application/json
REST API Push not firingCheck the queue cron job โ€” see Shared Hosting Guide
Signature mismatchEnsure you're computing HMAC-SHA256 over the raw request body