Getting started with your trial
Welcome to Datahubb. Work through the steps in order; each one builds on the last.
Datahubb is a lead-distribution platform: suppliers (your traffic sources) send you leads, a campaign validates and filters them, and buyers purchase them. Everything you build hangs off a campaign, so most of your setup happens there.
Step 1 — Get your bearings on the Dashboard
When you log in you land on the Dashboard. It shows KPI cards — Posted, Accepted, Rejected, and Profit/Revenue — plus trend graphs, your top campaigns, and an activity feed.
On day one every number reads zero. That's expected: the dashboard only fills in once leads start arriving.
One concept to keep in mind: your account is a single workspace (tenant) with its own isolated data, served on your own domain (https://{yourname}.datahubb.io). That domain runs both this portal and the public endpoints suppliers post leads to.
Step 2 — Invite your team and set roles
Datahubb uses role-based access. The three default roles are:
- Admin — full access to everything in your workspace.
- Traffic Source — can submit leads, see conversion data, and manage their own postbacks.
- Buyer — can view leads sold to them and manage their bid settings.
Open Manage Users in the sidebar, add a user, enter an email, and pick a role. The person gets an invite email, clicks the link, sets a password, and they're in.
Important: if you're going to sell to a buyer, create that buyer's user account here first. You can't configure a buyer inside a campaign until its user account exists.
Optional: you can require 2FA for all users in your security settings. Not needed to get started.
Step 3 — Create your first campaign
The campaign editor is a tabbed builder: Overview, Distribution, Response, Traffic Sources, Suppliers, Buyers, Fields, Filters, Integrations. A full setup takes about 15–30 minutes. A built-in guided tour anchors tips to the screen and moves you tab to tab — let it run the first time.
- Go to Campaigns and click + Add.
- The Add Campaign form has only two fields:
- Name — the internal display name you'll see in the campaigns list, dashboard, analytics, and notifications. Name it by what it collects, e.g. "Auto Insurance Brand", so campaigns are easy to tell apart. You can change it anytime.
- Campaign URL — the page hosting the form that collects your leads. It's the campaign-wide fallback destination for your traffic sources (each one can override it with its own page later). Use a full URL, e.g.
https://yoursite.com/auto-quote.
- Click Create — you land on the campaign's Overview tab. Everything else (distribution type, ping/post, fields, buyers, filters) is configured after creating, on the editor tabs. Work through them left to right, then use Save (top right) to persist changes.
Define your Fields (the lead schema)
On the Fields tab, add every piece of data a lead must contain — for example first_name, email, phone, zip_code, state. For each field set the name (the exact key suppliers send in their payload), the type (email, phone, string, integer, date, etc.), and whether it's required. You can add fields one at a time or bulk-import them from a CSV.
Gotcha: fields only apply to new leads. Adding a field later won't backfill leads you've already received.
Step 4 — Add a buyer (who buys your leads)
Open your campaign's Buyers tab and click Add Buyer. Assign the buyer user account you created in Step 2, then configure:
- Buyer Type:
- CPL (Cost Per Lead) — you get paid the moment the lead is delivered.
- CPA (Cost Per Acquisition) — revenue is deferred; the lead sits Pending until the buyer confirms it converted via postback (default 30-day window).
- PPC (Pay Per Call) — paid per qualified call.
- CPC (Cost Per Click) — paid per click conversion.
- Delivery Method:
- Direct Post — one HTTP POST with the full lead.
- Ping/Post — two phases: ping for a bid, then post the lead to the winner. This adds a Ping Configuration section where you set the ping URL and the accept/reject conditions that parse the buyer's response.
- Other options: One-to-One (exclusive), Email Leads, Store Leads.
- Price — the sale price you charge the buyer.
- Optional: Schedule (active days/times), Caps (daily/weekly/monthly volume or budget), and Weight (used by Weighted and Advanced distribution).
Test it before going live: on the buyer edit page use Test Buyer Integration — send a sample payload and inspect the real response to confirm the endpoint is reachable and your accept/reject conditions match.
Gotchas:
- CPA leads correctly show
0.00revenue and a Pending status until the buyer confirms — that's by design, not a bug. - Placeholders in custom headers use single braces
{field_name}.
Step 5 — Add a supplier (who sends you leads)
A supplier is the source that posts leads to you. It authenticates with an API key + supplier ID.
On your campaign's Suppliers tab click Add Supplier. The main choice is the Source:
- Internal — your own hosted landing page. Price and margin are 0 (it's your own traffic). Use this if you want per-affiliate tracking via Traffic Sources.
- External — a third-party publisher who host-and-posts to you. You set the price you pay them, and assign a user who holds the Supplier role.
Save, then click the supplier's name to open it and copy its API Key and Supplier ID — those are the credentials whoever sends leads will use.
Traffic Sources (Internal only): if you want to track individual affiliates under an Internal supplier and pay them revenue share, add them on the Traffic Sources tab. Each gets a Traffic Source ID that affiliates send as the traffic_source value on every lead, plus an optional postback URL so they get notified of sales.
Gotcha: leads always authenticate with the supplier's API key. A traffic source is identified only by the traffic_source value in the payload — it's not a separate credential.
Step 6 — Pick a distribution type
Set this on the campaign's Distribution tab. It decides which buyer gets each lead:
- Waterfall — buyers are tried in a fixed order you drag; the first to accept wins. Simplest option.
- Highest Bidder — all eligible buyers are pinged at once and the highest bid wins. Best for max revenue; needs ping/post buyers.
- Weighted — leads split toward target shares you set (e.g. Buyer A 50%, B 30%, C 20%). Best for honoring volume commitments.
- Advanced — ordered tiers, each with its own sub-strategy and optional payout floor. For mixed setups you grow into.
Beginner pick: start with Waterfall (just order your buyers), or Highest Bidder if you already have bidding buyers.
Gotchas:
- Every mode is single-winner: one lead goes to one buyer per run. There's no "send the same lead to everyone."
- In Advanced, a tier floor of 0 (or empty) means no floor — you need that so zero-bid CPA buyers still qualify.
Step 7 — Send a test lead
Leads come in when a supplier POSTs to your domain — https://{yourname}.datahubb.io/ingest. These are public endpoints authenticated by the API key + supplier ID from Step 5 (not your portal login). Every payload must include a valid ip_address and user_agent.
Two safe ways to test without touching real money:
is_test: "true"— skips validation and dedupe checks and sells to a dummy Test Buyer for a random amount. No ledgers are affected.test_buyer_id— runs a real distribution against one specific buyer and returns its filter logs, ping/post steps, and final price. This is what the in-app buyer test panel uses. Don't combine it withis_test.
The response comes back with a status (ACCEPTED / PENDING / REJECTED / DUPLICATED / ERROR), a lead_id, a reason, and the payout. Every attempt is captured in Ingest Logs on the lead's detail page, so you can see exactly what happened.
Gotchas:
- "Invalid API key" → recheck or regenerate it in supplier settings.
- "Required field missing" → the payload is missing a field you marked required on the Fields tab.
Step 8 — Add filters and duplicate checking
Filters accept or reject leads by field value, at four levels: Global, Supplier, Buyer, and Traffic Source. On the Filters tab, add a rule with a field, a condition, value(s), and an output of Accept or Reject.
Rules run top to bottom and stop at the first match, so order matters — put your most specific rules first and end with a catch-all fallback. Use the built-in Rule Analyzer to catch problems like an accept rule with a $0 payout or a missing fallback.
Duplicate checking runs as its own stage — configure the campaign's dupe checker with lookback windows for phone, email, and IP so you don't pay for repeats.
Gotcha: condition names are literal and case-sensitive (for example it's HAS ONE OF, not IN).
Step 9 — Watch your results
- Dashboard — daily KPIs at a glance.
- Analytics — multi-campaign performance with per-buyer, per-supplier, and per-traffic-source breakdowns.
- Leads — each lead's full timeline: which buyers saw it and who accepted or rejected it, and why.
The Notifications page (bell icon, top right) is your in-app inbox — All / Unread / Read — where alerts like Lead Sold, Cap Reached, and rejections land in real time. In-app alerts are always on. To control which events reach you and add email or webhook delivery, open a user in Manage Users and edit that user's notification settings.
Gotcha: analytics reads from an hourly rollup, so very fresh numbers can lag a little before they settle.
Before you go live — quick checklist
- Campaign is active with at least one active buyer and one active supplier.
- Every required field the supplier will send exists on the Fields tab.
- Distribution is set — buyer order (Waterfall), weights (Weighted), or tiers (Advanced).
- Buyer endpoint verified with Test Buyer Integration.
- Filters sanity-checked with the Rule Analyzer, including a fallback rule.
- Caps and schedules reviewed so nothing is accidentally throttled or offline.
- Supplier API key + Supplier ID (and Traffic Source IDs) shared with whoever submits leads.
- A test lead sent end to end and confirmed on the lead's timeline.
- Notification settings reviewed in Manage Users (email/webhook delivery for Lead Sold, Cap Reached).
Once every box is checked, point real traffic at your ingest endpoint and watch the Dashboard come to life. Need a hand? Reach out to support any time during your trial.
Comments
No comments yet — be the first to share your thoughts.