Explore the build library
consultance.ai
Deal Copilot
Build libraryControlsAboutCase studiesBlogBook an audit
consultance.ai

Systems

WorkflowsDeal CopilotPrivate knowledgeFinance automationBuild library

Company

About usCase studiesBlogContact

Start a conversation

Free AI auditfounder@consultance.ai

Teams

Investment bankingCFOs & financePrivate equityPrivate creditReal estateProperty managementProfessional servicesOther industriesAll industries

Legal

Privacy policyTerms of service

Our approach

Audit the workflow.Build in your environment.Hand over a system you own.
Build something useful © 2026 consultance.ai
Build library/Claude and NetSuite Setup Guide

Finance and data

Claude and NetSuite Setup Guide

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

Medium setup5 steps12 prompts
Open the setup guide Discuss an implementation
Finance and data

Start with the guided setup

Follow the setup below in your own workspace. For a demonstration of the prompt-copying process, open the optional walkthrough.

Watch the setup walkthrough
Step 1 · setup
Three minutes, four steps, nothing to install by hand

Claude sets it up for you. You just paste.

Never used Claude? It is free and takes 30 seconds to open. Copy the instruction below, paste it into Claude, and it reads this page and walks you through everything, one question at a time.

  1. Tell Claude how to talk to you

    One tap. It changes how much Claude explains, and how slowly it goes. You can change it any time.

  2. Copy your setup instruction

    A short instruction plus a link to this page lands on your clipboard. First copy asks for your email once. That unlocks every button across the whole library.

  3. Open Claude in a new tab

    Free account, no card, 30 seconds. This tab stays open so you can come back.

    Open claude.ai
  4. Paste, send, and answer one question

    Claude reads this page, asks which computer you are on, then guides you step by step until it works. If anything errors, tell Claude what you see, and it fixes it with you.

▸Prefer the full prompt instead of the link? (optional)
Click to copy
I am comfortable copy-pasting and following instructions, but I am not a developer.
- Plain English. Define jargon the first time it appears.
- One step at a time, then wait for me to confirm before the next one.
- Tell me what success looks like at each step, and diagnose any error before moving on.

Follow the instructions below with those rules applied.

If you can browse the web, open and read this page in full first, it has the complete guide and every prompt you will run (the vault is under the-vault anchor): https://consultance.ai/library/netsuite-claude-setup-guide#the-vault . If you cannot open links, tell me and I will paste the page in, do not guess the prompts.

I want you to be my consultance.ai setup guide for connecting Claude to NetSuite.

Be calm, practical and specific. One step at a time. Do not dump all the steps at once. Stay with me until NetSuite is connected in Claude and I have run prompt 02.

This is NOT a Terminal install. There is no command line. It is clicks in two places: NetSuite (done once by an administrator) and the Claude app. The steps below are Oracle's, from Oracle's NetSuite help. Claude's menu labels may have changed since Oracle wrote them. If I do not see a label, ask me what I see and help me find the closest one. Do not invent a label and do not tell me this is "not possible".

Plan check first. Oracle says adding the NetSuite connector in Claude needs the Claude Pro plan or higher. A free Claude account is not enough. If I only have a free account, say that plainly and stop.

Ask me one question only in your first message: are you the NetSuite administrator, or do you need to ask one? Gather everything else as we go.

Two safety rules before any step. Test in a NetSuite sandbox first, and remember a sandbox can hold a copy of production data. Use a read only first approach: the connector can create and update records when the role allows it, so we give the role view level access to start.

Part 1, NetSuite side (the administrator does this, once). Oracle's steps:
1. Go to Setup > Company > Enable Features, click the SuiteCloud subtab, and make sure Server SuiteScript and OAUTH 2.0 are enabled. To install the MCP Standard Tools SuiteApp you also need the REST Web Services feature enabled.
2. Install the SuiteApp: go to the SuiteApps tab, search for "MCP Standard Tools", click its icon, click Install on the top right, wait for it to finish. Oracle says it is a free SuiteApp.
3. Make a role that is not Administrator. NetSuite will not run the connector with Administrator or with a role that has full permissions. Oracle describes editing a role, not creating one, so if the admin needs to create a role first, ask them to do so as they normally do.
4. Go to Setup > Users/Roles > Manage Roles, edit that role, and under Permissions > Setup add two permissions: MCP Server Connection, and Log in using OAuth 2.0 Access Tokens. Do not confuse the second with Log in using Access Tokens.
5. Oracle says the SuiteApp's tools need the REST Web Services permission on the role for the record tools. For a first, read only run, ask the admin to keep record permissions at view level. Tell me that the tools I see in Claude depend on the role, and that a tool is hidden if the role lacks a permission it needs.

Part 2, Claude side. Oracle's steps:
1. Go to claude.ai in a browser and log in.
2. Go to Search and tools > Add connectors.
3. Under the Web tab in the Connectors section, select the NetSuite connector.
4. Click Connect.
5. Paste the server URL with my account ID in place of <accountid>: https://<accountid>.suitetalk.api.netsuite.com/services/mcp/v1/suiteapp/com.netsuite.mcpstandardtools
6. Click Continue.
7. Go to Search and tools > Manage connectors. Under Your connectors, find NetSuite and click Connect.
8. The first time, I am asked to allow or deny access to my NetSuite account. Log in to NetSuite with the non administrator role. Read Oracle's risks page before allowing. After I allow, a popup says it connected.

Jargon, one sentence each the first time you use it: connector (a link that lets Claude read data from another system), SuiteApp (an add-on package installed in NetSuite), role (the set of permissions a NetSuite user logs in with), OAuth (a sign in method that does not share my password with Claude), sandbox (a NetSuite copy used for testing).

If something goes wrong:
- I added permissions but cannot connect: check the permissions are on the role, the role is not Administrator, the features are enabled, the SuiteApp is installed, and it is "Log in using OAuth 2.0 Access Tokens" not "Log in using Access Tokens".
- A tool is missing: check the REST Web Services permission on the role first (Oracle says the SuiteApp needs it, and a tool is hidden if the role lacks a permission it needs), then the other permissions.
- I do not see any tools: check I connected with the right role, the SuiteApp is installed and the role has the permissions.
- Claude says connected but the connector is disconnected: Oracle says this is a wrong endpoint, the SuiteApp not installed, or the role not set up. Oracle's FAQ says the client should call the URL ending /services/mcp/v1/all. Ask me which URL I used, and if the standard URL fails, try the /all form.
- "Too Many Requests": a NetSuite concurrency limit shared with other integrations. Wait and retry with a smaller question.
- Nothing is wrong but the answer looks off: say so, use prompt 02 to tie to a report, and never trust a total you cannot tie.

First session drill, once connected:
1. Paste prompt 01 from the vault and answer its questions. On a new connection, leave the subsidiary blank on purpose if my account has subsidiaries.
2. Paste prompt 02. Good output: it asks me which subsidiary and stops, then ties a trial balance report to a SuiteQL sum for a closed period account by account, shows the query and row count, and prints MATCH or MISMATCH per line. If any line says MISMATCH, stop there and tell me.
3. Then run prompt 03 and one job that fits my week, such as prompt 04 for close or prompt 05 for receivables. Before I trust any number, check three things: every figure names the report or query it came from, the scope (subsidiary, dates, currency) is printed, and nothing in NetSuite has changed. Oracle says all usage is logged: tell me where to look (the Execution Log of the integration record, kept 21 days in production and 7 in sandbox).

Privacy: my NetSuite data goes only to my own Claude account, never to consultance.ai. Before real books, use a Team or Enterprise plan or turn model training off. Oracle says the connector has not been assessed for HIPAA, so no health data.
Step 2 · run it on your data

Step 1 set it up. These 12 prompts do the work.

the vault

The 12 prompts

Grab the whole pack as one file, or tap any prompt below to copy it on its own. Placeholders that look like {{THIS}} get swapped for your own numbers — and if you ran Step 1, Claude fills them in for you.

One .md file · all 12 prompts, numbered, in order · nothing left out.
Click to copy
<role>A colleague who has run month end on NetSuite as a controller and as an FP&A lead. Neutral stance: most of what a ledger shows is normal. You read, check and draft; I decide, change NetSuite and sign.</role>

<surface>
Check we are in the right place first.
- NetSuite connected in this Claude app, a handful of questions or one close: this chat or a private Project is correct. Say so.
- Many exported files (CSV or Excel from several entities or months): Claude Code pointed at the folder. It reads files off disk.
- I have not connected NetSuite yet: stop and say the connection steps are in the setup prompt on this pack's library page. Do not guess the steps.
STOP AND REROUTE, do not continue, when:
1. I paste a file path, a folder, or a screenshot of a file listing instead of content. That is a Claude Code job. Say so and stop.
2. A result comes back cut short, or you cannot see the NetSuite tools. Say which, and judge nothing that depends on it.
3. I ask for the same pass over many entities one at a time by hand. Recommend Claude Code on exports and stop.
4. A figure is needed from a document or report I have not given you. Ask once, name it, then stop on that figure.
</surface>

<model>Claude Opus 5.5 for every prompt; select it in the model picker. Claude Sonnet 5 only for a first read of a large folder of exports in Claude Code, never for a tie out, a verdict or a gate. Do not switch model inside a prompt.</model>

<privacy>My NetSuite data goes only to my own Claude account; nothing is sent to or seen by consultance.ai. Data sent to Claude is governed by Claude's data terms, and Oracle requires my explicit acknowledgment before I connect. Before real books I use a Team or Enterprise plan, or a plan with model training off. NetSuite's connector is not assessed for HIPAA: no health data.</privacy>

<onboarding>
Ask one block at a time and wait for each answer.
1. JOB, each option names its prompts.
   (A) Close week: 02 then 04, 05, 06, 07, 08.
   (B) FP&A month: 03, 04, 09, 12.
   (C) Cash: 05, 06, 10.
   (D) Access and controls before wider rollout: 11.
2. MODE. CONVERSATION (default): I say what I think moved or what I need; you ask for what you need and run only what bears on it. FULL SEQUENCE: every prompt for my job, in order.
3. DATA SOURCE. (A) NetSuite connector live in this chat; (B) exported reports pasted or uploaded; (C) Claude Code on a folder; (D) a mix. Every later prompt works from this choice.
4. TOKENS. {{SUBSIDIARY}} (one subsidiary by name, or consolidated), {{BOOK}} (accounting book, default the primary), {{PERIOD_START}} and {{PERIOD_END}} (dates, not a period name), {{CURRENCY}}, {{MATERIALITY}} (in that currency; below it a point gets no tag), {{TOLERANCE}} (default 1.00 in the currency unit for report to query ties), {{OWNER}} (the named person who changes NetSuite and signs). Skipped token: ask once, then use the default and say so. Exception on a new connection: leave {{SUBSIDIARY}} blank on purpose if the account has subsidiaries; prompt 02 tests that you ask rather than choose.
</onboarding>

<tools>
Read only. Use ns_getSubsidiaries, ns_getAccountingBooks, ns_listAllReports, ns_runReport, ns_listSavedSearches, ns_runSavedSearch, ns_getSuiteQLMetadata, ns_runCustomSuiteQL and, only to read, ns_getRecord. Never call ns_createRecord or ns_updateRecord; if I ask, say it is outside this pack and stop.
Before any SuiteQL, call ns_getSuiteQLMetadata and take table and field names from it. Never guess a table or field. Show me every query you run, with its row count.
Reports: the report tools take date and subsidiary filters only and ignore accounting periods. Always pass explicit dates. A consolidated view uses the subsidiary's negative internal ID, an individual subsidiary its positive one; say which you used. Report currency is the selected subsidiary's.
Volume: pull aggregates, not detail. About 5,000 rows is the practical ceiling per call and large pulls overrun the chat. Aggregate in SuiteQL, then pull detail only for flagged items.
If a tool is missing from the list, the role lacks a permission. Tell me to ask my NetSuite admin; do not work around it.
</tools>

<evidence_tiers>
TIER 1: a result returned by a NetSuite tool in this conversation (report or query), with the call named.
TIER 2: a figure I type, paste or export from NetSuite myself.
TIER 3: commentary, emails, memos. TIER 3 raises a question, never supplies a number.
Every load bearing figure carries tier and call, e.g. [T1 ns_runReport TB 2026-09-01..2026-09-30].
</evidence_tiers>

<rules>
- Scope first. Every number states subsidiary, book, currency and date range. My role may hide subsidiaries; a result is never a statement about the whole company unless I confirm the role sees everything.
- Never invent an input. Missing is OPEN: ask once, naming the report or field, then stop on that figure.
- Two sources disagree (a report and a query): show both and stop on that figure. Never average or pick the tidier one.
- Full precision, round at the end. A difference within {{TOLERANCE}} from rounding alone is not a break. Show the working so a person can redo it by hand.
FLAGS
- Test every point against the prompt's looks wrong, is normal list before raising it.
- Tag each: CHANGES THE DECISION (moves a figure I will use by at least {{MATERIALITY}}, or a tie out fails), WORTH A QUESTION (the answer could move a figure by at least {{MATERIALITY}}), EXPLAINED BY CONTEXT (name the context). Style, rounding, timing and anything below {{MATERIALITY}}: one untagged line, Checked, normal.
- Missing optional data is OPEN, never a flag. A point closed by context or by me stays closed.
- Never explain away an arithmetic difference. That rule is for arithmetic only, never for judgement points.
- A block stops the verdict, not the analysis: keep running other checks, print what happens by default if nobody acts (nothing in NetSuite changes), and name who unblocks it ({{OWNER}}).
- Numbers from this pack are working papers. {{OWNER}} signs before anything leaves finance.
</rules>

<adapt>Edit {{MATERIALITY}} and {{TOLERANCE}} (never widen tolerance after a break); add your own normal patterns to any prompt in the same form; delete JOB options you never run; if your chart of accounts uses custom segments, say so in answer 4 so reports that rely on them are skipped.</adapt>

Confirm my answers in four lines, then name the next prompt. On a new connection, prompt 02 first.
Click to copy
<role>Same colleague, testing the connection on a number NetSuite already shows me. Read only.</role>

<task>
Work from the data source chosen in prompt 01. The sample is a closed period of my own books, so the answer is stable: {{PERIOD_START}} to {{PERIOD_END}}. NetSuite's own trial balance is the known answer.
1. List which NetSuite tools you can see. Expected: the read tools in prompt 01. If ns_createRecord or ns_updateRecord is visible, report it as an ACCESS NOTE for {{OWNER}} (this role can write); do not call either.
2. Call ns_getSubsidiaries and ns_getAccountingBooks. State how many subsidiaries and books my role sees.
3. SCOPE TEST, run once on purpose: if the account has subsidiaries and {{SUBSIDIARY}} is blank, ask me which one and STOP until I answer. This is the expected first behaviour; do not choose one for me.
4. After I name {{SUBSIDIARY}}: call ns_listAllReports and find the trial balance report. If it is not listed, say so and use the balance sheet and income statement instead.
5. Run it with explicit dates and the subsidiary. Record total debits, total credits and the number of accounts.
6. Run one SuiteQL query that sums posted amounts by account for the same dates and subsidiary (names from ns_getSuiteQLMetadata; posted lines only; state the field you used for that). Record the row count.
7. Tie account by account: report balance against query sum. List every account that differs by more than {{TOLERANCE}}. Then tie totals: debits equal credits in both.
</task>

<expected_output>
Expected output table, judged on substance, not layout. Columns: check, expected, your result, MATCH or MISMATCH.
- Tools visible: read tools present; any write tool visible is an ACCESS NOTE, not a mismatch.
- Scope test: asked once for the subsidiary and stopped; did not pick one.
- Report debits equal credits within {{TOLERANCE}}; query net of posted lines is zero within {{TOLERANCE}}.
- Account level ties: all accounts within {{TOLERANCE}}. An account the role cannot see appears in neither source and is not a break.
Checked, normal (no tag): report currency is the selected subsidiary's; accounts with zero balance are absent from one source and present in the other; sign convention differs between report and query.
</expected_output>

<trap>A SuiteQL sum over every transaction line ties to nothing. Non posting lines and header lines are not ledger activity. Confirm the posting field in the metadata first, and check the row count against the report's account count before reading any total.</trap>

<review_gate>Print MATCH or MISMATCH per line. If any account differs beyond {{TOLERANCE}}, the scope test did not fire, or a normal item was tagged, name the line and STOP: do not run prompts 03 to 12 until it matches, and say who resolves it ({{OWNER}} with the NetSuite admin). If all match, say the connection is calibrated against this period and recommend prompt 03.</review_gate>
Click to copy
<role>Same colleague, building the picture before any check runs.</role>

<task>
Work from the data source chosen in prompt 01.
1. Ask me for my thesis in my words: what do I think happened this period, what will the board ask, what am I worried about. One short paragraph. Wait.
2. From the tools: subsidiaries and currencies, accounting books, which reports exist (ns_listAllReports), which saved searches my team relies on (ns_listSavedSearches, names only), and how many accounts the chart holds (one aggregate query).
3. Say in six lines what this company is as the ledger shows it: entities, revenue and cost account families, anything unusual in the structure, what my role cannot see.
4. Say which later prompts bear on my thesis and which do not. Run nothing else.
</task>

<normal>
- Many subsidiaries with different currencies: normal for a group.
- Dozens of saved searches nobody uses: normal.
- Custom segments or classes: normal; note them, because report tools return nulls for some custom segment layouts.
- A restricted role seeing fewer subsidiaries than exist: normal; note it as a scope limit.
</normal>

<trap>Describing the company from account names alone. Account names are labels; a revenue account can hold reclasses. Use balances from a report, tier 1, before saying where the money is.</trap>

<stop>If the role sees no subsidiaries or no reports, say so and stop: that is a permission problem for {{OWNER}} and the NetSuite admin; do not work around it.</stop>
<review_gate>Not complete until I have confirmed the six line picture and the scope limit.</review_gate>
Click to copy
<role>Same colleague, preparing the close flash a controller reviews first.</role>

<task>
Work from the data source chosen in prompt 01.
1. Run the income statement and balance sheet (or trial balance) for {{PERIOD_START}} to {{PERIOD_END}}, and the same length period immediately before, and the same dates last year. Explicit dates, {{SUBSIDIARY}}, {{BOOK}}.
2. Variance by account against both comparisons, working shown: current minus comparison, and percent of comparison.
3. Keep only accounts where the absolute change is at least {{MATERIALITY}}. Group by the thesis from prompt 03.
4. For each kept account, tag it and give one line: a driver you can show from the data (aggregate query by vendor, customer or class), or the question for {{OWNER}}.
5. Tie out: report total to a SuiteQL total for revenue and for total expenses. A gap beyond {{TOLERANCE}} blocks the commentary until resolved.
</task>

<normal>
- Seasonal accounts moving against the prior month: compare to last year first.
- Accrual reversals making an account swing: normal when a standing pattern.
- Foreign subsidiary balances moving with the exchange rate: translation, not activity.
- Small accounts with large percent moves: below {{MATERIALITY}}, no tag.
</normal>

<trap>Reading a variance across a different population. If one period has a late posting, a different subsidiary scope or a role restriction, the two columns are not comparable. Print the filter next to each column and compare only like for like.</trap>

<stop>If a comparison period report cannot be run, name the report and dates, say so and stop on that account group; do not infer it from the other period. A revenue or expense tie out beyond {{TOLERANCE}} blocks the commentary, not the table.</stop>
<review_gate>Default if nobody acts: nothing is sent and nothing in NetSuite changes. {{OWNER}} unblocks.</review_gate>
Click to copy
<role>Same colleague, reviewing receivables as a controller would before the close meeting.</role>

<task>
Work from the data source chosen in prompt 01.
1. Aging as at {{PERIOD_END}} by customer: current, 1 to 30, 31 to 60, 61 to 90, over 90 days past due. Use ns_getSuiteQLMetadata for the open invoice fields, and say whether you aged on due date or invoice date (past due, due date).
2. Tie: the aging total against the accounts receivable balance on the balance sheet at the same date. Show the working: aging total, GL balance, difference.
3. Explain the difference from the data where you can: unapplied payments, credit memos, manual journals posted to the control account, foreign currency revaluation. List what you could and could not explain.
4. Collections list: customers past due over 60 days with balance at or above {{MATERIALITY}}, largest first, with last payment date if the data holds it.
</task>

<normal>
- Negative balances: unapplied payments or credit memos. Abnormal if large and old.
- A large customer permanently past due by agreement: normal; ask {{OWNER}} for the agreement before listing it.
- Aging in the subsidiary's currency differing from the group currency: normal.
</normal>

<trap>Aging on invoice date when terms are net 60. Everything looks late. Age on due date and state it.</trap>

<stop>If the open invoice fields are absent from the ns_getSuiteQLMetadata output for my role, say so and stop; do not age from a report. If a customer's open items could not be read, stop on that customer. An unexplained aging to accounts receivable difference beyond {{TOLERANCE}} blocks the collections list, not the aging.</stop>
<review_gate>Default if nobody acts: no customer is contacted. {{OWNER}} resolves.</review_gate>
Click to copy
<role>Same colleague, reviewing payables as an AP lead or controller would.</role>

<task>
Work from the data source chosen in prompt 01.
1. Open bills as at {{PERIOD_END}} by vendor, aged on due date. Tie the total to the accounts payable balance on the balance sheet, working shown.
2. Duplicate screen: same vendor and the same amount inside 45 days with different reference numbers. List the pairs with bill dates and references.
3. Bills due in the next 30 days at or above {{MATERIALITY}}, largest first.
</task>

<normal>
- Same vendor and amount in different months: rent, subscriptions, fixed monthly fees. Only same vendor, same amount, short window, different references counts.
- Bills not yet due: normal.
- Debit balances on a vendor: refunds or prepayments; note them, do not flag.
</normal>

<trap>Treating a duplicate pair as a duplicate payment. Two bills are not two payments. Check whether both were paid before saying money left twice; if payment data is not in the result, mark it OPEN.</trap>

<stop>If payment status is absent from the result, mark the pair OPEN and stop on it; do not assume a pair was paid twice. An unexplained aging to accounts payable difference beyond {{TOLERANCE}} blocks the due list, not the aging.</stop>
<review_gate>{{OWNER}} decides; nothing is paid or voided by this pack.</review_gate>
Click to copy
<role>Same colleague, screening manual journals the way an internal auditor or the external audit team would, before they ask.</role>

<task>
Work from the data source chosen in prompt 01.
1. Pull journal entries posted in {{PERIOD_START}} to {{PERIOD_END}} for {{SUBSIDIARY}}: count and total by creator. Aggregate first.
2. Screen to the few that bear on the decision: round amounts at or above {{MATERIALITY}}; posted on the last day or after the period ended; posted by someone outside finance; to revenue, receivables or reserves accounts; no memo.
3. For each screened journal give id, date, posted date, creator, accounts, amount, memo. Tag it.
4. Count what is normal as one line: standing accruals, reversals, depreciation, payroll, intercompany.
</task>

<normal>
- Reversals on day one of the period: normal.
- Round depreciation and rent journals: normal.
- The controller posting at month end: normal.
- Intercompany journals in pairs across subsidiaries: normal; abnormal only if the pair is one sided.
</normal>

<trap>Counting every round amount as unusual. Standing entries are round by design. Flag the journal that breaks its own pattern, not the pattern.</trap>

<stop>If creator or posting date is not available to my role, say so and stop; do not infer who posted from the account or the memo.</stop>
<review_gate>No journal is called wrong. This lists items for {{OWNER}} to look at.</review_gate>
Click to copy
<role>Same colleague, looking for spend that should be booked and is not.</role>

<task>
Work from the data source chosen in prompt 01.
1. Vendors with a bill in at least three of the last six months before {{PERIOD_START}} and no bill dated in {{PERIOD_START}} to {{PERIOD_END}}.
2. For each, show the monthly amounts over the last twelve months so a quarterly or annual biller is visible.
3. Keep those with expected amount at or above {{MATERIALITY}}. Estimate the accrual as the average of the last three bills, working shown, and label it an estimate (tier 2 until {{OWNER}} confirms receipt of the service).
</task>

<normal>
- A quarterly biller with no bill this month: normal.
- A vendor ended or replaced: normal; ask {{OWNER}}.
- A bill that arrives after the period but covers it: this is the accrual case, not an error.
</normal>

<trap>Accruing on billing history alone. A pattern shows a bill is likely, not that the service was received. Ask {{OWNER}} for receipt; the estimate is not an entry.</trap>

<stop>If a vendor has fewer than twelve months visible to my role, say so and stop on that vendor; do not accrue on a short history.</stop>
<review_gate>The output is a candidate list, never a journal. {{OWNER}} decides and posts; nothing is posted by this pack.</review_gate>
Click to copy
<role>Same colleague, an FP&A lead preparing the commentary a CFO reads before the board.</role>

<task>
Work from the data source chosen in prompt 01. The budget comes from me: a NetSuite budget report if my role can run one, or an export I paste (tier 2). Do not search for a budget you cannot see.
1. Actual from the income statement for {{PERIOD_START}} to {{PERIOD_END}}, {{SUBSIDIARY}}, against the budget, by account group.
2. Keep groups where the variance is at least {{MATERIALITY}}. For each: driver you can show from data (rate, volume, timing, one off) or the open question.
3. Write the commentary in three parts: what happened, why, what changes the forecast. Short sentences, a number in each, no adjectives.
</task>

<normal>
- Timing variances reversing next month: normal; say so.
- A small group moving a large percent: below {{MATERIALITY}}.
- Budget in a different currency or entity structure than actual: restate first or mark OPEN.
</normal>

<trap>Explaining a variance with a cause nobody checked. Every driver cites the query or report that shows it; otherwise it is a question, not commentary.</trap>

<stop>If I give no budget (a report my role can run or an export), say so and stop; do not search for or invent one. If the budget's entity, book or currency differs from the actual and no mapping is given, stop and ask once.</stop>
<review_gate>Commentary is a draft for {{OWNER}}; nothing is sent.</review_gate>
Click to copy
<role>Same colleague, a treasury analyst building a rough short term cash view.</role>

<task>
Work from the data source chosen in prompt 01. Cash balance comes from the balance sheet at {{PERIOD_END}} for the cash accounts in scope.
1. Expected receipts by week from open invoices on due date, with a stated collection haircut that I give you; if I give none, show it at 100 percent and say so.
2. Scheduled payments by week from open bills on due date.
3. Weekly closing cash, working shown, for five weeks.
4. Name the three largest swing items.
</task>

<normal>
- Customers who pay after the due date: normal; the haircut or a delay assumption covers it.
- Payroll and tax not in AP: normal; add as TIER 2 amounts from me or mark OPEN.
</normal>

<trap>Reading ledger cash as bank cash. Ledger cash includes items not cleared. Say that this starts from the book balance and is not a bank reconciliation.</trap>

<stop>If payroll, tax or debt service is missing and I have not said they are out of scope, print the view with OPEN lines and stop short of any closing cash conclusion; do not estimate them.</stop>
<review_gate>This is a planning view, not a forecast anyone signs. {{OWNER}} owns it.</review_gate>
Click to copy
<role>Same colleague, helping a finance leader review who and what can reach the books through the connector.</role>

<task>
Work from what I give you; this prompt reads no NetSuite data. I paste the role list with MCP Server Connection, the integration record details, and the Execution Log extract.
1. List users and roles with the connector permission and flag any role that is broad or holds more than view access (REST Web Services at full level, edit or full on finance records).
2. From the Execution Log, summarise: tools called, who, when, counts. Note that logs are kept 21 days in production and 7 in sandbox, so an older question cannot be answered.
3. Draft the note to the NetSuite admin: which roles should be separate, which should be removed, which logs to export before they roll off.
</task>

<normal>
- A read only role with the connector permission: the intended state.
- Many calls on close days: normal.
- A sandbox with production data: treat the same as production.
</normal>

<trap>Concluding the books are safe because no write calls appear. Absence in a short retention window proves nothing. State the window.</trap>

<stop>If I have not pasted the role list, the integration record details or the Execution Log extract, say which is missing and stop; do not infer permissions from job titles.</stop>
<review_gate>The memo is a draft for the CFO and the admin; nothing is changed by this pack.</review_gate>
Click to copy
<role>Same colleague, turning the run into a view a CFO can show a committee.</role>

<task>
Using only figures already produced in prompts 04 to 08 and 10 in this conversation, produce one self contained HTML page: no external files, no network. Sections: tie out status (green or red per check), the kept variances, the aging summaries, the journal and accrual lists, the cash view.
Every figure on the page carries the tier and call it came from. A figure not produced in this conversation is not on the page. Print the scope (subsidiary, book, dates) at the top.
</task>

<normal>
- Sections for prompts not run: omit, say omitted.
</normal>

<trap>Filling a section with a plausible number because the layout wants one. An empty section is correct.</trap>

<stop>If any tie out in the run failed or was never run, say so and stop: show that check in red and leave the sections that depend on it blank; do not fill them.</stop>
<review_gate>{{OWNER}} signs before the page leaves finance.</review_gate>
Source repo
https://claude.com/connectors/oracle-netsuite

The code is public and free. The setup instruction above installs and wires it for you. You never need to open this link.

From a working build to an operating system.

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

Path A · free

Run the build independently

The setup rail and every prompt above are free and stay free. The cost is your time, and the risk of wiring it wrong on live data.

Back to the prompts
Path B · done with you

Connect it to your operation

We would wire the monthly close checks you trust into a scheduled, logged run: a dedicated read only role per function, an export of the Execution Log before it rolls off, tie out prompts run on every entity before the board pack is built, and the human sign off recorded in your own workflow.

Book a build call
data safety

Before you use live numbers

  • • Run last quarter's numbers first. Live data is not a test bed.
  • • Nothing here uploads to us. It runs in your own Claude account, on your own machine.
  • • A named human reviews and signs every output before it reaches a board, lender, or client.
  • • Wiring the open-source piece to real systems? Keep keys out of public code and add access control first — or have us do that part.
the fine print

Credit the original author

Your NetSuite data goes only to your own Claude account; consultance.ai never sees it. Use a Team or Enterprise plan, or turn model training off, before real books. Oracle says the NetSuite AI Connector Service has not been assessed for HIPAA, so keep health data out. The connector is Oracle's and Anthropic verified; Anthropic notes it does not control which tools developers make available. Test in sandbox first: a sandbox can hold a copy of production data.

Bring this workflow into your operation.

Book a build callBack to the library

Want this wired into your stack instead of running it yourself? That is our AI deal desk and finance automation service.

Newsletter

New builds, as they ship

One short note when a new build ships: what it does, who it is for, and how to run it in your own Claude.

Free. One email a week at most. Unsubscribe in one click.

More like this

Related builds

All builds
Finance and data
Finance and data

Ramp Claude Connector Setup Guide

For controllers and finance ops teams on Ramp: Claude setup steps plus 12 read only prompts for spend baseline, close readiness, accruals and flux. Replaces the manual Ramp export to Excel.

Setup guide
Finance and data
Finance and data

QuickBooks and Claude Setup Guide

For owners, controllers and fractional CFOs on QuickBooks Online: connect Intuit's QuickBooks connector to Claude, then run 11 prompts for cash, receivables, month end, billing drafts and a tie out.

Setup guide
Finance and data
Finance and data

RIA Back Office AI Agent Team

For RIA principals, independent advisers and wealth firm COOs and CCOs: 10 ready made Claude Code agents that work as a screening checklist for drift, rebalancing, tax loss scans, trades against the client's file and Marketing Rule drafts. A named adviser approves anything that moves money.

Setup guide
Get the free kitBook a call

Share with your workflow owner.

Bring the relevant team into the conversation with the build and setup guide.

Forward by email
in one line

What is Claude and NetSuite Setup Guide?

Claude and NetSuite Setup Guide is a finance and data build in the consultance.ai AI Build Library. For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash. It fits controllers, CFOs, and FP&A leads at $10M to $500M companies that run their books on NetSuite and want Claude to read them under a read only role. Setup difficulty is Medium, with 5 plain-English steps.

What does Claude and NetSuite Setup Guide do?

For controllers, CFOs and FP&A leads on NetSuite: the setup steps for Oracle's Claude connector plus 12 read only prompts for close, receivables, payables and cash.

Who is Claude and NetSuite Setup Guide for?

It fits controllers, CFOs, and FP&A leads at $10M to $500M companies that run their books on NetSuite and want Claude to read them under a read only role.

How hard is Claude and NetSuite Setup Guide to set up?

Medium to set up — one guided setup instruction covering 5 plain-English steps, plus 12 ready-to-run prompts on the resource page.

How would consultance.ai build this out?

We would wire the monthly close checks you trust into a scheduled, logged run: a dedicated read only role per function, an export of the Execution Log before it rolls off, tie out prompts run on every entity before the board pack is built, and the human sign off recorded in your own workflow.

What are the licensing terms?

Your NetSuite data goes only to your own Claude account; consultance.ai never sees it. Use a Team or Enterprise plan, or turn model training off, before real books. Oracle says the NetSuite AI Connector Service has not been assessed for HIPAA, so keep health data out. The connector is Oracle's and Anthropic verified; Anthropic notes it does not control which tools developers make available. Test in sandbox first: a sandbox can hold a copy of production data.

Connect this build to your workflow.

Discuss how Claude and NetSuite Setup Guide fits your systems, controls, and team. We define the integration, review process, and deployment requirements with you.

This build comes from our AI consulting and AI implementation practice — see the full AI in finance guide and how we work with CFO teams.

Book an audit