Skip to main content
Leadlovers is a Brazilian marketing-automation platform built around funnels, called machines. Each machine holds landing pages, capture forms, email sequences and the leads moving through them, and the platform also covers tags, custom lead fields, a members area with courses and students, and an optional WhatsApp add-on. Its Web API exposes the lead book, the machine structure, the placement of every lead inside the email sequences, and the account’s plan and quota data.

Configuring Leadlovers as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Leadlovers option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need the Web API token of the Leadlovers account that holds the data. Sign in to Leadlovers, open General settings, go to Account data, click Preferences and copy the Web API token. The token does not expire, is personal to the account, and reaches only that account’s data — so each source needs the token of its own Leadlovers account. The following configurations are available:
  • Web API Token: The Leadlovers Web API token, used to authenticate every API call.
  • Initial sync date: The earliest lead registration date from which records will be synced. It applies to the leads stream only, which is the sole endpoint with a server-side date filter.
Leadlovers answers a rejected token with a generic error and the message “Token inválido”. If the extraction fails on the very first stream, regenerate the token in Preferences and update it here.
Once you’re done, click Next.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
The email_sequences, levels, forms and pages streams request one page per machine, and students and courses request one page per product. On accounts with many machines or products they take proportionally longer, so deselect them if you don’t need the funnel or members-area structure.
The zaplovers_numbers and zaplovers_templates streams depend on the ZapLovers WhatsApp add-on. When the account does not have it, the connector logs a warning and skips those streams instead of failing the run.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Only leads supports incremental sync, by the lead’s registration date. Every other stream is read in full on each run, because the Leadlovers API offers no date filter on those endpoints. Note that a lead edited after it was captured keeps its original registration date, so an incremental leads sync brings new leads but not later edits to old ones — schedule an Additional Full Sync if you need those updates. Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.

Fields by stream

Below you’ll find all available data streams from Leadlovers and their corresponding fields. Lists of objects — a lead’s tags, a product’s courses, a student’s progress, a course’s modules — are delivered as JSON strings.
Identity of the Leadlovers user the Web API token belongs to. One record per source.Key Fields:
  • user_code: Unique identifier of the Leadlovers user
  • user_name: Name of the user
  • user_email: Contact email address registered for the user
  • user_access_email: Email address the user signs in with
  • user_photo: URL of the user’s profile picture
Plan, quota and expiry data for every account tied to the token. Useful to watch how close the account is to its lead limit.Key Fields:
  • user_code: Identifier of the Leadlovers user that owns the account
  • order: Sequence number of the plan or bonus within the account
Plan and quota:
  • plan_name: Commercial name of the contracted plan
  • plan_leads: Maximum number of leads allowed by the plan
  • active_leads: Number of leads currently counted against the plan quota
  • leads: Total number of leads stored in the account
  • purchase: Timestamp the plan or bonus was purchased
  • expiration: Timestamp the plan or bonus expires
  • pointer_plan_or_bonus: Whether the entry refers to the main plan or to a bonus
  • register_type: Internal code describing how the entry was registered
The funnels of the account. Machines are the parent of the sequences, forms and pages streams.Key Fields:
  • machine_code: Unique identifier of the machine
  • machine_name: Name given to the machine
  • machine_image: URL of the cover image displayed for the machine
Metrics:
  • views: Total number of page views accumulated by the machine
  • leads: Total number of leads currently stored in the machine
The account’s lead book. Synced incrementally by registration date, the only server-side date filter the API offers.Key Fields:
  • email: Email address of the lead; the account’s natural key
  • name: Full name of the lead
  • phone: Phone number registered for the lead
  • registration_date: Timestamp the lead was registered, used as the incremental replication key
Profile:
  • birthday: Birth date declared by the lead
  • city: City declared by the lead
  • state: State declared by the lead
  • company: Company the lead is associated with
  • gender: Gender declared by the lead
  • photo: URL of the profile picture associated with the lead
  • score: Engagement score accumulated by the lead
Tags defined in the account, with the number of leads currently carrying each one.Key Fields:
  • id: Unique identifier of the tag
  • title: Display name of the tag
  • count: Number of leads currently carrying this tag
Custom fields added to the account’s lead records.Key Fields:
  • id: Unique identifier of the dynamic field
  • name: Internal name of the field
  • label: Label shown to the visitor when the field is filled in
  • tag: Merge tag used to reference the field in emails and pages
Settings:
  • type: Input type of the field (text, list, date, and so on)
  • status: Whether the field is currently active in the account
  • register_date: Timestamp the dynamic field was created
Selectable options of the dynamic fields that render as dropdowns or radio buttons.Key Fields:
  • id: Unique identifier of the option
  • dynamic_field_id: Identifier of the dynamic field the option belongs to
  • value: Value stored on the lead when the option is selected
Settings:
  • score: Score added to the lead when the option is selected
  • status: Whether the option is currently active
  • register_date: Timestamp the option was created
Email sequences configured inside each machine.Key Fields:
  • machine_code: Identifier of the machine the sequence belongs to
  • sequence_code: Unique identifier of the email sequence inside the machine
  • sequence_name: Name given to the email sequence
The individual emails that make up a sequence, in the order they are sent.Key Fields:
  • machine_code: Identifier of the machine the level belongs to
  • sequence_code: Identifier of the email sequence the level belongs to
  • model_code: Unique identifier of the email model used by the level
Content:
  • sequence: Position of the level within the sequence
  • subject: Subject line of the email sent at this level
Where each lead currently sits inside the account’s email sequences. The API returns the leads nested under each sequence; the connector expands that into one row per lead and sequence, so the table can be joined directly against machines and email_sequences.Key Fields:
  • machine_code: Identifier of the machine holding the sequence
  • machine_name: Name of the machine holding the sequence
  • sequence_code: Identifier of the email sequence the lead is placed in
  • sequence_name: Name of the email sequence the lead is placed in
  • lead_code: Identifier of the lead within the machine
  • lead_id: Global identifier of the lead in the Leadlovers account
Lead data:
  • email: Email address of the lead
  • name: Full name of the lead
  • phone: Phone number of the lead
  • birthday: Birth date declared by the lead
  • photo: URL of the profile picture associated with the lead
  • city: City declared by the lead
  • state: State declared by the lead
  • company: Company the lead is associated with
  • gender: Gender declared by the lead
  • score: Engagement score accumulated by the lead
  • source: Origin the lead was captured from
  • level: Position of the lead inside the email sequence
  • status: Current status of the lead in the sequence
  • message: Free-text message stored with the lead
  • tags: Tags applied to the lead, as a JSON array of objects
  • registration_date: Timestamp the lead was registered in the account
The historical view of the same relationship: sequences a lead has been through, not only the current placement. Same fields as lead_sequences.Key Fields:
  • machine_code: Identifier of the machine holding the sequence
  • sequence_code: Identifier of the email sequence the lead went through
  • lead_code: Identifier of the lead within the machine
Lead data:
  • lead_id, email, name, phone, birthday, photo, city, state, company, gender, score, source, level, status, message, tags, registration_date: same meaning as in the lead_sequences stream
Capture forms configured inside each machine, with their conversion counters.Key Fields:
  • machine_code: Identifier of the machine the form belongs to
  • form_code: Unique identifier of the form
  • form_name: Name given to the form
Metrics and content:
  • views: Number of times the form was displayed
  • conversions: Number of leads captured through the form
  • page_html: Raw HTML snippet used to embed the form on a page
Pages published inside each machine, with their view and conversion counters.Key Fields:
  • page_code: Unique identifier of the page
  • machine_code: Identifier of the machine the page belongs to
  • page_name: Name given to the page
  • path: Public URL path of the page
Metrics and metadata:
  • views: Number of times the page was visited
  • conversions: Number of leads captured on the page
  • page_image: URL of the page’s preview thumbnail
  • page_root: Identifier of the template the page was created from
  • user_id: Identifier of the Leadlovers user that owns the page
Products (members areas) registered in the account.Key Fields:
  • product_id: Unique identifier of the product
  • product_name: Name given to the product
  • product_hash: Opaque hash of the product, used by the students and courses endpoints
  • courses: Courses published inside the product, as a JSON array of objects
Students enrolled in each product’s members area, including their progress per course.Key Fields:
  • product_id: Identifier of the product the student is enrolled in
  • id: Unique identifier of the student
  • name: Full name of the student
  • email: Email address used by the student to sign in
Activity:
  • date_register: Date the student was enrolled
  • last_access: Date of the student’s most recent access to the product
  • photo: URL of the student’s profile picture
  • courses: Per-course progress of the student, including completed classes and completion percentage, as a JSON array of objects
The full structure of each course published inside a product, read one course at a time.Key Fields:
  • id: Unique identifier of the course
  • product_id: Identifier of the product the course belongs to
  • title: Title of the course
  • modules: Modules of the course and the classes inside each one, as a JSON array of objects
Settings:
  • image: URL of the course cover image
  • enabled: Whether the course is currently published to students
  • coach_id: Identifier of the user assigned as the course coach
  • coach_name: Name of the user assigned as the course coach
  • moderation_enabled: Whether student comments on the course are moderated
  • register_date: Timestamp the course was created
WhatsApp sender numbers approved for the account. Requires the ZapLovers add-on.Key Fields:
  • sender_phone: Approved WhatsApp sender number, in the country code + area code + number format
WhatsApp message templates approved for each sender number. Requires the ZapLovers add-on.Key Fields:
  • sender_phone: Sender number the template is approved for
  • id: Unique identifier of the template
  • name: Name of the template
Approval:
  • language: Language code the template was approved in
  • status: Approval status of the template with WhatsApp
  • compoments: Body, header and button components of the template, as a JSON array of objects (spelled as the API returns it)