There are three ways to add leads to a NeuroPage campaign: CSV upload, manual entry, and webhook integration. All three result in the same outcome — leads are queued for personalized page generation.
CSV upload
CSV upload is the most common way to add leads in bulk. It works well for pre-generating pages before an outreach campaign launches, or when your lead source is a list export from a tool without a direct webhook integration.
How to upload
- Open your campaign and click Add leads → Upload CSV
- Drag and drop your CSV file, or click to browse for it
- NeuroPage previews the first few rows and prompts you to map your columns to the standard lead fields
- Review the mapping — column name matching is flexible, so
firstname,first_name, andFirst Nameare all recognized automatically - Click Import leads to start processing
Required and optional fields
| Field | Notes |
|---|---|
linkedin_url | Strongly recommended. Enables full profile enrichment. The most important field for personalization quality. |
email | Required if linkedin_url is absent. At least one of these two must be present. |
first_name | Optional. Improves copy personalization. |
last_name | Optional. Used in copy injection. |
company | Optional. Improves company enrichment and copy framing. |
job_title | Optional. Improves persona classification accuracy. |
At least one of linkedin_url or email must be present in each row. Rows missing both are skipped during import.
After upload
After clicking Import leads, you will see a preview of how many leads were found and a summary of any rows that were skipped (due to missing required fields or duplicate detection). Confirm to complete the import.
Leads are immediately queued for processing. Personalized pages are typically ready within 15–45 seconds per lead. You can monitor status in real time from the campaign's lead list.
Manual entry
Manual entry is for adding individual leads — for example, a high-priority prospect you want to add quickly without preparing a CSV.
- Open your campaign and click Add leads → Add manually
- Fill in the form:
- LinkedIn URL (required, or email as alternative)
- First name
- Last name
- Company
- Job title
- Click Add lead
The lead is immediately queued for processing.
Webhook (Apollo, Amplemarket, Instantly)
If your campaign is connected to an outbound sequencing tool via webhook, leads flow in automatically whenever a contact enters the configured sequence step.
Getting your webhook credentials
- Open your campaign and go to Settings → Lead source
- Select your outbound tool (Apollo, Amplemarket, or Instantly)
- Copy the Webhook URL and Webhook secret
Use these credentials to configure the integration in your tool. For step-by-step instructions, see Integrations.
What happens when a lead arrives via webhook
- NeuroPage receives the lead data from the webhook payload
- The lead is created (or deduplicated if already in the campaign)
- The lead is queued for personalized page generation
- Once the page is ready, NeuroPage sends the personalized URL back to the tool via its API
Lead status lifecycle
After a lead is added (by any method), it moves through the following statuses:
| Status | Meaning |
|---|---|
pending | Lead received, awaiting analysis |
classifying | Persona analysis in progress |
classified | Persona complete, page generation queued |
generating | Copy generation in progress |
rendering | HTML being compiled |
ready | Page is live at the personalized URL |
failed | An error occurred — see the lead detail page for details |
Failed leads can be retried from the lead detail page.
Custom variables
You can pass extra context per lead by adding custom variable columns to your CSV or custom fields to your webhook payload. These variables are injected into the copy generation step and allow for deeper personalization beyond the standard fields.
Defining custom variables
In your campaign wizard (Step 1 — Campaign details), scroll to the Custom variables section and define the variable names you want to use. For example:
pain_point use_case competitor
Using custom variables in a CSV
Add a column with the matching name to your CSV. For example, a CSV with pain_point and use_case columns:
| linkedin_url | first_name | company | pain_point | use_case |
|---|---|---|---|---|
| linkedin.com/in/sarah-chen | Sarah | Acme Corp | slow onboarding | enterprise sales |
| linkedin.com/in/james-k | James | Beta Ltd | no pipeline visibility | outbound scaling |
Using custom variables in a webhook payload
Include the extra fields in the JSON body alongside the standard lead fields:
{
"linkedin_url": "{{contact.linkedin_url}}",
"email": "{{contact.email}}",
"first_name": "{{contact.first_name}}",
"pain_point": "slow onboarding process",
"use_case": "enterprise sales prospecting"
}
Referencing custom variables
Once defined and populated, custom variables are available to the copy generation engine and can be referenced in your campaign context field using double curly brace syntax:
{{pain_point}}
{{use_case}}
{{competitor}}
Custom variables are particularly useful for passing context that cannot be inferred from a LinkedIn profile — for example, information gathered during a discovery call or from intent data tools.