# 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.