Connect your AI
Give your AI the key, and it can go to work.
Three sets of instructions below: a connector you add inside Claude, a block you paste for Claude Code or Cowork, and a Custom GPT in ChatGPT. The connector signs you in and the other two take one key from the Company screen, and each is about ten minutes. After that your assistant can bring your inventory across from the file your old system exports, ask what is free on real dates, hold the pieces, book the truck and record the move, against your own records rather than a description of them.

First, a key
Two of the three start with one key.
The connector inside Claude needs none: you sign in when Claude asks, and everything the assistant does after that is recorded as done for you. The other two take a key. Keys are made inside VeraStaged, on the Company screen under Keys. A key is shown once, at the moment it is made, and never again, so copy it straight into wherever it is going to live. That section is open to whoever manages the team, so ask them if it is not there.
A key issued to somebody can do what that person can do and no more: one issued to the warehouse crew moves furniture and cannot read what a project was sold for. A key that names nobody carries the role you choose for it as you mint it.
Which of the two you want depends on who will be using the assistant, and the section further down on whose name ends up on the work is where to decide.
- Keep it in an environment variable, or in a file only your own user can read.
- Never put it in a repository, a shared document, or a message thread. Anybody who can read it can act as you.
- If you are not certain a key is still private, revoke it on the same screen and mint another. Revoking takes effect at once and costs nothing.
Claude
Add it as a connector, once.
Claude takes a connector, and after that it is there in every chat, on the web, in Claude Desktop and in Cowork: what is free the week after next, hold those pieces for the house on Tuesday, what went out in May and has not come back. It is added once and signed in to, on every plan. On a Team or Enterprise plan an owner adds it for the organization and each person then signs in as themselves.
1
In Claude, open Customize, then Connectors. On a Team or Enterprise plan an owner adds it under the organization's settings first, and each person then connects to it from the same place.
2
Choose to add a custom connector, name it VeraStaged, and paste the address below.
3
Connect, and when it asks, sign in to VeraStaged the way you always do.
4
Then, in a chat, ask what is free for a three-bed the week after next.
https://verastaged.com/api/mcp
Your Company screen, under Keys, prints your own company’s address, and that is the one to paste. The address above works when you work for a single company; where you work for two, it cannot tell which of them you mean and the connection simply fails.
Connecting asks you to sign in to VeraStaged, and that sign-in is what the assistant is handed: a credential minted for you and for nobody else. What it does is recorded as done for you, with the assistant named as the one that did it, and what it may do is what your role here allows. There is no key to keep.
It arrives with the commands a staging company reaches for daily. Putting ?tools=all on the end of the address offers every command in the product instead, and a group name in place of all offers one part of it at a time: ?tools=billing is the money on a project, quoting is what you sell it for, and records is the notes, tasks and photographs.
Claude Code and Cowork
Tell it where your records are, once.
Claude Code, in a terminal or inside Claude Desktop, reads a file called CLAUDE.md in the folder you work in and carries it into every session. Paste the block below into yours and it can reach the whole product, every command there is, without the connector above and without a plugin to keep current. Cowork takes the connector above, and it can also work from this block: put it in a file in the folder Cowork is working in and ask it to read that file first. This is the road to take when the work is bulk, an import to check over, a season to reconcile, a report to run twenty ways.
# in your shell profile, either the key itself export VERASTAGED_KEY=sk_your_key_here # or read from a file only your own user can open printf %s sk_your_key_here > ~/.verastaged-key chmod 600 ~/.verastaged-key export VERASTAGED_KEY=$(cat ~/.verastaged-key)
The key belongs outside the folder, because whatever is in the folder ends up in the repository sooner or later. An environment variable or a file only your user can read are both fine.
Nothing else is needed. The map is served by the product itself, so the day a command gains a field your assistant reads the change without you editing anything.
## VeraStaged
Our inventory, projects, quotes and reports live in VeraStaged.
Authenticate with the key in $VERASTAGED_KEY, sent as an "Authorization:
Bearer" header. Never print the key and never write it into a file in this
folder.
Start at GET https://verastaged.com/api/v1. That is the map: every command
there is, grouped by the job it does, with the words this trade uses and the
rules that bite before the first call. One command's fields, and what each one
means, come from GET https://verastaged.com/api/v1/commands/{commandName}.
Read the map before composing a call rather than guessing at a path.
Every POST needs an Idempotency-Key header carrying a UUID you generate. Send
the same key again when you retry the same call and the first answer is
replayed, so a timeout never books a second sofa. Every new call gets a new
key.
A refusal is an answer rather than a dead end. It names what is wrong, what
else is free on those dates, and what to do next. Read it and act on it before
coming back to me.ChatGPT
A Custom GPT, in five steps.
1
In ChatGPT, open the sidebar, choose GPTs, then Create.
2
Open the Configure tab, scroll down to Actions, and choose Create new action.
3
Under Schema, choose Import from URL and paste the address below.
4
Under Authentication, choose API Key, set Auth Type to Bearer, and paste your key.
5
Save it, then ask it what is free for a three-bed the week after next.
https://verastaged.com/actions.json
A Custom GPT is allowed thirty actions, so that file carries one run through a project end to end: the warehouse, the pieces, the houses and the people, the holds, the truck, the bill and the reports, and marking a piece damaged, retired or back in service along the way. It is a starting set rather than the whole product. Among the jobs it does not carry: the quote you win the work with, selling a piece off the stage, notes and tasks and photographs, correcting a record after the fact, and everything to do with keys and staff. Both Claude setups above reach all of it, one by widening the connector’s address and one through the map.
Those thirty are a tool list rather than a limit on the key. The same key reaches the rest of the product at the same address, as far as the role on it goes, so a script of your own or either Claude setup above does the parts the GPT was not handed.
That role is worth a second look now that the bill is on the list. A key set only to move furniture is turned away from what a project was sold for, and the GPT will tell you so rather than guess at a figure. If it is meant to bill, mint it able to read and write money.
The GPT lives in your ChatGPT account and the key lives inside it, so anybody you share the GPT with is working with that key. Which is the one thing worth deciding before you paste it in.
The first thing to ask it
Start by bringing the warehouse across.
Export your inventory from whatever you are on now, as a CSV, with whatever columns it gives you. Hand your assistant the file and ask it to bring the pieces across. It reads the columns, works out which is the price and which is the inventory number, can register the places it finds as it goes, and can show you what it made of the file before a single row is written.
The inventory numbers on your old stickers come across with the pieces and go on working, so nothing has to be relabelled. That is also what makes a second run safe: a row whose number is already on a piece is skipped rather than registered twice, so a file that stopped halfway can simply be sent again.
The same job is on the Import screen inside VeraStaged, under More, for the file somebody would rather map by hand. Both do the same work and either is fine; a file with columns nobody could guess at is the one to do by hand.
Whichever way it goes in, check a few pieces afterwards against the spreadsheet you started from. Money is read as whole currency units, so a cell reading 1200 is twelve hundred, and a column that meant something else in your old system is the one worth looking at first.
More than one person
Whose name ends up on the work.
Every write records who did it, and a key issued to a person, or a connector that person signed in to, is what makes the trail read as people: the history says ChatGPT reserved this for Jane, rather than that some software did it at four in the afternoon.
What is recorded there stays recorded. Movement history and the trail behind it cannot be rewritten, which is what makes them worth anything, so this is a decision to take before the first booking rather than after the hundredth.
A key for you
The one in your own CLAUDE.md, or in a GPT nobody else uses, should be issued to you. Everything it does is recorded as done for you, which is what you want on your own work. The connector inside Claude needs no key for this: signing in is what puts your name on it.
A key for the office
A GPT the whole team shares, or a setup sitting on a machine several people work at, should carry a company key instead: mint one on the Company screen naming nobody, and choose its role while you are there. It can do what that role can and nothing more, so pick the narrowest one that covers the work. Its writes are recorded as the company’s own integration, which is what actually happened.
Not one person’s key, passed round
Sharing your key writes your name onto everybody else’s work, and movement history cannot be edited afterwards, by you or by us. One key each, or a company key for the shared setup. Those are the two that stay true a year later.
Being asked first
You can make a change wait for a person.
On the Roles screen, each thing a role can do is set to can, with a sign-off, or cannot. With a sign-off, that change waits for somebody whose role can do it outright, whether the person makes it on a screen or their assistant makes it for them. A stager can close a lead as lost, say, and it waits for a lead stager to agree.
What is waiting is on the Waiting on you screen, and whoever agrees to a change is agreeing to it as themselves: it happens on the authority of whoever asked for it, recorded under their name, with yours beside it as the person who allowed it.
It works where the credential names somebody
The person a change was asked for cannot be the one who agrees to it. A connector somebody signed in to asks as them, and a key asks as whoever it was issued to. A key that names nobody carries a role of its own, so a sign-off on that role holds whatever it asks for and anybody who can do the thing outright may agree.
It delays a change, it never widens one
If a role cannot do something at all, it still cannot. It is refused outright, with nothing for anybody to agree to and nothing waiting anywhere.
Somebody has to be able to agree
A change only waits where somebody else, whose role can do it outright, has signed in at least once. Where nobody has, it is refused instead and says which roles could agree, so nothing sits waiting for nobody.
A quote over the budget waits too
If you have written down what a client agreed to spend on a project, sending them a quote that comes to more than that waits for somebody whose role can approve going over a budget, and so does marking one sold that was never sent. That one is not something you switch on. It is not refused: going over is allowed and often right, and what it takes is somebody saying why, from a short list, with a note where the reason is not on it. What they agree to is the amount: trade the project up past the figure they were shown and it goes back to them for the new one. Trimming the quote back inside the budget needs nobody.
Stopping a key stops what it left waiting
Once a key is stopped, the changes it already asked for cannot be agreed to any more. They can be turned down, or left to run out on their own, which they do within a day. That is deliberate: you stop a key when you no longer trust what it has been asking for, and what it asked for last is exactly what you were worried about.
If something is off
It is usually one of these four.
It says it is not authorized
The key is missing, mistyped, or revoked. Keys are shown once, so a key nobody copied is gone: mint another on the Company screen. Check it is going out as an Authorization header and not tacked onto the address. The connector inside Claude signs you in rather than taking a key: if it has stopped answering, disconnect it and connect again.
It refuses a booking
Read the refusal before trying again. It says what is wrong, what else is free on those dates, and what to do next, and an assistant that reads it fixes its own mistake. One that retries the same call unchanged gets the same answer.
It says a key was already used
Sending the same Idempotency-Key with a different request is refused as key reuse: a fresh key belongs on every new call, and the same key only on a retry of the identical one.
It cannot find a piece
Search by whatever is on the sticker. The labels on a piece resolve to it, including the numbers from the system you were on before this one, so there is nothing to relabel first.