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โ
- Go to console.cloud.google.com.
- Click New Project, name it LeadHub, and create it.
- Search for Google Sheets API and Enable it.
- Also enable Google Drive API.
Step 2 โ Create OAuth Credentialsโ
- In the Cloud Console, go to APIs & Services โ Credentials.
- Click Create Credentials โ OAuth client ID.
- Set the Application Type to Web application.
- Under Authorized redirect URIs, add:
https://yourdomain.com/oauth/google-sheets/callback - Click Create and copy the Client ID and Client Secret.
Step 3 โ Prepare Your Google Sheetโ
- Create a new Google Sheet (or open an existing one).
- Add column headers in row 1 โ suggested:
ID | First Name | Last Name | Email | Phone | Company | Source | Pipeline | Stage | Score | Created At - Copy the Spreadsheet ID from the URL:
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit
Step 4 โ Configure in LeadHubโ
- Go to Settings โ Integrations โ Google Sheets.
- Fill in:
Field Value Client ID From Step 2 Client Secret From Step 2 Spreadsheet ID From Step 3 Sheet Name The tab name, e.g. Sheet1 - 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โ
- Go to notion.so/my-integrations.
- Click + New integration.
- Give it a name (LeadHub) and select your workspace.
- Copy the Internal Integration Token (starts with
secret_).
Step 2 โ Share Your Database with the Integrationโ
- Open the Notion database where you want leads stored.
- 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โ
- Go to Settings โ Integrations โ Notion.
- Fill in:
Field Value API Token Internal Integration Token from Step 1 Database ID From Step 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โ
- 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
- Enable scopes:
- Open your Airtable base and get the Base ID from the URL:
https://airtable.com/BASE_ID/tblXXX/... - 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โ
- Go to Settings โ Integrations โ Airtable.
- Fill in:
Field Value API Key Personal Access Token from Step 1 Base ID From Step 2 Table Name Exact table name (case-sensitive) - 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 POSTrequests - Accept
Content-Type: application/json - Return a
2xxHTTP status code on success
Step 2 โ Configure in LeadHubโ
- Go to Settings โ Integrations โ Generic Webhook.
- Fill in:
Field Value Webhook URL The full URL of your endpoint Secret Key (Optional) A secret string added as X-LeadHub-Signatureheader - 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, orPATCH - Any required authentication headers (e.g.
Authorization: Bearer YOUR_TOKEN)
Step 2 โ Configure in LeadHubโ
- Go to Settings โ Integrations โ REST API Push.
- Fill in:
Field Value Endpoint URL Full URL of the API endpoint HTTP Method POST, PUT, or PATCH Headers JSON object of headers, e.g. {"Authorization": "Bearer abc123"} - 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โ
| Problem | Solution |
|---|---|
| Google Sheets OAuth error | Ensure 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 mismatch | Field names are case-sensitive โ verify exact names in Airtable |
| Webhook returning 4xx | Check that your endpoint accepts Content-Type: application/json |
| REST API Push not firing | Check the queue cron job โ see Shared Hosting Guide |
| Signature mismatch | Ensure you're computing HMAC-SHA256 over the raw request body |