Integrations

Integrations: the POS, the books and the AI assistant on the same data

The POS sends every cashier’s sales straight into their pay: Poster connects with one button, other tills on request. Whoever keeps the books reads the timesheet and the pay with an API key or takes the sheet from “Export to Excel”, and hears about every change through a webhook. Claude, ChatGPT, Cursor and Codex answer questions about the rota and place shifts in plain words through MCP, with the permissions of that same key.

Three links that remove the manual work: the POS, the books, the assistant

The POS. In a cafe or a restaurant a percentage of sales is half the motivation, and it is the number that takes longest by hand: a report from the till, a spreadsheet, an argument with the person. InShift connects to Poster with one button, collects every cashier’s sales for each closed cash shift and puts the percentage into the accruals next to the rate. The manager sees the sales for the window and checks them against the till side by side. Not on Poster? Tell us which POS you run: Square, Lightspeed, Loyverse, SumUp, Zettle, Shopify POS and others are connected on request.

The books. At the end of the month your accountant or payroll bureau needs the timesheet and the pay sheet rather than a login to the panel. An API key with the “Payroll” permission returns the accruals with every supplement explained, the payouts, the balances and the pay terms, read only, into whatever system keeps your books. There is no ready-made Xero or QuickBooks module; there is a documented API that any integrator can read. A webhook reports every change, and whoever works without an API takes the sheet from “Export to Excel”.

The assistant. The same kind of key connects Claude, ChatGPT, Cursor, Codex, Gemini CLI and Notion agents through the MCP server: who works tomorrow, how many hours Mark did in September, put Helen on the evening shift on Friday. The assistant has the permissions of its key and nothing more, and every edit it makes is signed in the history. What is not here we do not promise: ready-made modules for accounting packages or a CRM. For those there are the API, the webhooks and support@inshift.app.

POS

Every cashier’s sales arrive on their own, and the percentage lands in their pay

In “Integrations” the button “Connect through Poster” opens Poster’s consent page, and Poster hands over the key itself: nothing to copy. Then you link the cashiers to your people under “Who in the POS is who”, and the sales of every closed cash shift are collected at the hour you pick under “When to collect sales”. The rule “Percentage of sales” on the “Premiums” tab counts a share of the person’s own revenue, and “Pay instead of the rate” gives them the rate or the percentage, whichever is larger.

  • A chain on several Poster accounts: each account connects on its own, and one person’s sales from all tills add up
  • The unit collected is a closed cash shift: until the till is closed, the day does not count
  • Sales for the window are listed by cashier exactly as they entered the pay, to check against the POS side by side
  • Without a link the percentage for a cashier’s sales goes to nobody, and the panel says so
POS integration: Poster and the tills on request

For the books

The timesheet and the pay are read with a key, and the books hear about changes through a webhook

In “Integrations” → “API keys and webhooks” the owner presses “Create key” and ticks the permissions by group: “Directories”, “Schedule and hours”, “Sync”, payroll read only, personal data as a separate tick with a warning. A key can be limited to chosen locations. A webhook is an https address added with “Add endpoint”: the signing secret is shown once, and “Send test” sends a probe event down the real path.

  • Money cannot be changed through the API: the “Payroll” permission reads accruals, payouts and balances, and only reads
  • Permissions change without a rotation; after “Rotate” the old key keeps working for seven more days so the integrator can switch over
  • The /v1/events feed returns changes together with deletions, so a mirror never keeps dismissed people forever
  • After ten failed deliveries in a row an address is switched off; the owner sees why and turns it back on with one button
API documentation

Claude, ChatGPT, Cursor

Questions about the rota in a chat: an MCP server with the permissions of a key

InShift exposes every API method as an MCP tool at api.inshift.app/mcp. In claude.ai and ChatGPT it is a connector: the client discovers OAuth on its own, opens a page on api.inshift.app where you paste an API key, and gets a token of its own. Claude Desktop, Claude Code, Cursor, Codex and Gemini CLI connect with the address and a header carrying the key; a Notion agent does the same by address, with OAuth or a key in the header.

  • The assistant has the permissions of its key: without “Create, edit and remove shifts (drafts)” it only reads
  • The consent page shows where the code will return and marks claude.ai and chatgpt.com as verified clients
  • Revoke the key in “Integrations”, and the assistant is disconnected that same moment
  • Every edit the assistant makes is signed in the history with the name of the key and the client
Connecting Claude or ChatGPT step by step

Three ways to connect in a minute

A key is created in “Integrations” → “Create key” with exactly the permissions it needs. One address serves both the API and MCP.

A month of timesheets with an API key

Planned and actual hours per person per day. Times in the organisation’s time zone, money as strings, pages by cursor.

curl "https://api.inshift.app/v1/timesheets?from=2026-09-01&to=2026-09-30" \
  -H "Authorization: Bearer insh_live_..."

A webhook event

The body carries only the event type and the id; your system fetches the data from the API. The Inshift-Signature header carries a timestamp inside, retries run from a minute to a day.

{
  "type": "shift.updated",
  "entity": "shift",
  "action": "updated",
  "object_id": "9f3a8064-ce13-4ef7-8338-c72cf667a89b",
  "occurred_at": "2026-09-08T21:43:44.795Z"
}

Claude Code

One command and the assistant sees the rota. Codex, Cursor and Gemini CLI take the same address from their settings file.

claude mcp add --transport http inshift \
  https://api.inshift.app/mcp \
  --header "Authorization: Bearer insh_live_..."

What works with what

One table instead of a directory: what is passed, who switches it on, and where the data goes next.

POS

What is passed
Every cashier’s sales for closed cash shifts; Poster today, other tills on request
Who sets it up
The owner in the panel: “Connect through Poster”
Where it goes next
The “Percentage of sales” rule in pay

Books and BI

What is passed
Timesheets, pay, people and locations, read only
Who sets it up
An integrator with a key carrying the “Payroll” permission
Where it goes next
Your accounting package, Power BI or your own database

Claude, ChatGPT, Cursor, Codex, Gemini CLI, Notion

What is passed
Every API method as an MCP tool
Who sets it up
The owner creates a key, the person connects their client
Where it goes next
Questions and rota edits in plain words

Make, Zapier, n8n

What is passed
A webhook event, then the data by a request to the API
Who sets it up
Whoever builds the scenario: a webhook address and a key
Where it goes next
Google Sheets, messengers, a CRM

Excel and PDF

What is passed
The pay sheet; the rota for a period and a location
Who sets it up
Anyone with access to the section: “Export to Excel”, “Print / PDF”
Where it goes next
The books without an API, the rota on the wall

Phone calendar

What is passed
Published shifts as an .ics file, read only
Who sets it up
Each person in the app: “Create a link”
Where it goes next
Google Calendar, Apple Calendar, Outlook

An organisation’s data is open only to the keys its owner issued, and only for the locations the owner picked. A key without the “Payroll” permission never sees money.

Books without an API

The pay sheet and the rota as a file, when there is no integrator

“Payroll” has “Export to Excel”: a sheet for the period with accruals, supplements, payouts and the balance per person, ready for the books. The “Print” menu in the planner gives “Download Excel” and “Print / PDF” for any period and location. The file opens in Excel, Numbers or Google Sheets.

  • Accruals with every supplement explained: night hours, holidays, hours over the norm, the percentage of sales
  • Payouts and the remaining balance per person on the day of export
  • The rota for a week or a month with people in rows, as in the planner
  • The people list goes the other way too: “Add multiple” takes rows pasted from Excel
How the accruals are counted, in the help centre

How to connect

The POS and the keys are switched on by the owner in the panel; everything else connects to a key that already exists.

  1. 1

    The POS

    “Integrations” → “Poster” → “Connect through Poster”. Poster shows its consent and brings you back to the panel. Then link the cashiers to your people and add the “Percentage of sales” rule on the “Premiums” tab.

  2. 2

    The books

    “Integrations” → “Create key” with the “Payroll” permission for the integrator, “Add endpoint” for a webhook. Without an integrator the “Export to Excel” button in “Payroll” is enough.

  3. 3

    Claude or ChatGPT

    A key with read permissions. In claude.ai or ChatGPT add a connector with the address api.inshift.app/mcp and paste the key on the consent page. Claude Code, Cursor, Codex and Gemini CLI take the address from their settings file.

  4. 4

    A scenario or your own system

    A webhook starts the scenario in Make, Zapier or n8n, and the HTTP module fetches the data from the API. For your own system: openapi.json in Postman, and GET /v1/company first, it carries the time zone and the enabled modules.

Frequently asked questions

Which POS systems work with InShift besides Poster?▾

Poster connects with a button in the panel. Square, Lightspeed, Loyverse, SumUp, Zettle, Shopify POS and other tills are connected on request: write to support@inshift.app with the name of your system, we check what its API reports per cashier and say what is possible right now. There is no import of sales from a file, and the API does not take sales in: the percentage is counted only from a connected POS.

Is there a Xero, QuickBooks or Sage integration?▾

Not a ready-made module. The books read the timesheet and the pay through an API key with the “Payroll” permission: accruals with every supplement explained, payouts, balances, pay terms. Money is read only through the API; nothing about pay can be changed from outside. The pay sheet also comes out with “Export to Excel”.

How does the percentage of sales get into pay?▾

After Poster is connected, the cashiers are linked to people in InShift, the sales of closed cash shifts are collected on a schedule, and the “Percentage of sales” rule on the “Premiums” tab counts a share of the person’s own revenue or of the location’s whole till. The sales for the window are listed by cashier in “Payroll”, to check against the POS.

Is there an InShift app in the Zapier or Make directory?▾

No. A scenario is built from standard modules: an InShift webhook starts it, and the HTTP module fetches the data from the API with a key. The same in n8n with the Webhook and HTTP Request nodes. The body of a webhook carries only the event type and the id; the data is always fetched fresh from the API.

What does a Claude or ChatGPT assistant see?▾

Exactly what the API key it was connected with allows: without the “Payroll” permission it sees no money, without “Create, edit and remove shifts (drafts)” it changes nothing, and a key limited to locations shows only those. A revoked key disconnects the assistant at once.

How safe is it?▾

A key is shown once when it is created, permissions are ticks that change without a rotation, and personal data and money are separate permissions with a warning. Webhooks are signed with HMAC and a timestamp inside, so a captured event cannot be sent again. Every action of a key is written to the history with its name.

Start with the rota, connect the rest as you go

Poster connects with a button, other tills on request, a key for the books or an assistant takes a minute, and the pay sheet exports to Excel.

Start for free