# Credits and plans
Source: https://bulknotion.mintlify.app/credits
Use this to work out what a run costs, how much your plan includes, when the balance refills, and what to do when it runs out.
## How credits work
**One page updated costs one credit.** A run over 250 pages costs 250, whether it
was started from the console or from Claude.
Credits are only spent on pages that are actually processed. A run refused before
it starts — not enough credits, another job already running — costs nothing.
## What each plan includes
| | Pages | Refills | Notes |
| -------------- | --------------- | ---------------- | ------------------------------------ |
| **Free trial** | 5 in total | No | Enough to see it work on a few pages |
| **7-Day Pass** | 1,000 in total | No | Expires 7 days after purchase |
| **Lifetime** | 3,000 per month | **Yes, monthly** | Priority support |
The free trial's 5 pages are a one-time total, not monthly. They are there to
prove the tool does what you expect before you pay for it.
Current pricing is on the [pricing page](https://bulknotion.com/#pricing) — it
changes with promotions, so it is not repeated here.
## When Lifetime refills
The monthly allowance resets on the **1st of each month**. Unused pages do not
carry over: an untouched month starts the next one at 3,000, not 6,000.
The console shows your remaining balance and the next reset date. From Claude, ask
for your credits.
## Needing more than 3,000 a month
Lifetime accounts can add capacity:
| Add-on | Effect |
| -------------------- | -------------------------------------------------------------------- |
| **One-time booster** | Pay once, and your monthly allowance becomes 6,000 — **permanently** |
| **Monthly booster** | +3,000 a month for as long as you stay subscribed |
The one-time booster is not a single top-up that gets used up. It raises the
allowance itself, so every month from then on refills to the higher number.
Reach for the monthly booster when you want capacity you can add and drop again,
not as the way to make an increase stick.
Both are available from **Subscription** in the console and both require an active
Lifetime licence. They stack.
## Running out of credits
A run needing more credits than you have is **refused before it starts** — it does
not run partway and stop. Nothing is charged and no page is touched.
Your options:
Add a condition so fewer pages match, and run the rest after the next refill.
Lifetime accounts can top up from **Subscription**.
Lifetime allowances refill on the 1st.
Retrying the same run will not help. The refusal is about the balance, not a
transient failure — the numbers have to change first.
## Refunds
If BulkNotion does not do what you expected, there is a **full refund within 7
days of purchase**. Contact support.
## Next
Run a bulk update.
Fair use, data handling, page limits.
# FAQ
Source: https://bulknotion.mintlify.app/faq
Use this for the questions that come up before buying — what changes, what is kept, fair use, refunds, and data handling.
Connect BulkNotion to your workspace, pick the template, select or filter the
target pages, and run the bulk update. It applies your template to hundreds or
thousands of existing pages in one batch — no manual clicking.
[Quickstart](/quickstart) walks through it.
Yes, and this is the point of it. Notion's native bulk edit only changes property
values like tags, status, or dates. BulkNotion applies a full template to the
**page body**, so you can mass-update the actual content of existing database
items — not just their properties.
Filter the database items you want, choose a template, and process all 1,000 in a
single batch. What takes about three hours by hand finishes in a few minutes.
Your **database rows and their properties are untouched** — names, tags, dates,
relations all stay exactly as they are.
What changes is the page body. **From the console**, Notion's own template
application replaces the existing blocks on a page, and that part cannot be
undone from BulkNotion.
**From Claude** the default is the opposite: existing content stays and the
template is added below it ([more](/mcp/safety)).
Try it on a handful of pages first — the free allowance exists for exactly that.
Yes, and it depends on the plan:
* **Free trial** — 5 pages in total
* **7-Day Pass** — 1,000 pages in total, over 7 days
* **Lifetime** — 3,000 pages per month, refilling on the 1st
Lifetime accounts needing more can add a one-time or monthly booster of 3,000
pages. Full detail on [Credits and plans](/credits).
Yes. Lifetime licences can connect **up to two distinct Notion workspaces over the
life of the account** — enough to cover a personal and a work space.
It exists to stop one licence being shared across an agency's clients. If you
manage workspaces for multiple clients, contact support about an agency
arrangement.
Yes. If the tool doesn't work as expected, there is a **100% refund within 7 days
of purchase**. Try it risk-free.
Page content is read at the moment of processing and is not stored on our servers.
Notion access is scoped by you — on Notion's authorisation screen you choose
exactly which pages and databases BulkNotion may reach, and nothing else is
visible to it. Disconnecting deletes our copy of the token and asks Notion to
revoke it; to be certain on Notion's side too, remove the integration from your
Notion settings as well.
What is kept is the record of each job — which database, which template, how many
pages, whether it succeeded — so your History has something to show.
Yes. BulkNotion has an MCP connector, so you can run bulk updates by asking for
them in a conversation. The same guards apply: you are shown the page count and
credit cost, and nothing runs until you agree.
[Setting up the connector](/mcp/overview)
## Still stuck
Stalled jobs, failed pages, missing databases, empty results.
# BulkNotion
Source: https://bulknotion.mintlify.app/introduction
Start here to understand what BulkNotion changes in Notion and how it differs from Notion's own bulk edit.
## What BulkNotion does
Notion lets you edit many database items at once — but only their **properties**.
Tags, status, dates. The moment you want to change what is *inside* the pages, you
are opening them one at a time.
BulkNotion applies a **Notion template to the body of existing pages**, across a
whole database, in one batch. A thousand pages in a few minutes instead of an
afternoon of clicking.
Pick a database, narrow it down with conditions, choose a template, run it.
Connect BulkNotion to Claude and ask for the same thing in a sentence.
## What it does not do
Your database *rows and their properties* are untouched — names, tags, dates and
relations all stay. It is the page content underneath that changes.
From the **console**, applying a template **replaces that page's body**, which is
how Notion's own template application works. It cannot be undone from BulkNotion.
From **Claude** the default is the other way round: the template is added and the
existing content is kept. [More on that](/mcp/safety).
Run it against a copy first if you are unsure. The console shows you exactly how
many pages will change, and which ones, before anything happens.
## What a run costs
One page updated costs one credit. How many you have depends on your plan, and
every account starts with a small free allowance so you can see it work before
paying.
What each plan includes, when the balance refills, and what happens when you run out.
## Getting going
Authorise BulkNotion against the workspace holding the pages you want to
change. [How connecting works](/notion-connection)
Pick a database, select a handful of pages, apply a template. The free
allowance is enough to prove it out.
Use conditions to target hundreds or thousands at once.
[Quickstart](/quickstart)
Something not behaving? [Troubleshooting](/troubleshooting) covers the common
cases — stalled jobs, failed pages, empty results.
# Using BulkNotion from Claude
Source: https://bulknotion.mintlify.app/mcp/overview
Use this to connect BulkNotion to Claude so you can run bulk updates by asking for them.
BulkNotion has an MCP connector. Connect it once and you can run bulk updates in
conversation — Claude reads your databases, proposes the conditions, shows you the
count and the cost, and waits for your yes.
## The connector URL
```
https://bulknotion.com/api/user/mcp
```
## Connecting Claude
In Claude, go to **Settings → Connectors** and choose **Add custom
connector**.
Use the URL above and confirm.
Sign in with the same Google account you use for BulkNotion, then approve the
access request. Claude will show BulkNotion's tools in your chats from then
on.
The connector acts as **your** account only. It sees your workspaces, your
credits and your jobs — never anyone else's.
## Asking for a bulk update
Pick the **Bulk update Notion pages** prompt and Claude runs the whole sequence:
finds the database, tells you what is in it, proposes conditions, shows the count
and cost, and waits for you before starting.
Or just say what you want:
> Apply my Weekly Review template to everything in Content Calendar that is still
> Not started.
Either way you get the numbers before anything happens.
## What you can ask for
| | |
| ----------------- | ------------------------------------------------------- |
| **Check credits** | "How many pages do I have left this month?" |
| **Explore** | "What can I filter on in my Content Calendar database?" |
| **Preview** | "How many pages are still Not started?" |
| **Run** | "Apply the Weekly Review template to those." |
| **Follow up** | "Is that finished yet?" |
What each one does, and which are read-only.
## Before you run anything
Bulk updates started from Claude spend credits, the same as from the console.
They behave differently in one way: Claude **adds the template to a page and
keeps what was already there**, where the console clears the page first. Read
[what to watch for](/mcp/safety) before your first run — it is short.
## Other MCP clients
The URL works with any client that supports remote MCP servers over OAuth. Add it
as a custom or remote server and sign in the same way; the tools are identical.
## If Claude cannot see the tools
Reconnect the connector. MCP clients cache the tool list, so one connected before
an update may be working from a stale copy.
# What to watch for
Source: https://bulknotion.mintlify.app/mcp/safety
Read this before running a bulk update from Claude — what it costs, how it differs from the console, and the guards that stop it going wrong.
Running a bulk update from a conversation is convenient, which is exactly why it
is worth knowing what the guards are.
## It spends real credits
One credit per page, the same as the console. A run over 400 pages costs 400.
You are always shown the count and the cost before agreeing. If the numbers look
wrong, the condition is wrong — ask for a different one rather than approving it.
## It adds to pages — it does not replace them by default
This is the one real difference from the console, and it is worth knowing before
your first run.
| | What happens to existing page content |
| ----------- | ---------------------------------------- |
| **Console** | Cleared, then the template is applied |
| **Claude** | **Kept.** The template is added below it |
Ask Claude to apply a template and each page ends up with **its old content plus
the template**. If you expected a clean replacement, you will find duplicates.
Say so explicitly if you want the old content gone:
> Apply the template and clear the existing content first.
Clearing is irreversible. Your database rows and properties survive it, but the
content inside those pages does not come back from BulkNotion. Try it on two or
three pages and look at the result in Notion before doing it at scale.
Either way, running twice adds the template twice. Check History before repeating
a run you are unsure about.
## Guards that are always on
**Nothing runs without a preview.** A run has to be based on a selection that was
previewed and shown to you. Claude cannot go straight from "update my database" to
running something.
**The count has to still match.** If pages are added or removed between the
preview and the run, it refuses rather than running over a set you never saw. You
will be shown the new number and asked again.
**One run at a time.** A second run asked for from Claude while one is in flight
is refused. Nothing is charged for the refusal. (The console does not hold you
back this way, so avoid starting a console run over the same pages mid-flight.)
**Not enough credits means it does not start.** It is refused up front rather than
running partway and stopping. Nothing is charged and no page is touched.
## Good habits
"How many pages does that match?" — if the answer surprises you, the
condition is not what you meant.
A preview comes with a few page titles. They are the quickest way to tell
whether the right pages were caught.
Apply to three pages, look at them in Notion, then widen. Cheap insurance on
a template you have not used at scale.
Nothing runs until you agree. A wrong condition costs nothing if you do not
approve it.
## When it refuses
Refusals are not failures to retry around:
| Refusal | What to do |
| --------------------------- | --------------------------------------------------------- |
| Another job running | Wait for it. Ask Claude to check the current job |
| Not enough credits | Narrow the run, add a booster, or wait for the refill |
| Count changed since preview | Preview again and check the new number |
| Too many pages for one run | Narrow the condition — it will not silently do part of it |
None of these charge you, and none of them touch a page.
## Next
Allowances, refills, boosters.
When something has already gone sideways.
# Tools
Source: https://bulknotion.mintlify.app/mcp/tools
Use this to see what BulkNotion exposes to Claude, and which tools change anything.
Nine tools. **Eight of them only read** — the ninth is the one that runs a bulk
update.
## Reading
| Tool | What it does |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `whoami` | Which account this is, its plan, remaining pages, connected workspaces |
| `get_credits` | Remaining pages, plan type, next refill date |
| `list_workspaces` | Your connected Notion workspaces |
| `search_databases` | Finds a database by name |
| `describe_database` | The one that matters: what you can filter on, which templates exist, how many pages, how many credits you have — in one go |
| `preview_selection` | How many pages a condition matches, with a few example titles. Changes nothing |
| `list_jobs` | Your recent runs and their progress |
| `get_job` | One run's status — used to follow a job to completion |
`describe_database` is what lets Claude hold a sensible conversation rather than
interrogating you. Give it a database and it already knows which properties exist,
what values they take, and what templates are available.
## Running
| Tool | What it does |
| ------------------- | --------------------------------------------------------- |
| `start_bulk_update` | Applies a template to every page in a previewed selection |
This is the only tool that changes anything. It spends one credit per page.
By default it **adds** the template to each page and leaves the existing content
in place — unlike the console, which clears the page first. Ask for clearing
explicitly if that is what you want, and know that it cannot be undone.
It will not run from a bare instruction either — it needs a selection you have
previewed and a count you have been shown. See
[What to watch for](/mcp/safety).
## How a run actually goes
`search_databases`, then `describe_database` for the details.
Built from the properties that actually exist, not guessed.
`preview_selection` returns the count, the credits it will cost, and a few
example page titles — so you can tell whether it caught what you meant.
Nothing runs before this.
`start_bulk_update`, then `get_job` until it finishes.
## Selecting specific pages
Conditions are the way to target a lot of pages. For a specific handful, name them
and Claude will pass those instead — up to 100 that way. Past that, a condition is
both easier and more reliable.
## Next
Credits, irreversibility, and the guards that stop surprises.
What a run costs.
# Connecting Notion
Source: https://bulknotion.mintlify.app/notion-connection
Use this when authorising a workspace, granting access to more pages, switching between workspaces, or disconnecting.
## Granting access
BulkNotion connects through Notion's own OAuth. On Notion's authorisation screen
you choose **which pages and databases it may reach** — it sees nothing you do not
select.
Grant it two things:
* the **database** whose pages you want to update
* the **page or database holding your template**
Miss one and it simply will not appear in the console. Re-run the connection from
**Settings** and select it — you are not starting over, just widening what is
shared.
## Adding pages later
Notion access is not permanent-and-fixed. If you create a database next month and
want to run BulkNotion against it, reconnect and include it in the selection.
## More than one workspace
Most accounts use one. Lifetime licences can connect **up to two distinct Notion
workspaces over the life of the account** — enough for a personal and a work
space.
Two is a lifetime total of *distinct* workspaces, not two at a time. It exists to
stop one licence being shared across an agency's clients.
Managing workspaces for multiple clients? Contact support about an agency
arrangement rather than working around this.
When more than one is connected, the console shows a workspace switcher. Databases,
templates and jobs all belong to the workspace you have selected.
## Disconnecting
Disconnect from **Settings**. BulkNotion asks Notion to revoke the token and
deletes its own copy — it is not kept for later. Either way our access ends,
because the token is gone from our side.
If you want to be certain the authorisation is gone on Notion's side too, remove
the BulkNotion integration from your Notion settings as well. Notion occasionally
does not confirm the revocation, and we disconnect you regardless rather than
leaving you stuck.
Your Notion content is unaffected. Pages already updated stay as they are; the
template was applied in Notion, not held by us.
Reconnecting afterwards is the same flow as the first time.
## What BulkNotion stores
Page content is read at the moment of processing and not retained. What is kept is
the record of the job itself — which database, which template, how many pages, and
whether it succeeded — so History has something to show you.
## Next
Run your first bulk update.
Database missing, template list empty, workspace acting up.
# Quickstart
Source: https://bulknotion.mintlify.app/quickstart
Use this the first time you run a bulk update — from connecting Notion through to watching the job finish.
Roughly five minutes, most of it Notion's authorisation screen.
Open the [console](https://bulknotion.com/console) and sign in with Google.
You will be sent to Notion to authorise BulkNotion.
On Notion's screen, **pick the pages and databases you want BulkNotion to
reach**. It only ever sees what you select here. Grant it the database you
intend to update and the page holding your template.
More detail: [Connecting Notion](/notion-connection)
Back in the console, search for the database by name. Recently edited ones
appear first.
If the database has more than one data source, pick the one you mean — the
properties you can filter on come from it.
By default every page in the database is targeted. Add conditions to cut that
down — status, checkbox, select, date, text.
The count updates as you go, so you can see exactly how many pages a
condition catches before committing to it.
Start deliberately small. One condition that matches three pages is a
cheap way to confirm the template does what you expect.
Choose from the templates defined on that database in Notion. If the list is
empty, the database has no templates yet — create one in Notion first.
Before starting you are shown how many pages will change and how many credits
that costs.
Applying a template replaces each page's body, and it cannot be undone from
BulkNotion. Read the count once more before you start.
The job reports progress as it runs. A thousand pages takes a few minutes;
smaller runs finish in seconds. You can leave the page — the run continues,
and **History** shows it when you come back.
## Doing this from Claude instead
The same sequence works as a conversation. Connect the BulkNotion connector, then
ask for what you want — Claude reads the database, proposes conditions, shows you
the count and cost, and waits for your yes before running anything.
One URL, then sign in.
## Next
What a run costs and when your balance refills.
Stalled jobs, failed pages, conditions matching nothing.
# Troubleshooting
Source: https://bulknotion.mintlify.app/troubleshooting
Use this when a run will not start, a job seems stuck, pages failed, or a condition matches nothing.
## A condition matches nothing
The count says **0 pages** for a condition you expected to catch many.
A database with several data sources has different properties on each. Pick
the data source you mean, then rebuild the condition from the properties it
offers.
A select or status condition matches the exact option. `Done` and `done` are
different values in Notion.
Flip the condition — `is not empty` instead of `is empty`, checked instead of
unchecked. If both directions return 0 out of a database you know has pages,
the condition is not being read the way you intend; simplify to one property
and build back up.
## A run will not start
### "Another job is still running"
Runs started **from Claude** wait for each other: one at a time per account, so
two cannot collide on the same pages.
Wait for the current one to finish (**History** shows its progress), then ask
again. Nothing was charged for the refused attempt.
The console does not hold you back this way. If you start a second run there
while one is going, both proceed — so give an in-flight run time to finish before
launching another over the same pages.
### "Not enough credits"
The run needs more credits than you have, so it was refused before touching
anything. Narrow the condition, add a booster, or wait for the monthly refill —
see [Credits and plans](/credits#running-out-of-credits).
Retrying will not change the outcome.
### "The count has changed"
Pages were added to or removed from the database between previewing the run and
starting it. Rather than run over a set you have not seen, BulkNotion refuses and
asks you to look again.
Preview once more, check the new number, and start it.
## A job seems stuck
Progress sits at the same number for a while.
Progress moves in batches, not page by page, so it will pause and then jump.
Roughly four to six pages a second is normal — a thousand-page run takes a few
minutes.
Check again in twenty seconds or so before assuming something is wrong.
A job that has genuinely failed shows as failed there, with a reason.
If it has been much longer than the size suggests, send us the job ID from
History.
## Some pages failed
The job reports how many pages failed alongside how many succeeded. Common
causes:
* **BulkNotion cannot reach the page.** It was not included when you authorised
Notion, or it has since moved. Reconnect and include it —
[Connecting Notion](/notion-connection#adding-pages-later).
* **The page was deleted** between the run starting and reaching it.
* **Notion was rate-limiting.** Large runs occasionally hit this; re-running for
the failed pages usually works.
Successful pages are already updated. Re-running affects only the pages you
select again.
## A database or template is missing
The database does not appear in search, or the template list is empty.
Almost always the Notion authorisation. BulkNotion only sees what you selected on
Notion's screen.
From **Settings**, run the connection again and tick the database — and the
page holding the template.
With more than one workspace connected, make sure the switcher is on the one
holding the database.
The template list comes from templates defined on that database in Notion. If
there are none, create one there first.
## Claude cannot find the tools
Ask it to reconnect the BulkNotion connector. MCP clients cache the tool list, so
a client connected before an update may be working from a stale copy.
More on the connector: [MCP overview](/mcp/overview).
## Still stuck
Contact support with the **job ID** from History if it concerns a specific run.
It is the fastest way for us to see what happened.