Export Notion, HubSpot & Airtable Records to a Dataset avatar

Export Notion, HubSpot & Airtable Records to a Dataset

Under maintenance

Pricing

from $3.50 / 1,000 record exported to your datasets

Go to Apify Store
Export Notion, HubSpot & Airtable Records to a Dataset

Export Notion, HubSpot & Airtable Records to a Dataset

Under maintenance

Pull records out of Notion, HubSpot, Airtable, Supabase or any MCP-connected app into an Apify dataset — with pagination, field selection, flattening for CSV, and incremental runs that only return what's new.

Pricing

from $3.50 / 1,000 record exported to your datasets

Rating

0.0

(0)

Developer

K O

K O

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Your records are stuck inside an app. This Actor pulls them out into an Apify dataset, where the rest of your pipeline can reach them — enrich them, scrape against them, analyse them, or just download a clean CSV.

Point it at a connected app, name the tool that lists records, and run.

What it handles that a manual export doesn't

  • Pagination. Give it the cursor argument and where the next cursor appears, and it walks every page. A repeated cursor stops paging immediately, so a misbehaving server can't loop.
  • Incremental exports. With onlyNew, a scheduled run returns only records that appeared since last time — not the whole table again.
  • Flattening. Nested objects become dot-notation columns (props.name), so the export opens cleanly as a spreadsheet instead of a wall of JSON. Arrays stay intact.
  • Field selection. Export the six columns you need, not all forty.

How it works

  1. Connect your app under Integrations in Apify Console.
  2. Run in list-tools mode to learn the connector's tool names.
  3. Run in pull mode.
{
"source": "<your connector>",
"mode": "pull",
"readTool": "query_database",
"readToolArgs": { "database_id": "abc123" },
"cursorArgName": "start_cursor",
"cursorPath": "next_cursor",
"idField": "id",
"onlyNew": true,
"flatten": true
}

Credentials never reach this Actor. It talks to your app through Apify's MCP proxy, which holds the real tokens.

Examples

Notion database → CSVreadTool: "query_database", flatten: true. Download the dataset as CSV when it finishes.

HubSpot contacts → enrichment pipeline — pull contacts, then feed the dataset into an enrichment Actor and write the results back with the Field Filler.

Nightly incremental Supabase exportreadTool: "select", idField: "id", onlyNew: true, on a schedule. Each run returns only rows added since the last one.

Input

FieldRequiredDescription
sourceyesMCP connector to export from
modepull (default) or list-tools
readToolfor pullTool that lists records
readToolArgsJSON args for the read tool
cursorArgNamePaging argument the tool accepts, e.g. start_cursor
cursorPathWhere the next cursor appears in the response. Dot paths work
maxPagesHard stop on pagination. Default 10
idFieldField uniquely identifying a record
onlyNewOnly export records unseen in previous runs. Needs idField
fieldsAllow-list of fields to keep. Empty means all
flattenNested objects → dot-notation columns
maxItemsCap on records exported. Default 5000

Output

Records land in the dataset in their own shape — exactly the fields the source returned, optionally flattened and filtered. Export as JSON, CSV, Excel or XML, or read it from the API.

Pricing

$5 per 1,000 records exported. With onlyNew on, a scheduled run over an unchanged source exports nothing and costs nothing.

FAQ

Does this see my Notion/HubSpot token? No. Apify's MCP proxy holds credentials and attaches them to outbound calls.

Which apps work? Any service exposed as an MCP connector in your Apify account.

How do I find cursorPath? Run once without pagination and look at the raw result, or use list-tools to read the tool's own schema.

Does it modify anything in the source app? No. This Actor only reads.

Can an AI agent call this? Yes — it's exposed through the Apify MCP server, and it's designed to return a bounded number of records rather than an unbounded dump.