XataWorks Platform

An AI assistant for the web.

It drives the web apps you already use.
You decide what it is allowed to touch.

XataWorks is a desktop browser with an assistant built into it. Ask for something and it works the applications directly — opening the ticket, looking up the order, writing the reply. Your helpdesk, your store, the internal tool your company built. No connector to set up, nothing to migrate, and no second login. XataWorks Platform is the engine underneath: the XataWorks app is built on it, and so is a branded assistant built for your organisation.

Available for macOS, Windows and Linux.

The XataWorks window. On the left, a chat: the question “Has this customer’s order shipped yet?”, then the assistant reading the Zendesk ticket, looking the order up in the order-management app, and answering — no, order CO-92318 is paid but unfulfilled, with no tracking number generated. On the right, the order-management app showing that order marked Unfulfilled.

What you would actually type

Just ask.

No commands to learn and no syntax to get right. Say it the way you would say it to a colleague.

  • How many sales have we made today?
  • Which orders from this customer haven’t shipped yet? Tag them and add a note saying why.
  • Summarise the support tickets waiting on a reply, and draft an answer for the three oldest.
  • Create an issue from this bug report and assign it to whoever owns the billing component.
  • What’s alerting right now, and has anyone mentioned it in chat?
  • Post a summary of this week’s closed issues to the team channel.

Each of these is one request that touches one or more of the applications you already have open.

Models and providers

Your model. Your account. Your bill.

Every assistant you can subscribe to is one company’s model in one company’s window. XataWorks is the other way round: the window is yours, and you decide which model is behind it.

The Account dialog: choose which account this app uses for new chats. Three rows — OpenAI, not signed in; Claude subscription, signed in via the Claude CLI; and OpenRouter, marked Active.

You already have the assistant. This is where it works.

A ChatGPT or Claude subscription covers XataWorks the same way it covers everything else you use it for. Nothing is resold through us: no second bill, no tokens marked up, no per-seat charge on somebody else’s model.

Which means the question is not whether to switch assistants. It is whether the one you have should be able to reach your helpdesk, your store and your order system — or keep waiting for you to paste things into it.

Change your mind and change the account; it applies to new chats, so a conversation never changes model underneath you.

Claude subscription
Works through the claude command-line tool you have already signed in to, so your subscription covers it. XataWorks needs that tool installed to offer this option.
ChatGPT subscription
Sign in through your browser. No API key to create or paste.
OpenRouter
Sign in through your browser and it is granted a key — which opens up hundreds of models from one account, if you want to try something else for a week.
An API key
OpenAI, Anthropic or OpenCode Zen, using a key you supply.
An OpenAI-compatible endpoint
Set the API base URL in the app’s configuration and it will talk to a proxy, a gateway, or a model on your own hardware instead. A setting rather than a sign-in, so it is the one option here you reach by editing a file.

One window

Four systems. One request.

The answer to a customer’s question is almost never in one place. It is half in the helpdesk, half in the order system, and the reason is in an alert nobody has read yet. Reasoning across all four was never the hard part — reaching them was. XataWorks is already in the tabs, so it works across every one of them in one go.

Before

Before XataWorks A person connected by five separate lines to five applications — helpdesk, order system, warehouse console, dashboards and team chat — with nothing between them. You Helpdesk Order system Warehouse console Dashboards Team chat

Five applications, and the only thing joining them up is you — carrying reference numbers between tabs by hand.

After

With XataWorks The same person connected to XataWorks alone, and XataWorks connected to all five applications. You XataWorks Helpdesk Order system Warehouse console Dashboards Team chat

One conversation. It reaches the applications; you do not have to. Nothing about them changes — they are the same tabs, open in the same browser.

The same XataWorks window, with four browser tabs open side by side: a Zendesk support ticket, an internal Cascade Outfitters orders app, a warehouse console, and a Grafana observability dashboard.
  1. 1 Helpdesk — the ticket Dana raised
  2. 2 Order system — where the shipment actually is
  3. 3 Warehouse console — the printer that stalled
  4. 4 Observability — the alert that explains why

It joins them up, then tells you what it found.

One question — has this customer’s order shipped? — and it reads the ticket, finds the order, notices the shipment is still awaiting a label, checks the warehouse console, spots the printer alert that has been firing since this morning, and works out that this one shipment fell through the gap rather than a whole day’s worth.

Then it stops and says so, in your words rather than in tool calls — including the things it is not sure about, like two slightly different email addresses for the same person.

No copying reference numbers between tabs. No second login. No exporting anything to ask a question about it.

The chat pane, showing the assistant's conclusion: the Bay 3 console is back online, printing the label moves the shipment to Shipped and generates Canada Post tracking, which resolves the ticket — plus two things it wants a go-ahead on first, including a mismatch between the email on the ticket and the email on the order.

The whole thing, unedited

Watch it happen.

Three minutes, one customer complaint, four applications. No cuts and nothing sped up — including the parts where it stops and asks.

Nothing loads until you press play.

What happens, step by step

  1. You

    “Has this customer’s order shipped yet?”

  2. XataWorks

    • Helpdesk
    • Order system

    Reads the open ticket, finds the order it refers to, and looks it up. No — it is paid, unfulfilled, and no tracking number was ever generated. Eleven days ago, and tagged expedited.

  3. You

    “Find out why.”

  4. XataWorks

    • Warehouse console
    • Team chat
    • Dashboards

    Finds the shipment stuck awaiting a label, reads the incident channel, and checks the alerts. A label printer went down, and this shipment fell through the gap while it was out. It is the only one that did — not a backlog.

  5. XataWorks

    Proposes the fix — issue the label, reply to the customer with the tracking number, note the order — and stops there to ask. It also flags something it is not sure about: two slightly different email addresses for the same person.

  6. You

    “Go ahead.”

  7. XataWorks

    • Warehouse console
    • Order system
    • Helpdesk

    Issues the label, which generates the tracking number and moves the order to shipped. Writes the reason onto the order. Sends the customer a reply with the tracking number and an apology — and asks before that one too, because a public reply cannot be unsent.

Permission

It asks first.

An assistant that can act on your behalf is only worth having if you can tell it where to stop. XataWorks sits between the model and your applications, so nothing reaches an app you have not let it into.

An approval card in the chat. It reads: an agent wants permission to use this site's page tools on weblitesupport.zendesk.com. Buttons: Allow this call only, with a dropdown open showing Allow read-only tools on this website, Allow non-destructive read/write tools on this website, and Allow all tools on this website — and below them, Deny.
One request, four different answers. The default is the narrowest one.
  1. Just this once

    The default, and the narrowest answer there is. You settle the call in front of you, and you are asked again next time.

  2. Read only

    From here on it may look things up on this site, and nothing more. On a helpdesk page that is most of what the application publishes.

  3. Non-destructive read/write

    It may also change things that can be put back — a tag, a status, an assignee, a custom field.

  4. Everything

    Including the operations that cannot be undone. Deleting, refunding, sending, overwriting.

Destructive means destructive.

When a call cannot be undone, you are not asked to approve a vague intention. You see the operation by name, tagged [Destructive], with every argument it is about to send — the order it names, the text it will write, the address it will write to.

If an application has not said what an operation does, XataWorks assumes the worst about it and asks anyway.

An approval card headed Set an order note, marked Destructive, listing its two arguments: the order id 92318 and the full text of the note to be written.
You choose which sites
You decide where it is allowed to work, one website at a time. Letting it into your helpdesk says nothing about your store.
And which agent is asking
A decision is recorded against the agent that asked for it, so allowing your support agent somewhere says nothing about any other agent you use.
Reading a page is its own decision
XataWorks can read the text of a page you are on, and that is often useful — but it is a separate permission from doing things in an app, it is off until you turn it on, and you turn it on for one site at a time.
A narrow answer stays narrow
Allowing read-only tools on a site never widens on its own. To go further up the ladder you have to say so, and you will be asked again when something needs it.

How it works

It calls the app. It doesn’t click around.

Almost every tool your work runs on is a web app now, which is why a browser is the right place for an assistant to act. XataWorks works through WebMCP — an open standard for a web application to describe, in the page itself, what it lets an assistant do. No screen-scraping, no guessing which button is which, no breaking when the layout changes.

A panel headed Page tools (18), with filters for All, Read only (9), Mutating (5) and Destructive (4). Each row names one operation — Search Zendesk tickets, Read only; Assign a Zendesk ticket, Mutating; Update a Zendesk ticket, Destructive — and so on.

You can read the whole list.

Open the page tools panel on any site and you see exactly what that application has offered: every operation by name, and what each one does — look something up, change something, or something that cannot be undone.

That is the same list the permission ladder grants against, and the class beside each name is what a grant is answered against. It is not a summary of what the assistant might do; it is the complete set of what it can do here.

  1. The app says what it offers

    A web application publishes a list of the operations an assistant may perform — each one named, with the information it needs.

  2. XataWorks reads that list

    In the tab you already have open, signed in as you. It never needs its own account on that application, and it never sees the credentials that signed you in.

  3. It uses those operations, and no others

    If something is not on the list, there is no route to it. The application decides what is possible; you decide what is allowed.

Because it is a standard, any web application can support it without arranging anything with us — which is why this is not a partner list whose length we control.

Skills

Teach it your job. Once.

A general assistant knows how software works. It does not know that a label-printer outage means check Bay 3 before you promise anyone a date. A skill is where you write that down — once — and stop explaining it.

It is a page of plain English, not a program.

Give it a name, say when it applies, and write the procedure the way you would brief someone on their first week. Bullet points are fine. There is no schema to satisfy and nothing to compile — if a colleague could follow it, so can the agent.

The one in the screenshot is a triage runbook: work out whether a label problem is a known incident, a configuration mistake, a queue backlog, a dead printer, or something engineering needs to see — and say which, rather than guessing.

The Add Skill dialog: a name field reading Printer / Label Delivery Incident Triage, a description, an Enabled checkbox, a When field for the sites it applies to, a Load dropdown set to Announce, and a large Instructions box containing the runbook written as plain prose and bullets.

Say where it belongs

Leave When blank and the skill is always available. Or list the sites it applies to — *.zendesk.com, one per line — and it only comes up there.

Announce it, or load it

Announce tells the agent the skill exists and lets it read the instructions if they turn out to be relevant. Load in full puts them straight into the conversation, every time.

Give it to one agent, or all of them

A skill can belong to a single agent — your support agent gets the triage runbook — or sit at the app level where every agent you run can use it.

It is not tied to one app

A skill describes a job, not a website. The same triage runbook reads the ticket, checks the order, looks at the alert and drafts the reply — four applications, one procedure.

Your conventions come with it

Which fields you always set, what your tags mean, who gets told first, what your customers should never be told. The parts of the job that live in people’s heads.

Change it and it takes

Skills are yours to edit, switch off, and rewrite when the procedure changes. Nothing to redeploy and nobody to ask.

The Skills window, on the Cascade Support agent tab, listing one skill: Printer / Label Delivery Incident Triage, marked always, announce — with Add, Edit and Remove buttons.
Skills belonging to one agent, on top of the ones the whole app shares.

Integrations

It already knows your apps.

Where an application has not yet described what it lets an assistant do, XataWorks brings its own description of it. These are built in and ready the moment you install — nothing to configure, no keys to paste, no second login, because they work over the session you are already signed in to.

  • Zendesk
  • Jira
  • Slack
  • Shopify
  • Grafana
  • Gmail
  • Google Docs
  • Google Drive
  • AWS Console
  • draw.io
  • Mermaid Live
  • LaunchDarkly
  • Plex

This list is not the limit, and it is not meant to grow for ever. An application that describes its own tools needs nothing from us at all — these exist to cover the ones that have not done it yet.

Not seeing the one you need?

Tell us which application you would want it to work in. It is the most useful thing you can send us, and it is how we decide what to build next.

Request an integration

Bring your own account

Sign in with the ChatGPT or Claude subscription you already pay for, an OpenRouter account, or an API key you supply.

It works on your open tabs

A chat session sees its own browser: it can open, close and move between tabs, and read the page you are looking at.

Built on standards

WebMCP for what web applications offer, and MCP in both directions: connect other tools in, or use XataWorks’ own tools from elsewhere.

Questions

Before you install it.

I already use ChatGPT or Claude. Why would I need this?

Because XataWorks is not one of them — it is the place one of them can work. You sign in with the subscription you already pay for, and the assistant you already know turns up inside a browser, in the tabs you are already signed into.

An assistant in its own window has to be told everything, one paste at a time, and can only hand you text back. The same model, in a browser, can open the ticket, look up the order and write the reply itself — and it works in the internal tool your company built, which is not on anybody’s integration roadmap and never will be.

Am I locked in to one model?

No. Claude, ChatGPT, anything on OpenRouter, an API key you supply, or an endpoint you host yourself — and you can change your mind later. The change applies to new chats, so a conversation never changes model underneath you.

Does it cost extra to run?

XataWorks uses your own account with the model provider — a ChatGPT or Claude subscription you already have, an OpenRouter account, or an API key you supply. Nothing is resold through us.

Can it see everything on my screen?

Reading the text of a page is a separate permission from doing things in an app. It is off until you turn it on, and you turn it on for one site at a time. Two capabilities, two decisions, neither implied by the other.

Will it do something I did not want?

Anything that cannot be undone is confirmed with you before it runs, and you see which operation it is and exactly what it was asked to do. If an application has not described what an operation does, XataWorks assumes the worst about it and asks anyway.

You can answer for that one call, or settle a whole kind of call for that site — and a deliberately narrow answer stays narrow.

Do I need to set up accounts or paste in keys for my apps?

No. The built-in integrations work over the browser session you are already signed in to. There is nothing to register, no token to create, and no second login — and the assistant never sees the credentials that signed you in.

What if I use an app that is not on the list?

XataWorks works with any web application that describes what it lets an assistant do, so it is not limited to the ones built in today — and an application that describes itself needs no adapter from us at all. If the one you need has not done that yet, tell us which it is and we will take it from there.

Do I have to write skills to get anything out of it?

No — it is useful on day one with no configuration at all. Skills are for the jobs you find yourself explaining twice: your procedure, your conventions, the things a capable stranger wouldn’t know about your business.

Get XataWorks.

Installers for macOS (.dmg), Windows (.exe) and Linux (.deb). There is nothing to set up first — everything it needs is in the download.