Product Lead tables

A spreadsheet that enriches itself.

Import a CSV, then let every column do work: ask AI about each row, write formulas in plain English, call any data provider, and check every phone and email. When the list is ready, push it straight into a campaign.

Agency founders, US
NameCompanyEmailEmail providerPhone typeAI fit
Sam RiveraPinecrest Agencysam@pinecrest.coGoogleMobileStrong
Priya NairNorthlane Growthpriya@northlane.ioMicrosoftMobileStrong
Tom BeckerBrightside Mediatom@brightside.deGoogleOfficeMaybe
Lena OrtizHarbor & Colena@harborco.comMicrosoftLandlineWeak
Jonah ReedFieldwork Labsjonah@fieldwork.aiGoogleMobileStrong

Data in one tool, sending in another

Every campaign starts with an export, a mapping and a hope that nothing drifted.

Formulas nobody can read

The one person who wrote the spreadsheet logic is on holiday.

Paying twice for data

A data tool's credits on top of the provider you already pay for.

  1. AI columns, with your prompt

    Ask anything about each row, in your own words. Duckrow can read the lead's LinkedIn profile first, then answer, score or research.

    • Runs in batches, with a live progress bar.
    • Picks up where it stopped if a run is interrupted.
    • Charged only when it returns an answer.
    AI column: Fit“Read their LinkedIn. Is this person likely to run outbound for a team?”
    • Sam RiveraStrong: runs a 12-person agency, hiring SDRs
    • Priya NairStrong: new Head of Growth, 3 weeks in
    • Tom BeckerMaybe: agency, but no outbound team yet
    • Lena OrtizWeak: in-house marketing, no sales team
    412 of 570 rows done
  2. Formulas in plain English

    Describe the column you want and Duckrow writes the formula. Add run-if rules the same way, so a column only runs on the rows that need it.

    • Pull a field out of a provider's response.
    • Clean, combine and pick values across columns.
    • Write rules like "only if the email is empty".
    New column: Formula

    Describe it

    Take the direct email from the provider result, or the work email if there isn't one.

    row.provider?.emails?.find(e => e.type === 'direct')?.email ?? row.work_email

    Runs on every row, in a sandbox.

  3. Any data provider, as a column

    An API column calls any provider with an API, row by row. Chain two with a run-if rule and you have your own waterfall.

    • Use the providers you already pay for.
    • 1 credit a row, only when the call succeeds.
    • Pull any field into its own column.
    Columns, left to right
    1. 1Provider A (API column)Always runsFound for 61%
    2. 2Provider B (API column)Only runs if Provider A is emptyFound 22% more
    3. 3Email check (formula)Picks the first email found83% of rows covered

    Example figures. Your own providers bill you directly.

  4. Who to sell to, found for you

    Find customers reads a company's own website and lists the companies it names as customers, so one good account leads you to the next. Persona fit rates each row Strong, Maybe or Weak against your own description of the buyer.

    • Find customers is charged only when it finds some.
    • Persona fit costs one credit a rated row.
    • Gate paid lookups with "Only if Jev says yes".
    Find customersCharged only when it finds some
    • brightloop.ioHalcyon Health, Mercato, Tidewater Freight
    • fernway.comOakline Bank, Parcelly, Stratus Labs
    • northpeak.coNo customers listed
  5. Push straight into a campaign

    Filter the table and push. The rows land in the campaign that second, with duplicates skipped and opt-outs respected.

    • Phone type and line status on every number.
    • Google or Microsoft provider on every email.
    • Each row shows whether it went in.
    Agency founders, US
    AI fit is StrongPhone type is MobilePush 128 rows to campaign
    • Sam Rivera Pinecrest AgencyPushed
    • Priya Nair Northlane GrowthPushed
    • Jonah Reed Fieldwork LabsAlready in campaign
    • Tom Becker Brightside MediaPushed

    Campaign: Agency founders, Q4

FAQs

Yes. Upload a CSV and map the columns once. You can export any table as a CSV too.

Not today. Bring your own provider through an API column: it bills you for its data, and each successful call uses 1 credit.

On Duckrow's AI account they use credits, and only when they return an answer. With your own OpenAI, Anthropic, Gemini, Meta or Jev key, the AI costs no credits. One exception: Advanced mode researches the company on the web with OpenAI, so unless your own key is an OpenAI key, that step runs on Duckrow's account for about 9 credits a row. The model menu shows it before you run.

Yes. Relation columns link rows across tables.

Keep reading

Your ducks are ready when you are.

Set up your first campaign today.