← ManualLetterA5 palmIn the print dialog choose Save as PDF, margins Default, and turn Background graphics on.

Owner's manual

Cockpit Flight Deck Manual

Muse for Mule.

How to set up, connect and fly Cockpit. Written for an architect who leads a small team and will test with free throwaway accounts before connecting anything real.

Support: support@cockpitai.io

Contents

  1. 1Welcome and how this manual worksWhat this manual is for, the words it uses, how it is laid out and the rules that keep a first test drive safe.
  2. 2What Cockpit is and the safety modelWhat Cockpit does, how Sandbox and Production differ, how approval cards work, what is stored, and where your data goes.
  3. 3Pre-flight: make your test accountsBuild a set of free, throwaway accounts from a public Gmail, so the first flights touch nothing real.
  4. 4BoardingRequest access, wait for approval, sign in, understand the 7-day trial, and read the first screen.
  5. 5The controlsEvery screen and control in the console: the rail, the chat, the mode chip, Connectors, Approvals, Account, the microphone, the attach menu, and the desktop and phone apps.
  6. 6Connecting each systemConnect Salesforce, MuleSoft, GitHub, Slack and Postman, test-drive accounts first, then the notes for real systems.
  7. 7Your first flightsExample prompts for each built-in guide, what a good answer looks like, and what to check before you trust it.
  8. 8Production flightHow writes work, how to switch Production mode on and off, the checklist to use before you approve a card, and how to check the result.
  9. 9Captain and CrewTeams: one or more Captains, any number of Crew, and what each can do. Switched on per customer, for teams only.
  10. 10TroubleshootingThe messages you may see, in the words the product uses, what each means and what to do.
  11. 11GlossaryThe words used in the product and in this manual, in alphabetical order.
  12. 12Quick reference cardOne page to keep beside you: the modes, the approval check, the commands and where to find things.
  13. 13The WorkbenchRun SOQL and SOSL on a connected Salesforce org, chart the results, browse its objects, fields and setup data, read its Apex logs, watch its limits, and see your MuleSoft deployments, APIs and logs, on a screen that only reads.
  14. 14The project boardSee what the Copilot is working on, what is finished and what is waiting for you, on a board whose cards move by themselves. Beta, switched on for testers.
  15. AAppendicesThe scopes each connector asks for, keyboard and platform notes, how to reach support, and the owner's Admin Health view.
  16. Screenshots to captureThe figures still to be captured, with the page and state for each.

Chapter 1

Welcome and how this manual works

What this manual is for, the words it uses, how it is laid out and the rules that keep a first test drive safe.

What this manual is

This is the Cockpit Flight Deck Manual. It works like the owner's manual of a car: you do not read it front to back once and shelve it. You keep it open while you do a job, find the page for that job, follow the steps, and check the result against the lines that say what you should see.

Cockpit is a chat for people who build on Salesforce and MuleSoft. You describe what you want, the Copilot reads the systems you have connected, answers in plain words, and proposes changes that you approve one by one. Muse for Mule.

The manual is written for one reader in particular: an enterprise architect who leads a small team of developers and who will first try Cockpit on free, throwaway accounts before anything real is connected. If that is you, read chapters 1 to 4 in order, then use the rest as a reference.

ADVISORY · The test-drive rule

Connect free, throwaway accounts made with a public Gmail first. Connect real systems only after the test drive has shown you what Cockpit reads, what it asks permission for, and what it never does. Chapter 3 builds those accounts and chapter 6 connects them.

The words this manual uses

Cockpit vocabulary
WordWhat it means here
CopilotThe AI that answers in the chat, reads your connected systems with tools, and proposes changes. It works for you; it does not act on its own.
CaptainA team administrator: the person who creates a team, chooses what each member may connect, and can remove members. Only for teams, switched on per customer; see the status of this edition and chapter 9.
CrewThe members of a team. Only for teams, switched on per customer.
SandboxThe safe mode. Cockpit can read everything you have connected, and nothing can be created, changed, posted, sent or deleted.
Production modeThe mode in which Cockpit can also make changes, but only where a write action exists, and only after you approve each change on an approval card. It says nothing about what kind of org you connected.
Approval cardThe box in the chat that shows exactly what a change will do and waits for you to approve or deny it.
ConnectorA system you connect to Cockpit: Salesforce, MuleSoft, GitHub, Slack or Postman. Your Google sign-in is listed with them.

How the manual is laid out

Chapter map
ChapterUse it when you want to
1 WelcomeLearn the words and the conventions.
2 What Cockpit isUnderstand the safety model, what is stored, and what the Copilot can and cannot do.
3 Pre-flightMake the free test accounts.
4 BoardingRequest access, wait for approval, sign in.
5 The controlsFind what every screen and button does.
6 Connecting each systemConnect Salesforce, MuleSoft, GitHub, Slack and Postman.
7 Your first flightsTry the example prompts and judge the answers.
8 Production flightUnderstand writes, and use the checklist before approving one.
9 Captain and CrewInvite people, choose what each may connect, and sign in to a team (only for teams, switched on per customer).
10 TroubleshootingLook up a message you are seeing.
11 GlossaryLook up a word.
12 Quick reference cardKeep one page next to you.
13 The WorkbenchRun SOQL and SOSL, chart results, browse objects and fields, read Apex and MuleSoft logs, and see MuleSoft deployments and APIs, on a page that only reads (arriving).
14 The project boardSee your work as cards that move by themselves, and open each project phase when you are ready (beta, switched on for testers).
AppendicesScopes table, keyboard and platform notes, support contact, the owner's Admin Health view.

Each chapter is a tab. On a screen, the tabs run along the top; in the printed booklet each chapter starts on a new page. The booklet is the same text as the pages, in order, at the print view.

Reading conventions

  • Numbered steps are things you do, in order. A line that begins "You should see" says what the screen shows when the step worked. If you do not see it, stop and look at chapter 10 before going on.
  • Checklists have boxes. Tick them on paper, or copy them into your own notes.
  • Example prompts are shown in a box labelled "Ask the Copilot". Type or paste them into the chat as they are, then change the names to your own.
  • Figures marked "Screenshot" are placeholders for real captures from the test drive. The list of what to capture is at the end of the manual.
  • Illustrations are small drawings reproduced from how the product is built. They are labelled "Illustration" and are not screenshots.
Call-outs, from most to least serious
LabelMeaning
WARNINGSomething can change data in a system you care about, or cannot be undone. Read it before you act.
CAUTIONSomething can waste time or leak a secret if done carelessly.
ADVISORYUseful background or a recommendation.
TO BE CONFIRMEDA sentence the product owner has not yet confirmed. Do not rely on it until the label is gone.
ARRIVINGA feature that is designed or being built and is not in the product you are using. Nothing marked arriving is promised for a date.

The route in one page

From nothing to a safe first flight

  1. Make the test accounts (chapter 3): a public Gmail, a password manager, two Salesforce Developer Edition orgs, two MuleSoft trials, GitHub, Postman and a Slack workspace.

  2. Request access, wait for approval, sign in (chapter 4). Your 7-day trial starts at your first sign-in.

  3. Check that the chip at the top says Sandbox (chapter 5).

  4. Connect the test accounts one by one (chapter 6), pressing Test on each.

  5. Try the example prompts (chapter 7) and check each answer against the lines that say what to check.

  6. Only when you are comfortable, read chapter 8 before you switch on Production mode, and then only with a checklist in hand.

The setup runbook that this manual grew from estimated about three hours in one sitting for chapters 3 and 6 together. Treat that as an estimate: vendor sign-ups wait on emails and trial activation.

Three rules that keep you safe

  • Secrets go in the password manager, never in chat, email or a document. That includes passwords, Consumer Secrets, client secrets and API keys.
  • When a screen says a key is shown once, keep that page open until you have pasted the key where the step says. If you close it, create a new key.
  • Do every first test in Sandbox. In Sandbox nothing can be changed, even by mistake.

CAUTION

Do not paste real customer data, real credentials or anything from a production system into a test-drive chat. What you type is sent to the AI provider (chapter 2) and kept with the chat.

Status of this edition

This edition describes the product as it is built today. Where something is designed but not shipped, the text says arriving. Where the owner has not yet confirmed a statement, it says to be confirmed.

What is and is not in the product
FeatureStatus
Web console in a browserAvailable.
Mac app (Apple silicon) and Windows app (Windows 10 or 11, 64-bit)Available as beta downloads from the Account page and from the chat's top bar.
iPhone and Android appsComing. They are not available to download yet.
Attach menu (the plus button beside the chat box)Arriving. It exists in the build but is switched off for most accounts.
Org Discovery ReportAvailable where it is switched on for your environment; ask support if you do not see it.
Teams: Captain and CrewBuilt. Only for teams, switched on per customer (chapter 9).
Project boardBeta, switched on for testers (chapter 14).
Admin Health viewFor the owner only, where switched on (Appendix D).
Writes in Production modeSwitched on in stages, one kind of write at a time (chapter 8). Until a write kind is on for your environment, the Copilot says it has no write action for it.

Vendor screens (Salesforce, MuleSoft, GitHub, Postman, Slack, Google) change often. The vendor steps in chapters 3 and 6 were written from the setup runbook and the vendors' documented flows. Where a vendor screen looks different, follow its prompts and keep to the intent of the step.

Chapter 2

What Cockpit is and the safety model

What Cockpit does, how Sandbox and Production differ, how approval cards work, what is stored, and where your data goes.

What Cockpit is

Cockpit is a chat-first console. You describe an outcome in plain words. The Copilot decides which of your connected systems to read, reads them with a fixed set of tools, and answers with what it found. When a change is needed, it proposes the change as an approval card and waits for you.

You can connect five systems: Salesforce (one or more orgs), MuleSoft (Anypoint Platform), GitHub, Slack and Postman. Your Google sign-in is listed alongside them on the Connectors page. Cockpit runs in a web browser, and as an app for Mac and Windows. Phone apps are coming.

Youbrowser or appConsolecockpitai.ioBrainCockpit's serverAnthropicthe one AI providerYour systemsSalesforce, MuleSoft,GitHub, Slack, PostmanCredentials stay in the brain's vault; the console never holds them.Answers and approval cards return along the same path.
Illustration How a question travels. The Copilot asks your connected systems through tools; the AI provider only sees the words and tool results that Cockpit sends it.

ADVISORY

Cockpit is in private beta. Access is by request and approval (chapter 4), and every account starts with a 7-day trial.

Sandbox and Production

Cockpit has two modes. They describe what Cockpit may do, not what kind of org you connected. A free Developer Edition org can be used in Production mode; a real production org can be used in Sandbox.

SandboxProduction mode (read + write)
ReadingEverything you have connected.Everything you have connected.
Changing thingsNothing can be created, changed, posted, sent or deleted. If you ask for a change, the Copilot says so and changes nothing.A change is possible only where a write action exists, and only after you approve its card.
The chip says"Sandbox: read-only, nothing can be changed" (on a phone: "Sandbox")."Production: read + write" (on a phone: "Production").
New accountsEvery new account starts here.You switch to it yourself, after a confirmation.
Switching back-Any time, with no confirmation.
Illustration The mode chip as the console draws it, in both states. It is in the top bar of the chat and in a slim bar on every other page, so the mode is always in view.

There are three ways to be more careful than the account mode:

  • Per connector. In Production mode you can turn writes off for one connector at a time (for example, Slack read-only while Salesforce can write). The switches are in the panel under the chip and on the Modes page.
  • Per chat. A single chat can be made Sandbox from its menu in the Chats panel. That chat stays Sandbox for good: it cannot be switched back, and you start a new chat to write again.
  • By attaching an org. Attaching a Salesforce org to a chat with the plus button (arriving) makes that chat Sandbox for the same reason.

The strictest setting always wins. The account mode, the chat's mode and what is switched on in the Cockpit deployment are combined, and the result is enforced on the server before any tool is offered to the Copilot. The chip is a view of that setting; it is not what protects you.

ADVISORY

Every credential you connect carries whatever power you gave it. Salesforce, GitHub, Slack and Postman credentials are not narrowed to read-only. It is Cockpit's modes, enforced on the server, that keep Sandbox read-only. That is why chapter 3 asks you to use throwaway accounts first.

Approval cards

Every write waits for an approval card. The card is built from the exact call that will run, not from a summary the AI wrote about it.

Illustration The layout of an approval card, reproduced from the console. The values are an example; a real card shows the real call.
  • Summary. One plain sentence, for example "Create a Account in Salesforce with Name".
  • Exactly what will run. The complete input, in a box you can scroll. If a change is too large to show in full, it is split into several cards instead of being cut short.
  • A SHA-256 fingerprint of that input. The approval is bound to it: if the input changed, the approval would not apply.
  • Where it lands. The card names the Salesforce org (name and address), the Slack workspace, or the GitHub repository and base branch. The approval is bound to that target too. Before the write runs, Cockpit reads the target again. If you moved the chat to another org, reconnected the org to a different address, or the repository's default branch changed, the write is not sent and the answer says why.
  • Tool name and blast radius. The name of the tool, and a short statement of how far the change reaches.
  • Approve or Deny. Denying writes nothing.
  • A card expires after 10 minutes. A late decision is refused and the card shows expired.
  • If you tighten the mode after a card appears, approving it is refused and nothing is changed.
  • "Always allow" exists only for plans and reads. It is never offered for a write, so every write needs its own approval.
  • Your approvals are listed on the Approvals page and under the Approvals tab of the Brain panel.

WARNING

An approval is your decision, not a formality. In Production mode, Approve changes a real system. Chapter 8 has the checklist to use before you press it.

What the Copilot can and cannot do

What the Copilot reads (any mode)
SystemWhat it can read
SalesforceRecords (SOQL), setup metadata (Tooling API), object descriptions and your org's API limits, within a limit of about 40 Salesforce calls per run. It can also explain a debug log you paste, without touching your org.
MuleSoftYour Anypoint organisation, its environments, what is deployed where, and your API instances with their policies.
GitHubRepositories you can see, files at a branch or tag, history, pull requests with their files and reviews, checks, Actions runs and issues.
SlackChannels you are in, the messages in them and thread replies, search, and people's names. Direct messages are a separate choice that Slack asks you for on its own page; you can say no.
PostmanWorkspaces, collections and environments of the account the key belongs to.
What it can change, in Production mode only, after your approval
SystemThe write actionLimits
SalesforceCreate one record, or update one record by its Id.Plain values only: text, number, true or false, or empty. At most 100 fields in one change.
SlackPost a message to a channel, as you.Nothing is posted without a card.
GitHubOpen a pull request.Cockpit creates a new branch named cockpit/... from the base branch with the files it gives, and opens the pull request. It never pushes to an existing branch and never merges.

Which of these write actions your account actually has depends on what is switched on in the Cockpit deployment you use. They are being switched on in stages: GitHub pull requests first, then Salesforce records, then Slack posts. The Connectors page tells you for each connector: the tag reads "Read + write" when writes are possible and "Read only (no write actions yet)" when the connector has none switched on.

What it does not do
It does notDetail
Delete records, or change metadata, Apex, flows or permissionsThere is no write tool for these in this edition.
Change MuleSoft or PostmanBoth are read-only in this edition; they have no write action.
Merge a pull request or push to an existing branchOpening a pull request on a new branch is the only GitHub write.
Read your Slack direct messages by defaultOnly after you choose that step, separately.
Retry a write that did not confirmA write is sent once. If the system did not confirm, the answer says the change may or may not have been applied, and that Cockpit did not try again. Check the system before you ask again.
Act on text it reads inside your systemsText in a log, a pull request description or a Slack message is treated as data to report, never as an instruction.
Run code tasks on a machine (the Workstation)Not available in this edition.

What is stored

WhatHow it is kept
Connection credentials (tokens, secrets, API keys)Encrypted in Cockpit's vault, separately for each person. Secrets you paste are never shown again. The Connectors page shows only metadata: who the connection is, when it was last used, when it was last tested, the scopes granted.
Chats and what they quoteYour chats and their messages are stored so you can come back to them. If the Copilot quotes a record or a log line from one of your systems, that text is stored with the chat.
ApprovalsEach card, your decision, who decided and when, and the fingerprint of the input.
An audit trailTool calls, approval decisions, mode changes, and requests that a mode held back. The Modes page shows your recent mode changes and how many requests were held back in the last 30 days.
UsageToken counts, shown on the Account page.
Access and consentYour request, your approval, your trial dates, and the date you agreed to the AI provider list.
  • Deleting a chat removes it from your list at once and for good after 30 days.
  • Disconnect stops Cockpit using a connection. Its chats are kept, but they cannot read that system again until you reconnect it. What else Disconnect removes depends on the connector, and the confirmation sentence says which: on GitHub and Slack it keeps the app details you saved so you can reconnect in one click; on a MuleSoft connection it removes the saved client id and secret; on Postman it deletes the stored key, and the key still works in Postman until you revoke it there.
  • Delete, on a connector card, removes the connection and your saved app key and secret as well.
  • Delete account on the Account page removes your account and everything in it straight away: threads, approvals, connections, usage, devices and AI consent. Cockpit asks each connected tool to revoke its access where the tool allows it. MuleSoft and Postman keys cannot be revoked by Cockpit; it deletes its copy, and you revoke them in Anypoint and Postman. Encrypted backups expire on their normal cycle.

Where your data goes: one AI provider

Cockpit uses one AI provider, Anthropic (Claude). To answer you, Cockpit sends your messages, and the results of the tools the Copilot uses for you, to Anthropic. It does that to produce replies. Before your first chat the console asks you to agree to this, and you can withdraw your agreement at any time on the Account page; chat stops until you agree again. The provider list has a version: if it ever changes, you are asked again.

Your connected systems are contacted by Cockpit's servers, using the credentials in the vault, when the Copilot calls a tool. The AI provider does not log in to your systems; it receives only what Cockpit sends it.

TO BE CONFIRMED · Privacy sentences awaiting the owner

Draft sentence 1: "Anthropic does not use content sent through its API to train its models." Draft sentence 2: "Chat history is kept for 30 days." Neither is confirmed yet. They must be checked against the Anthropic agreement, and it must be decided whether the 30 days describes the AI provider's retention or Cockpit's. Until the owner removes this label, do not rely on either sentence or quote them to your security team.

The privacy policy, in its current published form, is at cockpitai.io/privacy. Where this manual and the policy differ, the policy governs.

CAUTION

Anything you type or paste in a chat goes to the AI provider. Keep real customer data and credentials out of test-drive chats.

Chapter 3

Pre-flight: make your test accounts

Build a set of free, throwaway accounts from a public Gmail, so the first flights touch nothing real.

Why test accounts first

Before Cockpit sees anything of yours, it sees accounts that you made an hour ago and can throw away. You learn what it reads, what it asks permission for and what an approval card looks like, with nothing to lose. This is the test-drive rule.

CAUTION

Use a Gmail address that belongs to the test drive only, not your work address and not your personal one. Do not reuse a password from anywhere. Keep the throwaway accounts separate from your real administrator accounts for the same vendors.

The setup takes about three hours in one sitting if nothing waits on an email. You need a phone for verification codes and a browser in which you are signed in only as yourself. A fresh browser profile is best.

ADVISORY · Written from the runbook

The vendor steps below come from the setup runbook and each vendor's documented flow. Vendors change their screens. If a screen differs, follow its prompts and keep the intent of the step. Cockpit's own screens were checked against the code.

Your accounts sheet

Fill this in as you go. It is the one page you need if you ever have to redo a step. Do not write passwords on it.

Accounts sheet
ToolAccount name or usernameLogin addressEmail usedDone
Gmail (test)mail.google.com[ ]
Password manager[ ]
Cockpitcockpitai.io[ ]
Salesforce org 1login.salesforce.com[ ]
Salesforce org 2login.salesforce.com[ ]
MuleSoft 1anypoint.mulesoft.com[ ]
MuleSoft 2anypoint.mulesoft.com[ ]
GitHubgithub.com[ ]
Postmanpostman.com[ ]
Slack workspace[ ]

ADVISORY · A naming pattern

Choose one tidy pattern and keep to it, for example cockpit-dev1 and cockpit-dev2 for the two Salesforce orgs, with the same numbers for MuleSoft. You will thank yourself when the Connectors page lists two of each.

3.1 A public Gmail

This one address does three jobs: it is the email you sign in to Cockpit with, it receives every vendor's verification mail, and, through plus-addressing, it can stand in for several addresses. Mail sent to yourname+sf2@gmail.com arrives in the inbox of yourname@gmail.com.

  1. Open accounts.google.com/signup and create a new Google account. Pick a name that does not identify your employer, for example cockpit.testdrive.yourname.

    You should see Your new Gmail inbox opens.

  2. Add a recovery phone number, then turn on 2-Step Verification in the account's Security settings.

    You should see Google asks for a code from your phone when you sign in on a new browser.

  3. Write the address on your accounts sheet as the Email used for every row.

ADVISORY

Cockpit signs you in with Google. Sign in to Cockpit later with exactly this address: access is approved for the exact email you give in the request.

3.2 A password manager

1Password, Bitwarden or Apple Passwords all do the job. Every account below gets a strong, unique password saved here, and so does every Consumer Secret, client secret and API key you meet in chapter 6.

  1. Install the password manager and create a separate vault or folder named Cockpit test drive.

    You should see An empty vault with that name.

  2. Save the Gmail password and its recovery details in it now, before you go on.

CAUTION

Passwords, keys and secrets go into the password manager, never into chat, email, a document or this manual.

3.3 Two Salesforce Developer Edition orgs

A Developer Edition org is a free, private copy of Salesforce with sample data, made for learning. An org is one such copy. You make two: the first for the main test, the second to prove Cockpit handles more than one. Allow about ten minutes each.

Make org 1

  1. Open developer.salesforce.com/signup.

    You should see The Developer Edition sign-up form.

  2. Enter your first and last name, your Gmail address, a role (Developer is fine) and a company name (your own or the team's). Give your real country and postal code.

  3. Choose a username. It must look like an email address and must be unique across all of Salesforce, for example yourname.dev1@cockpit-test.org. It does not need to be a real mailbox. Write it on your accounts sheet.

  4. Accept the terms and click Sign me up.

    You should see A message that Salesforce has sent you a verification email.

  5. Open the email from Salesforce in your Gmail, click Verify Account, and set a strong password. Save it in the password manager.

  6. Register a way to verify it is you if Salesforce asks (an authenticator app on your phone). It is required.

    You should see You land inside Salesforce.

  7. Bookmark the page. Note the address in your browser: it ends in .salesforce.com.

Figure 1. Salesforce Setup home of a new Developer Edition org. Capture details are item 1 in the list of screenshots to capture. Call-outs to draw: 1 Quick Find search box; 2 Address bar ending in .salesforce.com.

Make org 2

  1. Repeat the steps above with the username yourname.dev2@cockpit-test.org. The username must differ from org 1. The email can be the same Gmail; if Salesforce complains or the verification mail does not arrive, use a plus-address such as yourname+sf2@gmail.com.

Check that each org works

  1. In each org, click the gear icon at the top right, then Setup.

    You should see A page with a search box called Quick Find opens. If it does, the org works.

ADVISORY · Two things to know

Developer Edition orgs are free but are removed if nobody signs in for a long time, so sign in to each at least once a month. And when Cockpit later asks "Where do you log in to Salesforce?", a Developer Edition org logs in at login.salesforce.com. Cockpit's wording for that choice is "Production (login.salesforce.com)". That names the login address; it has nothing to do with Cockpit's Sandbox and Production modes.

3.4 Two MuleSoft trial accounts

MuleSoft Anypoint Platform is where companies build and run the connections between their systems. You make two free trial accounts. Trials last a limited time, so plan to do the whole test drive within a week of creating them. Allow about ten minutes each.

Create trial account 1

  1. Open anypoint.mulesoft.com/login/signup and choose the free trial.

    You should see The trial sign-up form.

  2. Fill in your name, email, company and country. Use a different plus-address of your Gmail for each trial.

  3. Verify the email, set a strong password, save it in the password manager, and finish the organisation set-up. Screens change; follow the prompts and keep the defaults.

    You should see You are inside Anypoint Platform.

  4. Look at the address bar. anypoint.mulesoft.com is the United States region, eu1.anypoint.mulesoft.com is Europe, and gov.anypoint.mulesoft.com is Government. Write the region on your accounts sheet. You pick the same region in Cockpit later.

Figure 2. Anypoint Platform home of a new trial account, with the address bar. Capture details are item 2 in the list of screenshots to capture. Call-outs to draw: 1 Address bar host (shows the region); 2 Organisation name.

Create trial account 2

  1. Repeat with a second plus-address.

    You should see A second Anypoint organisation.

The connected app that lets Cockpit read each Anypoint account is made in chapter 6, once Cockpit is open next to it.

3.5 GitHub

GitHub is where software teams keep their code. Cockpit reads code from it and, in Production mode, can propose a change as a pull request, which your team reviews before anything is merged. Allow about five minutes.

  1. Open github.com/signup and create a free account with your Gmail. Pick a username such as yourname-cockpit-test.

    You should see A new GitHub account.

  2. Verify the email and turn on two-factor authentication (Settings, then Password and authentication). GitHub requires it for most work.

  3. Create a practice repository: click + at the top right, New repository. Name it cockpit-practice, choose Private, tick Add a README file, and create it.

    You should see A private repository with a README. It gives the Copilot something to read.

Figure 3. The private cockpit-practice repository on GitHub. Capture details are item 3 in the list of screenshots to capture. Call-outs to draw: 1 Private badge; 2 README.

3.6 Postman

Postman is a tool for testing and documenting APIs. Postman does not let other apps sign in on your behalf, so Cockpit uses an API key that you create. A Postman key can do everything its owner can do, and Postman cannot limit it to read-only.

WARNING

Use a Postman account made just for this test, never your main one. In Sandbox, Cockpit's modes keep the Copilot to reading, but the key itself is full-power.

  1. Open postman.com and click Sign Up for Free. Use your Gmail, and save the password in the password manager.

    You should see A new Postman account.

  2. Create a workspace named Cockpit practice (Workspaces, then Create Workspace, then Personal).

  3. Inside it create a collection named Orders API (New, then Collection), so the Copilot has something to find.

    You should see The collection appears in the workspace.

The API key is created in chapter 6, next to Cockpit's page for it.

3.7 Slack

Cockpit connects to Slack through your own Slack app, so for the test drive you make a free workspace of your own. You make the app itself in chapter 6, because it needs a web address that Cockpit shows you.

  1. Open slack.com/get-started and create a new workspace with your Gmail. Name it cockpit-test.

    You should see A new, empty Slack workspace.

  2. Create a channel named cockpit-practice and post one sentence in it, so there is something to read.

    You should see The channel lists your message.

  3. Write the workspace name on your accounts sheet.

Figure 4. The new Slack workspace with the cockpit-practice channel. Capture details are item 4 in the list of screenshots to capture. Call-outs to draw: 1 Workspace name; 2 #cockpit-practice channel.

Pre-flight checklist

Pre-flight checklist

  • A test Gmail exists, with 2-Step Verification on.
  • A password manager holds a vault called Cockpit test drive.
  • Salesforce org 1 and org 2 exist; Setup opens in each; usernames are on the accounts sheet.
  • MuleSoft trial 1 and 2 exist; the region of each is on the accounts sheet.
  • A GitHub account exists with two-factor authentication on, and a private cockpit-practice repository.
  • A Postman account exists with a Cockpit practice workspace and an Orders API collection.
  • A Slack workspace exists with a cockpit-practice channel.
  • No password, key or secret is written anywhere except the password manager.
  • A calendar reminder is set to revoke the Postman key and the test apps when the test drive ends.

Chapter 4

Boarding

Request access, wait for approval, sign in, understand the 7-day trial, and read the first screen.

The route

Illustration Boarding in five stops. Approval is a person reading your request, so the second stop takes as long as it takes: usually a day or two.

Cockpit is in private beta. Nobody can use it until their email address has been approved, and approval is for the exact address you give. Use the test Gmail from chapter 3 throughout.

4.1 Request access

  1. Open cockpitai.io/request-access. The front page at cockpitai.io also has a Request access link under the Enter Cockpit button.

    You should see A page titled Request access with four boxes.

  2. In Email you sign in with, type the test Gmail address. If you are already signed in, the box is filled in and locked to your signed-in address, with the line "You are signed in as ... We approve this exact address."

  3. Fill in Your name, Company and What would you use Cockpit for? In the last box, say plainly that you are doing a test drive with throwaway accounts for an architect-led team. Nothing else is required.

  4. Click Request access.

    You should see The page changes to: "Thank you. We have your request and will email you when you are in. Your 7-day Pro trial starts when you first sign in, no card needed."

Figure 5. The Request access page. Capture details are item 5 in the list of screenshots to capture. Call-outs to draw: 1 Email you sign in with; 2 What would you use Cockpit for?; 3 Request access button.

CAUTION

If the page says "Enter a valid email address.", the address is mistyped. If it says "Could not send that. Please try again in a moment.", wait a minute and send again; nothing was recorded.

4.2 Wait for approval

On the Cockpit side, an administrator reads the request in an Admin page that only administrators see, and approves or declines the exact email address. Approving sends you an email with the subject You are in: welcome to Cockpit. It says to sign in with Google, and that your 7-day Pro trial starts when you first sign in.

If you sign in before you are approved, Cockpit does not let you in. It shows a waiting screen:

Figure 6. The Waiting for approval screen. Capture details are item 6 in the list of screenshots to capture. Call-outs to draw: 1 Waiting for approval pill; 2 Signed-in-as line; 3 Request access button.
  • A pill reading Waiting for approval.
  • The sentence "Cockpit is in private beta, so request access and we will email you as soon as you are in."
  • "You are signed in as ..." with your address.
  • Three steps: ask for access with the button; requests are reviewed and you are emailed, usually within a day or two; once approved, reopen Cockpit and sign in with the same Google account.
  • A Request access button, and the support address support@cockpitai.io.

CAUTION · Hidden Apple email

If you sign in with Apple and choose to hide your email, Apple gives Cockpit a relay address that can never match an approved address. The waiting screen then says so. Sign in with the email you were approved under, or add that email to your account and make it your primary one. For the test drive, use Google.

ADVISORY

The waiting screen also offers Delete account, so you can leave without a trace at any point, approved or not.

4.3 Sign in

  1. When the approval email arrives, open cockpitai.io and click Enter Cockpit.

    You should see A sign-in page with the Cockpit mark and one or two buttons: Google, and Apple where it is switched on. There is no email or password box.

  2. Choose Google and sign in with the test Gmail you were approved under.

    You should see After a moment the words "Opening Cockpit..." appear, then the console.

  3. If this is your first sign-in, a dialog titled Before your first chat appears when you send your first message. See the next section.

Figure 7. The sign-in page. Capture details are item 7 in the list of screenshots to capture. Call-outs to draw: 1 Google button.

ADVISORY · The desktop apps

In the Mac and Windows apps, Enter Cockpit opens your browser to sign in with Google, then hands you back to the app. On the Mac, the first time you open the app, macOS asks whether to open an app downloaded from the internet: click Open. Chapter 5 covers downloading the apps.

ARRIVING · Sign in to a team

Only for teams, switched on per customer. On a build with Teams switched on, a quiet line under the Google button reads Sign in to a team. It opens a door with an email and password form for people a Captain invited. If your sign-in page has no such line, ignore this: you sign in with Google as above. See chapter 9.

4.4 Your 7-day trial

The trial starts the first time you sign in, not when you request access or when you are approved. No card is asked for. A bar at the top of the console counts it down.

  • During the trial: "Pro trial: N days left. No card needed."
  • After it: "Your 7-day Pro trial has ended. You can still read everything." Cockpit becomes read-only: you can read everything, but you cannot start chats, decide approvals or change connections. The bar offers Join the waitlist for paid; online payment is not available.
  • An administrator can extend or end a trial.

ADVISORY

Plan the test drive to fit inside the seven days. The MuleSoft trials are time-limited too, so make the accounts in chapter 3 shortly before you start.

4.6 Your first screen

After you sign in the console opens on the chat. This is what is on it. Chapter 5 describes every control in turn.

Figure 9. The console on first sign-in. Capture details are item 9 in the list of screenshots to capture. Call-outs to draw: 1 Rail; 2 Trial bar; 3 Chats button; 4 Mode chip showing Sandbox; 5 Brain button; 6 Org picker; 7 Message box and microphone.
WhereWhatWhat to check on your first visit
Far left (bottom bar on a phone)The rail: Console, Search chats, Approvals, Connectors, Account, and your profile menu.Five icons, with an extra Admin icon only for administrators.
Top bar, leftChats button, and a chip showing the connected org, or "No org connected"."No org connected" is right: you have not connected anything yet.
Top bar, rightA Download for Mac or Download for Windows button, the mode chip, and the Brain button.The mode chip says Sandbox.
Above the message boxA picker for the Salesforce org or MuleSoft connection this chat will use."No Salesforce org connected. Connect one."
BottomThe message box: "Describe the outcome you want...", a microphone, and a send button.The line beneath it: "Every write the Copilot proposes waits for your approval. Nothing ships without you."

WARNING · Check the chip before anything else

The mode chip must say Sandbox ("Sandbox: read-only, nothing can be changed"). New accounts start in Sandbox, so it should. If it says Production, stop and open the chip to switch back, before you connect anything.

Boarding checklist

Boarding checklist

  • Access requested with the test Gmail address.
  • The approval email arrived (subject: You are in: welcome to Cockpit).
  • Signed in with Google, with the same address.
  • The 7-day trial bar shows days left, and no card was asked for.
  • I agreed to the AI provider list (or I know where to do it).
  • The mode chip says Sandbox.
  • The Connectors page opens with a Salesforce card and a MuleSoft card at the top and the Connected and Available tabs below. Nothing of yours is connected yet.

Chapter 5

The controls

Every screen and control in the console: the rail, the chat, the mode chip, Connectors, Approvals, Account, the microphone, the attach menu, and the desktop and phone apps.

5.1 The rail

The rail runs down the left edge and stays in view on every page. On a phone (480 px wide or narrower) it becomes a bar along the bottom. Each icon has its name as a tooltip and as its accessible label.

Illustration The rail, top to bottom, with the icons the console draws.
IconGoes toNotes
ConsoleThe chat.The Cockpit mark above the icons also goes there.
Search chatsOpens the Chats panel with the search box ready.On the chat page it opens the panel in place; elsewhere it goes to the chat first.
ApprovalsThe Approvals page (5.6).
ConnectorsThe Connectors page (5.5).A small red dot means at least one connection needs reconnecting.
WorkbenchThe Workbench (chapter 13).Only where it is switched on.
BoardThe project board (chapter 14).Beta, switched on for testers.
AccountThe Account page (5.7).The Modes page and the Workstation page sit under it.
AdminThe administrators' page.Shown only to administrators: access requests, trials and usage.
Profile menuYour name, account management and Sign out.At the bottom of the rail.

The Connectors, Approvals, Modes and Account pages also show a settings list at their left (a row of links on a narrow screen). Modes is reached from that list, from the Account page, or from the chip's panel. In a team, a Team entry is in that list too (chapter 9).

5.2 The chat

The chat is where you work. From top to bottom, left to right:

ControlWhat it does
Chats button (top left)Opens the Chats panel: your list of chats with a search box and a New thread button.
Org chipShows which org or connection this chat uses, for example "Salesforce: Acme Dev (sandbox)", or "No org connected".
Download for Mac / WindowsA button for your own computer's app. It does not appear inside the apps, on phones, or on other systems. See 5.10.
Mode chipShows Sandbox or Production. Opens the mode panel (5.4).
Brain buttonOpens the Brain panel (5.3). A number beside it counts the steps Cockpit has run.
Org picker (above the message box)Appears on a new chat before it has started. Pick the Salesforce org, or the MuleSoft connection, this chat will use. If you have none, it says "No Salesforce org connected" with a link to connect one.
API meter (above the message box)A line such as "API calls this run: 4 of 40 · org allowance left: 94,210" with a small bar. It appears after a tool result reports the numbers, so it is hidden until Cockpit has asked your org something. The 40 is the cap on Salesforce calls in one run.
Message box"Describe the outcome you want...". Enter sends. Shift and Enter start a new line.
MicrophoneDictation. See 5.8.
Send (the up arrow)Sends the message. It is disabled while a reply is being written, if Cockpit is unreachable, if the box is empty, and after your trial has ended.
Illustration The message box. The plus button on the left is the attach menu, which is arriving (5.9).

Under the box, one line repeats the safety promise: "Every write the Copilot proposes waits for your approval. Nothing ships without you."

A banner at the top of a chat says when Sandbox is on: "Sandbox is on: Cockpit can read your connected systems but nothing can be changed. If you ask for a change, it will say so and change nothing." If only that chat has been made Sandbox, the banner says that chat stays Sandbox.

While the Copilot works, you see its steps stream into the chat. If your connection drops during a run, the console reconnects to the run by itself with growing pauses, so a deploy or a network blip does not lose the answer.

ADVISORY · Slash command

Typing /discovery and pressing Enter runs the Org Discovery Report on the chat's org (or the org you picked). No AI model is involved in running it, so it does not need the AI consent. See chapter 7.

5.3 The Chats panel and the Brain panel

Figure 10. The Chats panel with a few chats. Capture details are item 10 in the list of screenshots to capture. Call-outs to draw: 1 New thread; 2 Search chats; 3 Sandbox tag; 4 Options menu.
  • New thread starts a chat. Search chats finds earlier ones by their words.
  • Each chat has an Options menu with Rename, Delete, and Make this chat sandbox. After you use the last, the menu reads "This chat is Sandbox" and the chat carries a green Sandbox tag. A chat can only be tightened this way, never loosened.
  • An amber dot beside a chat means it is waiting for your approval.
  • Delete asks first. The chat leaves your list at once and is removed for good after 30 days.

Under 900 px wide, the Chats and Brain panels open as drawers over the conversation. Escape closes a drawer.

Figure 11. The Brain panel on the Activity tab. Capture details are item 11 in the list of screenshots to capture. Call-outs to draw: 1 Tabs: Activity, Approvals, History, Settings; 2 A tool line; 3 API usage; 4 Read-only badge.

The Brain panel says who is working and what it did. It has four tabs:

TabWhat it shows
ActivityOne line per tool Cockpit ran for you, with a time. Empty until something is read.
ApprovalsHow many approvals are waiting on you in this thread, and a link to the Approvals page.
HistoryPlans and approvals for this thread.
SettingsLinks to Connectors and Account.

The panel also shows API usage for your Salesforce org ("No Salesforce API calls in this thread yet" until one is made) and a Safety badge: "Read-only" with "Sandbox is on: nothing can be changed.", or "Read + write" with "Production mode (read + write): every change asks for your approval first."

5.4 The mode chip, the mode panel and the Modes page

Illustration The mode chip in both states. Wide windows show the long wording; a phone shows Sandbox or Production only.

Click the chip to open the mode panel. It has a master switch and a row for each connector.

Figure 12. The mode panel opened from the chip. Capture details are item 12 in the list of screenshots to capture. Call-outs to draw: 1 Master switch; 2 A connector row; 3 Mode settings link.
  • Production mode (read + write) is the master switch. Turning it on asks you to confirm: "Switch to Production mode (read + write)?" The confirmation says Cockpit will be able to make changes where a write action exists, that every change still asks for your approval, that the mode does not describe what kind of org is connected, and that you can switch back to Sandbox at any time with no confirmation. The buttons are Switch to Production mode and Stay in Sandbox.
  • Per connector rows (Salesforce, MuleSoft, Slack, GitHub, Postman, Workstation) show, in Sandbox, "read only in Sandbox". In Production mode, each shows "can write, each write asks for approval" with a switch you can turn off, which changes it to "read only (you switched writes off)". A connector with no write action shows "read only (no write actions yet)" and its switch is locked.
  • The Modes page has the same switches, a note that a new chat follows the account mode, a count of requests held back by a mode in the last 30 days ("These are not errors: nothing was changed."), and a list of recent mode changes with times.

ADVISORY

Every Connectors card carries a small tag that tells you what Cockpit can do with it right now: "Read only (Sandbox)", "Read + write", "Read only (writes off)" or "Read only (no write actions yet)". It describes Cockpit, never the connected org.

5.5 Connectors

Open Connectors from the rail. The page explains that you have one connection per platform, except Salesforce and MuleSoft, where you can connect several and pick one for each chat. Google is how you signed in.

Figure 13. The Connectors page before anything is connected. Capture details are item 13 in the list of screenshots to capture. Call-outs to draw: 1 Settings list at the left; 2 Search; 3 Connected and Available tabs; 4 Salesforce card; 5 A Connect button.
  • A Search box filters by name.
  • Two tabs, Connected and Available, with counts. The page opens on Available until something is connected.
  • The Salesforce and MuleSoft cards sit above the tabs, because each can hold several connections.
  • Each other connector is a row. Click its name to open its detail: Identity (who the connection is), Health (status, last test, connected since, last used, token expiry, last error) and App (which app, the saved key and whether a secret is saved, and the scopes, summarised as "N permissions (show all)").
  • A row shows connected or not connected, its capability tag, and a Connect button when it is not connected.
  • A connected row has Test, Reconnect, Disconnect and, for connectors you connect with your own app or key, Delete. Test makes one real read-only call and reports "Test passed" or "Test failed" with a reason. Each of Disconnect and Delete asks you to confirm.

The Salesforce card lists every org you connected, each with its name, org-type chip, a health label (Working, Needs reconnect, or Not checked yet), when it was connected and last used, and buttons:

Figure 14. The Salesforce card with a connected org. Capture details are item 14 in the list of screenshots to capture. Call-outs to draw: 1 Add Salesforce org; 2 Org name and type chip; 3 Health label; 4 Rename, Reconnect, Disconnect.
  • Add Salesforce org opens the four-step guide of chapter 6. Setup guide opens the same guide.
  • Rename gives an org a name you recognise (up to 120 characters).
  • Reconnect replaces that org's sign-in. Disconnect keeps the org's chats but they cannot read it until you reconnect.
  • Run discovery report (where switched on) reads the org once and writes the Org Discovery Report into a chat. Hovering it says "Reads this org and writes a report. It changes nothing in Salesforce." The finished report can be downloaded as Markdown (.md) or as its tables in CSV.

The MuleSoft card works the same way, with Add MuleSoft connector, and shows the region and organisation of each connection. A red notice at the top of a card with "Needs reconnect" means the provider refused the saved sign-in.

ADVISORY

When you come back from connecting a system, the page tells you what happened in one line (for example "GitHub is connected.") and opens that card. Chapter 10 lists the messages for when it did not work.

5.6 Approvals

The Approvals page lists every approval card waiting across all your chats, grouped by chat, newest first, with a Refresh button. It says: "Every write the Copilot proposes waits here. Nothing ships without you." When nothing is pending it shows "All clear" and "No pending approvals." with a link back to the console.

Figure 15. The Approvals page with nothing pending. Capture details are item 15 in the list of screenshots to capture. Call-outs to draw: 1 Refresh; 2 All clear message.

Each card has the layout shown in chapter 2: summary, exactly what will run, fingerprint, tags and the target. Approve and Deny decide it. A decided card shows who decided and when. After your trial has ended, both buttons are disabled and a line says so.

ADVISORY

Only a card still waiting appears here; decided cards remain in the chat they came from and in the Approvals tab of the Brain panel.

5.7 Account

Figure 16. The Account page. Capture details are item 16 in the list of screenshots to capture. Call-outs to draw: 1 Sign out; 2 Standing approvals; 3 AI processing; 4 Downloads; 5 Usage; 6 Delete account.
SectionWhat it holds
IdentityYour name, email and avatar, and a Sign out button.
ConnectionsA link to Connectors.
ModesA link: "Sandbox and Production".
Standing approvalsTools you chose to "Always allow", each with a Revoke. It says "None. Cockpit asks for your approval every time." until you allow one. Standing approval is offered only for plans and reads, never for writes.
AI processingThe provider list you agreed to, a link to the privacy policy, and Withdraw consent.
Cockpit appA link to open the app, where that is available, or to get it.
DownloadsCockpit for Mac and Cockpit for Windows (5.10).
UsageInput tokens and Output tokens, totals for your account.
Delete accountDeletes your account and everything in it, after you type the confirmation word. It cannot be undone.

5.8 The microphone

The microphone beside the send button dictates into the message box, using your browser's or phone's own speech recognition. Cockpit's servers do not do the speech recognition. The button is hidden where the browser has none.

  1. Click the microphone. Allow the microphone for this site if your browser asks.

    You should see The button changes to Stop listening, and a note says "Listening... tap the microphone again when you are done."

  2. Speak, then click the microphone again.

    You should see Your words are added after anything already in the box, with a space between. Nothing is sent: you read it, then press Send.

Figure 17. The message box while the microphone is listening. Capture details are item 17 in the list of screenshots to capture. Call-outs to draw: 1 Microphone button (listening); 2 Listening note.
MessageMeaning
Cockpit cannot use the microphone. Allow it for this site in your browser or phone settings, then try again.Permission was refused. Change it in the browser's site settings.
I did not hear anything. Try again, closer to the phone.Nothing was recognised.
Voice input is not working right now. You can still type.The browser's recognition failed. Type instead.

CAUTION

Check dictated names and Ids before you send. Speech recognition mishears record names, and an approval later depends on the exact text.

5.9 The attach menu (arriving)

ARRIVING

The plus button beside the message box is built but switched off for most accounts. If your message box has no plus, that is expected. What follows describes it so that you know what is coming.

  • Plus opens a small menu: Salesforce org (with a count such as "2 connected"), or Connect something new.... With no org connected, the first entry reads Connect a Salesforce org.
  • Choosing Salesforce org opens a sheet, Attach a Salesforce org: pick the org, give it a short name (lower-case letters, digits and dashes, up to 24 characters, starting with a letter or digit; suggestions are dev, qa and uat for a sandbox and prod for Production), and press Attach.
  • The sheet shows Access as Read only; "Read and write" is greyed out with the note "Writing through an attached org comes later. For now it is read only."
  • A chat can have up to 4 orgs attached. They appear as chips such as "dev · Salesforce · read only", each with a Detach button, and you can then ask the Copilot to compare them by name.

WARNING

Attaching an org makes the chat Sandbox, and a chat never goes back. The sheet warns you: "Attaching makes this chat read only. It stays read only, so start a new chat if you need to change something."

5.10 The desktop apps

Cockpit for Mac and Cockpit for Windows are the same console in a window of its own. They are beta downloads. The download buttons appear for approved accounts only, on the Account page and in the chat's top bar, and not inside the apps.

Figure 18. The Mac and Windows download cards. Capture details are item 18 in the list of screenshots to capture. Call-outs to draw: 1 Download button; 2 Install steps.
MacWindows
SystemApple silicon.Windows 10 or 11, 64-bit.
ButtonDownload for Mac.Download for Windows.
InstallOpen the downloaded DMG and drag Cockpit to Applications. Open it from Applications; the first time, macOS asks whether to open an app downloaded from the internet: click Open.Run the downloaded installer. It installs just for you and does not ask for an administrator password. Open Cockpit from the Start menu or the desktop shortcut.
Sign inClick Enter Cockpit. Your browser signs you in with Google and hands you back to the app.The same hand-off, through the cockpit:// address.

The card for your own system comes first with the main button; the other follows as a second choice.

Use the Cockpit menu

  1. In the app, open the Cockpit menu in the menu bar. On Windows the bar is hidden until you press Alt.

    You should see New chat, Connections, Workbench and Approvals, each with its shortcut. The same menu is in the Mac and Windows apps.

  2. Choose an entry, or press its shortcut.

    You should see New chat starts a chat. The others open that page in the app's window.

Figure 19. The Cockpit menu of the desktop app. Capture details are item 19 in the list of screenshots to capture. Call-outs to draw: 1 New chat; 2 Connections, Workbench, Approvals; 3 Shortcuts.
Desktop shortcuts
MacWindowsTo
Command + NCtrl + NNew chat
Command + Shift + CCtrl + Shift + CConnections
Command + Shift + BCtrl + Shift + BWorkbench
Command + Shift + ACtrl + Shift + AApprovals

The menu bar also has the usual Edit, View and Window menus, and a Help menu with Cockpit Manual (opens this manual in the app), Check for Updates and Copy Diagnostics. The zoom, reload and close keys are the ones every app uses. Check for Updates tells you only when a newer version exists; it never installs anything. Where update checks are not switched on, it opens the Cockpit website instead.

Copy Diagnostics for support

  1. Choose Help, then Copy Diagnostics.

    You should see A message: "Diagnostics copied. App, system and service versions are on your clipboard. They contain no account details."

  2. Paste into your message to support (Appendix C).

Figure 20. The Diagnostics copied message in the desktop app. Capture details are item 20 in the list of screenshots to capture. Call-outs to draw: 1 Help menu entry; 2 Diagnostics copied message.
It containsIt does not contain
The app version, and whether it is installed.Your name, email or account.
Your system and its version and type, and the versions of Electron, Chromium and Node the app is built on.Any token, password, key or sign-in ticket.
The website host the app talks to (only the host name).Any page address, path or query, chat text or connection.
The version of the Cockpit website and the Brain service, as they report themselves, and the time.Anything you have connected or approved.

A line reads "unknown" when it could not be found, for example the service versions when you are offline.

If Cockpit cannot be reached

  1. Open the app with no internet, or lose the connection while it is open.

    You should see A plain screen: "Cockpit can't be reached. Check your internet connection. Cockpit will try again by itself." with a Try again now link.

  2. Reconnect, or press Try again now.

    You should see Cockpit opens as before. Automatic tries come 5 seconds apart at first and then further apart, up to once a minute.

Figure 21. The Cockpit can't be reached screen in the desktop app. Capture details are item 21 in the list of screenshots to capture. Call-outs to draw: 1 Heading; 2 Try again now link.

If the page itself stops working, the app reloads it, up to three times in a minute, and then leaves you on that screen. The app also remembers its window size and place, and reopens in them; if a screen has been unplugged it opens on one that is there. The window cannot be made smaller than 900 by 600.

ADVISORY

Two extras in the apps are switched off unless switched on for you: a count of waiting approvals in the window title, with one notice when a new one arrives, and the update check. Do not expect them unless support told you they are on.

ADVISORY

The Windows installer is signed. The Windows card would carry a SmartScreen note ("click More info then Run anyway") only for an unsigned build; the current build shows none.

5.11 Phones

ARRIVING

iPhone and Android apps are coming. They are not available to download. Until then, the console works in a phone's browser: the rail becomes a bottom bar, the Chats and Brain panels become drawers, and controls are at least 44 px tall.

Figure 22. The console on a phone-width screen. Capture details are item 22 in the list of screenshots to capture. Call-outs to draw: 1 Bottom rail; 2 Short mode chip; 3 Message box.

Controls checklist

Controls checklist

  • I can find the mode chip on the chat and on the Connectors page.
  • I opened the Chats panel and the Brain panel and know what each shows.
  • I know where the Approvals page, the Modes page and the Account page are.
  • I tried the microphone, or I know it is optional.
  • I know the plus button is arriving and may not be on my screen.

Chapter 6

Connecting each system

Connect Salesforce, MuleSoft, GitHub, Slack and Postman, test-drive accounts first, then the notes for real systems.

Before you connect anything

Do this chapter in two passes. Pass one connects the throwaway accounts from chapter 3. Pass two, only after the test drive, covers what changes when the systems are real; it is at the end of the chapter.

Before connecting checklist

  • You are signed in to Cockpit and the mode chip says Sandbox.
  • The password manager is open, with the Cockpit test drive vault ready for each key and secret.
  • You are signed in to each vendor's website as the test account in a browser profile that holds nothing else.
  • You have two tabs open: Cockpit's Connectors page, and the vendor.

ADVISORY

Every connector's connect page shows a value you must copy exactly (a callback or redirect URL). Copy it from Cockpit's page each time. Do not type it, and do not reuse one from an earlier environment: Cockpit shows the address that belongs to the console you are using.

How each system connects
SystemDoorYou createYou paste into Cockpit
SalesforceYour own External Client App, sign-in with PKCEAn External Client App in each orgConsumer Key (and Secret, if the app has one)
MuleSoftYour own connected app, client credentialsA connected app in AnypointClient id and client secret
GitHubCockpit's GitHub sign-inNothingNothing
SlackYour own Slack app, sign-inA Slack app in your workspaceClient id and client secret
PostmanAn API keyA key in PostmanThe key

6.1 Salesforce

Salesforce only lets an outside program in through an app that you create and control. Salesforce calls it an External Client App. You make one per org, copy its Consumer Key (and Secret) into Cockpit, and Cockpit sends you to Salesforce to sign in and approve. You decide the permissions. Do this once for org 1, then once for org 2; allow about ten minutes each.

In Cockpit

  1. Open Connectors, find the Salesforce card and click Add Salesforce org.

    You should see A guided page with four numbered steps.

  2. Step 1. Where do you log in to Salesforce? Choose Production (login.salesforce.com) for a Developer Edition org. The other choices are Sandbox (test.salesforce.com) and My own domain (type an address like your-company.my.salesforce.com).

    Caution This names the login address only. It is not Cockpit's Sandbox or Production mode.

  3. Step 2. Copy the Callback URL and the Scopes boxes. Leave this tab open.

    You should see The Scopes box reads: api refresh_token.

Figure 23. The four-step Salesforce guide in Cockpit. Capture details are item 23 in the list of screenshots to capture. Call-outs to draw: 1 Org type choice; 2 Callback URL; 3 Scopes box reading api refresh_token; 4 Step 4 button.

In Salesforce (second tab, signed in to org 1)

  1. Click the gear icon, then Setup. In Quick Find type External Client App Manager and open it. Click New External Client App.

    You should see A form for a new external client app.

  2. Name it Cockpit and enter your email as the contact.

  3. Under OAuth Settings, tick Enable OAuth and paste the Callback URL you copied.

  4. Add exactly two scopes: Manage user data via APIs (api) and Perform requests at any time (refresh_token, offline_access). Cockpit's own list is api and refresh_token; the second Salesforce label is how Salesforce names that scope.

    Caution Add no other scopes.

  5. Tick Require Proof Key for Code Exchange (PKCE) and the authorization code flow. Leave every other flow off.

  6. Click Create. Wait about two minutes: Salesforce needs a moment to switch the app on.

  7. Open the app, then Settings, then OAuth Settings, and click Consumer Key and Secret. Copy both into the password manager.

    You should see Two long codes.

Figure 24. The External Client App's OAuth settings in Salesforce. Capture details are item 24 in the list of screenshots to capture. Call-outs to draw: 1 Callback URL; 2 The two scopes; 3 PKCE option.

Back in Cockpit

  1. Step 3. Paste the Consumer Key. Paste the Consumer Secret too if your app has one; the box says it is optional if the app uses PKCE only. The secret is encrypted and never shown again.

  2. Step 4. Click Step 4. Sign in and approve. A Salesforce page asks you to allow Cockpit. Click Allow.

    You should see You return to Connectors, a line says Salesforce is connected, and the card lists your org with its name, an org-type chip and the health label Working or Not checked yet.

  3. Repeat the whole procedure for org 2 with Add Salesforce org.

    You should see Two orgs on the card. Each chat now lets you pick one.

Prove it: start a chat, pick the org, and ask the first prompt in chapter 7 ("How close is this org to its API limits?"). A real number means the connection works.

ADVISORY

Rename each org on its card to something you will recognise, such as dev1 and dev2. The names appear in the org chip and in approval cards.

CAUTION

Salesforce says "redirect_uri_mismatch"? The callback in the app differs from the one in Cockpit's step 2. Copy it again with no spaces and save the app. "invalid client"? Wait two minutes after creating the app, then copy the key again. An approval error after sign-in? In the app's policies, let all users self-authorize, or approve your user, then retry. Chapter 10 has the full list.

6.2 MuleSoft

Cockpit reads your Anypoint organisation through a connected app that you create and that acts on its own behalf (client credentials). Cockpit only reads from Anypoint, so the app gets read-only scopes. Do this once for each trial account.

  1. In Cockpit, open Connectors and click Add MuleSoft connector on the MuleSoft card.

    You should see A guided page with five steps: region, create the app, choose read-only permissions, paste the client id and secret, test.

  2. Pick your Anypoint region: United States, Europe or Government. Use the region you wrote down from the address bar in chapter 3.

  3. In Anypoint (signed in as that trial), open the menu, then Access Management, then Connected Apps, then Create app.

  4. Name it Cockpit. Choose the type App that acts on its own behalf (client credentials). Do not choose the other types: they need a person to sign in and will not work here.

  5. Add only scopes that start with View or Read: View Organization, View Environment, Read Applications and View APIs Configuration. When Anypoint asks which business group and environments a scope applies to, choose every environment you want Cockpit to see. Save.

    Caution Never add Create, Edit, Delete, Deploy or Manage.

  6. Anypoint shows the client id and client secret once. Keep that page open. Copy both into the password manager.

  7. In Cockpit, paste both, optionally give the connection a name, and save. They are encrypted and never shown again.

  8. Press Test.

    You should see "Anypoint accepted the credentials ... Cockpit can read this organisation." Then the organisation's name and its environments, for example Sandbox and Production. Nothing is changed.

Figure 25. The Cockpit connected app's scopes in Anypoint. Capture details are item 25 in the list of screenshots to capture. Call-outs to draw: 1 App type; 2 The four read scopes; 3 Environments chosen.

Repeat for the second trial. Cockpit lets you pick which Anypoint organisation each chat uses. If Test fails with 401 or 403, the region, the app type or the scopes are wrong: recreate the app as client credentials with the four scopes.

6.3 GitHub

GitHub connects through Cockpit's own GitHub sign-in, so you create nothing. It asks for GitHub's standard repo access (and read:user). GitHub offers no read-only version of repo for private repositories, so GitHub describes it as read and write. What keeps Cockpit to reading is its mode, not the sign-in.

  1. In Cockpit, open Connectors, find GitHub and click Connect.

    You should see A guide page explaining what Cockpit reads (repositories, code, history, pull requests, checks, Actions runs, issues) and what the sign-in grants.

  2. Click Connect GitHub. GitHub asks whether to let Cockpit access your account. Check that you are signed in as the test account, read the request, and click Authorize.

    You should see You return to Connectors and GitHub says connected, with your login.

  3. Press Test.

    You should see "GitHub accepted the sign-in (your login) ... can read your repositories."

Figure 26. GitHub asking to authorize Cockpit. Capture details are item 26 in the list of screenshots to capture. Call-outs to draw: 1 Signed-in account; 2 Requested access; 3 Authorize button.

ADVISORY · Taking it back

Disconnect in Cockpit stops Cockpit using the sign-in at once. To also revoke the access at GitHub, open GitHub Settings, then Applications, then Authorized OAuth Apps, find Cockpit and press Revoke.

6.4 Slack

Slack connects through your own Slack app in your workspace, so you control the permissions. Cockpit connects as you (a user token), so it can read what you can see and search it. It reads channels only; direct messages are a separate, optional consent that you can decline. Allow about fifteen minutes.

In Cockpit

  1. Open Connectors, find Slack and click Connect. On the guide, click Connect Slack. With no app saved yet, it opens the page that saves your app.

    You should see A page showing a Redirect URL, a list of scopes and boxes for Client id and Client secret.

  2. Copy the Redirect URL. Leave this tab open.

In Slack (signed in to your test workspace)

  1. Open api.slack.com/apps, choose Create New App, then From scratch. Name it Cockpit and pick your test workspace.

    You should see The app's settings page.

  2. Under OAuth & Permissions, add the Redirect URL you copied, and save it.

  3. Add these User Token Scopes: channels:read, groups:read, channels:history, groups:history, search:read, users:read and chat:write. Also add the three Bot Token Scopes that Cockpit's page lists: channels:read, chat:write and users:read.

  4. Under Basic Information, find App Credentials. Copy the Client ID and Client Secret into the password manager.

    You should see Two values.

Figure 27. The Slack app's OAuth and Permissions page. Capture details are item 27 in the list of screenshots to capture. Call-outs to draw: 1 Redirect URL; 2 User Token Scopes; 3 Bot Token Scopes.

Back in Cockpit

  1. Paste the Client id and Client secret and click Connect Slack. The secret is encrypted and never shown again.

  2. Slack asks to let your app into the workspace. Check the workspace name at the top, then click Allow.

    You should see You return to Connectors and Slack says connected, with the workspace name.

  3. Press Test.

    You should see "Slack accepted the sign-in (workspace) ... can read your channels." The access granted is listed in plain words, and it says Channels only.

TO BE CONFIRMED · Scope list

The save-your-app page lists only the three bot scopes, while Cockpit asks Slack for the user scopes above when Slack reading is switched on. The list here is the union of both, taken from the code. Confirm on the test drive that the connection succeeds with it, and tell the owner if Slack asks for anything else.

ADVISORY

Direct messages are a separate step on a page of their own, and a separate consent. Skip it in the test drive. If Slack returns direct-message access you did not ask for, Cockpit stores nothing and says so.

6.5 Postman

WARNING

A Postman API key can do everything its owner can do, and Postman cannot limit it to read-only. Use the Postman account you made for this test, never your main one.

  1. In Postman, open your account settings, then API keys (go.postman.co/settings/me/api-keys).

    You should see The API keys page.

  2. Click Generate API Key. Name it Cockpit and choose when it expires. A shorter life is safer: 30 days suits a test.

    You should see Postman shows the key once. Keep that page open.

  3. Copy the key into the password manager.

  4. In Cockpit, open Connectors, find Postman and click Connect. Read the first step (why a dedicated key), then paste the key in step 3. It is encrypted and never shown again.

  5. Press Test in step 4.

    You should see "Postman accepted the key (your username) ... Cockpit can read this account." Nothing is changed.

Figure 28. Postman's API keys page with the new key. Capture details are item 28 in the list of screenshots to capture. Call-outs to draw: 1 Key name; 2 Expiry.

CAUTION · When you finish testing

Disconnecting in Cockpit deletes the stored key but does not cancel it in Postman. Open Postman, Settings, API keys, and revoke the Cockpit key yourself.

6.6 Check everything

Figure 29. The Connectors page with every test account connected. Capture details are item 29 in the list of screenshots to capture. Call-outs to draw: 1 Two Salesforce orgs; 2 Two MuleSoft connections; 3 Capability tags.

Connected checklist

  • Salesforce shows two orgs, each Working or Not checked yet.
  • MuleSoft shows two connections, each with a passed Test.
  • GitHub, Slack and Postman each say connected, and each Test passed.
  • Every card's capability tag says Read only (Sandbox).
  • No secret, key or password is anywhere but the password manager.

6.7 Pass two: real systems

When the test drive has shown you what Cockpit reads and asks for, you can connect real systems. The procedures are the same. What changes is who is affected and what you should decide first.

WARNING

A real credential carries real power. Cockpit's Sandbox mode keeps Cockpit from using it to change anything, but the credential itself is not narrowed to read-only (except what you choose when creating a MuleSoft connected app). Anyone who gets the Consumer Secret, the client secret or the key can use it. Treat each as a password.

SystemDecide before connecting a real one
SalesforceStart with a sandbox (choose Sandbox, test.salesforce.com, or your My Domain in step 1) before any production org. Sign in as a user whose permissions are what you want the Copilot to see: the Copilot can read what that user can read, and with writes on, change what that user can change. Prefer a dedicated integration user.
MuleSoftChoose scopes of View and Read only, and limit them to the environments Cockpit should see. Create a separate connected app for Cockpit so it can be revoked on its own.
GitHubThe sign-in covers every private repository the signed-in GitHub user can see. Use an account that can see only the repositories you want read, such as a dedicated user in your organisation. If your GitHub organisation restricts third-party apps, an organisation owner may need to approve Cockpit.
SlackCockpit connects as you and can read channels you are in and search what you can see. Use a workspace, or a user, that matches what you want read. Your Slack admin may need to approve the app.
PostmanUse a dedicated Postman user or service account that can only view the workspaces you want read, and a short expiry. Revoke the key in Postman when you are done.

Before a real system checklist

  • The test drive is complete and the answers in chapter 7 were as described.
  • The people who own the system know Cockpit will read it, and have agreed.
  • The credential belongs to a user or app with only the access you intend.
  • You know how to revoke it at the vendor, and have written it on your accounts sheet.
  • The mode chip says Sandbox.

Chapter 7

Your first flights

Example prompts for each built-in guide, what a good answer looks like, and what to check before you trust it.

How to judge any answer

The Copilot works from built-in guides (we call them recipes). Each one fixes the steps, the questions it may ask your system, and the shape of the answer. You do not name a recipe: you describe the job, and the Copilot uses the one that fits. Every recipe in this chapter is read-only: it reads and explains, and never offers to change anything.

Judging an answer checklist

  • Open the Brain panel's Activity tab. Do the tool lines match what the answer claims it read?
  • Is every number or name in the answer one you can find in the system itself, in a place you can open?
  • Does the answer say what it could not read ("not readable with your access") instead of guessing?
  • Did it state a limit of what it knows (for example that sharing was not evaluated)?
  • Is there any record Id, email or token repeated that it should have called "a record id"?
  • If something looks wrong, ask "Which query or tool call gave you that number?" A good answer can name it.

ADVISORY

A new Developer Edition org has little in it. A correct answer on a nearly empty org is often "nothing found" or "fewer than three". That is the Copilot being honest, not failing. The guides are told never to invent a class, a user, a date or a number.

ADVISORY · If a guide seems missing

The guides are switched on per environment. The Salesforce guides and the GitHub guides are on; the Org Discovery Report is switched on only where the owner has enabled it. If the Copilot answers as though a guide does not exist, say so to support@cockpitai.io.

7.1 The first question

Before the guides, prove the connection returns real data.

Ask the Copilot

How close is this org to its API limits?

A good answer reports real numbers from the org's limits and says which are nearly used. In a new org, nothing will be close. The API meter above the message box then shows your calls this run.

Figure 30. The answer to How close is this org to its API limits?. Capture details are item 30 in the list of screenshots to capture. Call-outs to draw: 1 The answer's numbers; 2 API meter line.

Then one question per connected system. Note each result on your checklist:

SystemPromptA real answer looks like
SalesforceWhich Apex classes touch the Account object?A list, or "none" in a new org, said plainly.
MuleSoftList my Anypoint environments.Your trial's environments, for example Sandbox and Production.
GitHubWhat repositories can you see, and what is in cockpit-practice?The practice repository and its README.
PostmanList my Postman workspaces and collections.Cockpit practice and Orders API.
SlackWhich Slack channels can you see?Including cockpit-practice.

7.2 Explain a debug log

Needs: nothing connected. It reads only what you paste. It touches no system.

Ask the Copilot

Here is an Apex debug log from a failed save. What went wrong, and what is the usual fix? (paste the log)

To try it without a real log, paste these made-up lines:

Sample to paste (made up for the test)

12:00:01.1 (1100)|EXCEPTION_THROWN|[14]|System.LimitException: Too many SOQL queries: 101 12:00:01.1 (1200)|FATAL_ERROR|System.LimitException: Too many SOQL queries: 101 Number of SOQL queries: 101 out of 100

  • A good answer, in this order: one plain sentence with the cause; a table of limit, used and allowed (only limits in your paste; any at 80 percent or more flagged); the top three suspects, each with a log line number or a class and line; the usual fix. It says which part is your paste and which part is its reasoning.
  • For a SOQL limit, the usual cause is a query inside a loop, and the usual fix is to query once into a Map.
  • If the error is not one it recognises, it says "not recognised", says what it can read, and asks for the missing part.

CAUTION

Real logs hold customer data, record ids and sometimes session ids. The Copilot is told not to repeat them and to tell you to rotate anything that looks like a token. Even so, paste only logs from throwaway orgs during the test drive.

Check: every suspect cites a line you can see in your paste. It does not name a class the paste does not show. It does not offer to fetch the log itself.

7.3 Org tour

Needs: a connected Salesforce org. A guided walk through an org you have just inherited, in about ten minutes of reading.

Ask the Copilot

I just inherited this Salesforce org. Give me a tour.

  • A good answer goes in seven steps and stops after each with one line asking whether to go on: org summary and licences; data model; automation; integration surface (installed packages, named credentials); limits; security risks; and what changed in the last 30 days. It uses the same sections as the Org Discovery Report (7.10).
  • Each step is two or three plain sentences, a small table if it helps, and what it means for someone taking over.
  • It ends with Five things to read first and Three things that look risky, naming only things it read. On a small org it gives fewer and says the tour cannot show business rules that are not written down.
  • A part it cannot read is listed as "not readable with your access" in its step and again at the end.

Check: pick one named object or flow and find it in Setup. It should be there. It should not call anything a bug.

7.4 Async job doctor

Needs: a connected Salesforce org. Finds background work that has quietly failed.

Ask the Copilot

Is anything quietly failing in the background in this org?

  • A good answer starts with one sentence (for example "3 classes failed in the last 7 days and 1 schedule looks stuck", or "nothing failed in the last 7 days"), then a table of job, failures, last error and last success, then any stuck schedules. A schedule is flagged when it should have run and did not, or is in an error or blocked state.
  • It counts what it can see and says so. It always lists what it did not check: failed Flow interviews, fault emails, platform event delivery and email send errors, which need Event Monitoring or admin settings. It never says the org is healthy about those.
  • It never offers to abort, reschedule, retry or change a job.

Check: in Setup, open Apex Jobs and compare the failures it names. A new Developer org will normally answer "nothing failed", which is correct.

7.5 Licence, storage and idle-user review

Needs: a connected Salesforce org.

Ask the Copilot

Review our Salesforce licences, storage and idle users.

  • A good answer gives a table of licence, used, total and free, largest free first (rows with a total of 0 left out); idle users who have not logged in for 90 days, oldest first, up to 20, with the total, and users who never logged in; and storage as used = Max minus Remaining, with the percent used, from the org's limits.
  • It calls idle users "candidates to ask about", because they may be integration or seasonal users. It does not tell you to remove anyone.
  • For storage per object it can only count records on a few objects and says its space figure is an estimate (Salesforce counts most records as about 2 KB).
  • It does not state or guess what a licence or a gigabyte costs, unless you give it a price.

Check: compare the licence table with Setup, Company Information. Compare the storage figures with Setup, Storage Usage.

7.6 Who can edit a field

Needs: a connected Salesforce org and a user in it. In a new Developer org, use your own admin user or a user you create.

Ask the Copilot

Can Priya Rao edit Opportunity.Amount? If not, why not?

  • A good answer gives the deciding reason first in one line, then the chain: who the user is (profile, role, active or not), each profile, permission set or permission set group that grants something, and what is missing if the answer is no. Editing a field needs Edit on the object and Edit on the field.
  • If more than one user matches the name, it lists them and asks which. If the user is inactive, it says so and stops.
  • For a grant that arrives through a permission set group, it says "granted through the group X unless the group mutes it", because muting is not evaluated.
  • It always says "Record-level sharing was not evaluated". Object and field access say whether the user can edit the field at all, not which records they can see.

CAUTION

If a query is refused (the connected Salesforce user may lack View Setup and Configuration), the Copilot names the table it could not read and stops. A missing table is not an answer of "no access". Do not treat it as one.

Check: open the user in Setup, then the permission sets and the field's field-level security, and confirm the chain.

7.7 Sandbox refresh checklist

Needs: a connected Salesforce sandbox. It lists what to note before a sandbox refresh and checks what is left after it. A person does the refresh in Setup; the Copilot cannot start or schedule one.

CAUTION · Not on a Developer Edition org

This guide first checks whether the org is a sandbox. A Developer Edition org is not a sandbox, so the Copilot will say that this chat is connected to a production-type org, and stop. That is correct behaviour. To try it you need a real sandbox.

Ask the Copilot

I am about to refresh this sandbox. What should I note down before I do?

  • Before: one table per area (named credentials, external data sources, remote site settings, outbound messages, scheduled jobs, connected apps, custom settings) with what, name, the value to note and what to do. Then a manual list of things the API cannot give, each with where to look in Setup. Anything it could not read is on the manual list, not guessed.
  • After: the same reads again. It asks which production hosts your integrations point at, then flags any endpoint whose host equals a production host as pointing at production, and lists same-domain hosts as "check". If you decline to name hosts, it lists every host and says nothing was compared.
  • Nothing is stored beyond the chat: copy the "before" table somewhere safe, and paste it back in the "after" chat.

Check: the "after" run flags nothing for an integration you know still points at its sandbox endpoint.

7.8 Pull request review

Needs: GitHub connected, and a pull request in a repository the connected user can see. It reviews the Apex and Flow files of one pull request against a fixed checklist of ten rules.

Make a pull request to test with

  1. In your cockpit-practice repository, create a branch and add the file force-app/main/default/classes/AccountUpdater.cls containing the made-up class below. Open a pull request into the main branch.

    You should see A pull request page with one added file.

Made-up Apex for the test

public class AccountUpdater { public static void touch(List<Account> accts) { for (Account a : accts) { Contact c = [SELECT Id FROM Contact WHERE AccountId = :a.Id LIMIT 1]; update a; } } }

Figure 31. The test pull request on GitHub. Capture details are item 31 in the list of screenshots to capture. Call-outs to draw: 1 Pull request number; 2 File name.

Ask the Copilot

Review pull request 1 in yourname-cockpit-test/cockpit-practice.

  • A good answer lists findings, high severity first. Each has the rule (R1 to R10), the severity, the repository, the file path, the short head sha, the line range, the line quoted exactly, why it matters in one sentence and the fix. For the class above, expect R1 (a query inside a loop) and R2 (a data change inside a loop), and probably R5 (no sharing keyword).
  • It reviews only Apex, trigger and Flow files and names the other changed files as not reviewed. It says how many pages of files it did not read.
  • No findings is a valid answer: "No findings from the ten rules in the files I read", with the files listed.
  • It never posts a comment, approves, or requests changes, and never calls the pull request safe: it read a diff, it did not run it.

Check: open the file at the sha it names and compare the quoted line and its number. If the line number matters and it was unsure, it should have confirmed with a file read before citing it.

7.9 Pull request description and release notes

Needs: GitHub connected. It writes text in the chat for you to paste. It cannot put it into the pull request.

Ask the Copilot

Write the pull request description for pull request 1 in yourname-cockpit-test/cockpit-practice, and what to tell QA.

Ask the Copilot

Write release notes for the commits between tag v1.0 and v1.1 in yourname-cockpit-test/cockpit-practice.

  • A good answer uses the repository's pull request template if it has one, keeping its headings in order, and leaves every checkbox unticked with "to be ticked by the author". Without a template: Summary, Components changed (each changed file in exactly one section, such as Apex classes, Flows or Tests), Risk (low, medium or high, with the reason, stated as its judgement), Test plan and Deploy notes.
  • It never says a test ran or passed unless a tool result says so. It names a ticket only if the key is in the title, description or a commit message.
  • Deploy notes contain only what the file types support. A file named destructiveChanges removes components and is called out first.
  • It says in one line what the text cannot know: it describes the diff and messages, not what was run or what is in the org.

Check: count the changed files on GitHub against the files listed in the answer. The guide tells the Copilot to make them match.

7.10 The Org Discovery Report

Needs: a connected Salesforce org, and the report switched on for your environment. It reads the org once, within a fixed call limit, and writes a report into a chat. It changes nothing in Salesforce.

  1. Type /discovery in the message box and press Enter, or open Connectors and press Run discovery report on the org's card.

    You should see A progress line such as "Reading limits (5 of 7)..." and then a message that starts with "# Org discovery report".

  2. Read the report. Its sections follow the tour: org summary, data model, automation, integration surface, limits, security risks and tech debt hints.

  3. Download it as Markdown, or its tables as CSV, with the buttons under the report.

Figure 32. A finished Org Discovery Report in a chat. Capture details are item 32 in the list of screenshots to capture. Call-outs to draw: 1 Report date; 2 A not-readable marker if present; 3 Download buttons.
  • The report states its date. A part the connected user cannot read is marked not readable with your access; a part skipped because the report reached its call limit, or to protect your API allowance, says so.
  • Afterwards, ask follow-up questions in the same chat. The Copilot quotes the report's numbers and does not recompute them. For anything newer, it uses its tools and says the report may be out of date.

Check: compare the date and two numbers (for example the count of custom objects) with Setup.

7.11 More guides

These work the same way: read-only, honest about what they could not read, and never offering to change anything. Try them after the nine above.

GuidePrompt to tryNeeds
Flow documentationDocument the active flows on Account.Salesforce
Where is this usedWhere is the field Region__c used?Salesforce (GitHub adds a code search)
Dead metadata finderWhich metadata looks unused, and what is the evidence?Salesforce
SOQL assistantWrite a SOQL query for open opportunities over 10,000 and tell me if the filter is selective.Salesforce. Selectivity is labelled an estimate.
Data dictionaryGive me a data dictionary for the Account object.Salesforce. One object at a time; CSV as text in the chat.
Org health scoreGive me a health score for this org.Salesforce. A count of ok, watch and act with thresholds, never a percentage.
Out-of-band changesWhat changed in setup in the last 30 days that is not in our repository?Salesforce and GitHub. A lead to check, not proof.
Mule project reviewReview the Mule project in owner/repo.GitHub (MuleSoft adds deployment facts)
API spec reviewReview the OpenAPI file in owner/repo against our API policies.GitHub (MuleSoft or Postman adds more)
Postman collection from a specMake a Postman collection from the OpenAPI file in owner/repo.GitHub. Writes JSON in the chat; nothing is created in Postman.

Chapter 8

Production flight

How writes work, how to switch Production mode on and off, the checklist to use before you approve a card, and how to check the result.

When to use Production mode

WARNING · Read this first

In Production mode, pressing Approve changes a real system: it creates or updates a Salesforce record, posts a Slack message, or opens a GitHub pull request. Cockpit has no undo. If you approve the wrong thing, you undo it yourself in that system. Until the test drive is complete, use Production mode only against the throwaway accounts from chapter 3.

"Production" here is the name of a Cockpit mode, not a statement about the org. A free Developer Edition org can be used in Production mode, and a real production org can be used in Sandbox. The risk is set by what is connected, not by the mode's name.

  • Stay in Sandbox for everything in chapter 7.
  • Switch to Production mode only for a specific write you mean to make, and switch back afterwards.
  • New accounts start in Sandbox, and every write needs a card.

How a write works

Illustration The path of a write. Each stage can stop it. Nothing is written before the fourth step.
The write actions in this edition
ActionWhat it doesWhat it cannot do
Salesforce: createCreates one record of an object you name, with the field values on the card.Values are plain text, numbers, true or false, or empty. At most 100 fields. No delete.
Salesforce: updateUpdates one record, by its Id, with the field values on the card.One record at a time.
Slack: postPosts one message to a channel, as you.Nothing is posted without a card.
GitHub: open a pull requestCreates a new branch named cockpit/... from the base branch, commits the files on the card, and opens a pull request.Never pushes to an existing branch. Never merges. If the branch name exists, it stops and tells you to choose another.

These are switched on in stages (GitHub pull requests, then Salesforce records, then Slack posts). If you ask for a write whose action is not on yet, the Copilot says it has no write action for that, and nothing is changed. The tag on the Connectors card ("Read only (no write actions yet)") tells you in advance.

  • Sent once. A write has a 30-second limit and is never retried.
  • Refused means unchanged. If the system refuses (an HTTP 4xx), the answer says "... refused the change (HTTP 4xx), so nothing was changed." with the system's reason.
  • Not confirmed means check. If the connection drops, times out, or the system errors (5xx), the answer says the system "did not confirm the change ... so the record may or may not have been applied. Cockpit did not try again. Tell the user to check ... before asking for it again." Do exactly that: look in the system before you ask again.
  • The target is checked twice. It is named on the card, and read again when you approve. If it moved, the write is not sent: "approved for X, but it would now go to Y. Nothing was changed."
  • A tightened mode cancels it. Switching to Sandbox, or switching that connector's writes off, after a card appears makes approving refuse with "Mode changed, nothing was changed."
  • Where a write cannot start, no card appears and the answer says why, for example when the org is not connected, GitHub is not connected, your GitHub login cannot push to that repository, or the repository is archived.

Switching Production mode on and off

  1. Click the mode chip.

    You should see The mode panel opens with the master switch Production mode (read + write), off.

  2. Turn the master switch on.

    You should see A confirmation: "Switch to Production mode (read + write)?" It says changes are possible where a write action exists, every change still asks your approval, it does not describe the connected org, and you can switch back at any time.

  3. Click Switch to Production mode. To back out, click Stay in Sandbox.

    You should see The chip turns amber and says "Production: read + write". The panel's connector rows read "can write, each write asks for approval" (or "read only (no write actions yet)" for a connector with none).

  4. To narrow it, turn off the switch of any connector you do not want to write to.

    You should see That row reads "read only (you switched writes off)".

  5. When you are done, turn the master switch off.

    You should see The chip returns to Sandbox. No confirmation is asked.

Figure 33. The Switch to Production mode confirmation. Capture details are item 33 in the list of screenshots to capture. Call-outs to draw: 1 Confirmation text; 2 Switch to Production mode; 3 Stay in Sandbox.

CAUTION

A chat made Sandbox from its menu, or with an org attached, stays Sandbox even when the account is in Production mode. Start a new chat to write.

Before you approve: the checklist

Run through this on every card. It takes under a minute, and the card is built so that every answer is on it.

Before approving a write checklist

  • Whose system is this? The card's last words name the target: the Salesforce org (name and address), the Slack workspace, or the GitHub repository and base branch. Is that the one you mean? Do not rely on the chat's org chip; read the card.
  • Is it the right kind of system? A throwaway Developer org, or something real? If real, stop and ask whether this change has been agreed.
  • Read "Exactly what will run" to the end. For Salesforce: the object, the record Id for an update, and every field and value. For Slack: the channel and the full message text. For GitHub: the repository, the new branch name, the title and every file path and its content.
  • Is it one thing? A Salesforce change touches one record. If you asked for ten, expect ten cards.
  • Do the values match what you asked? A wrong Id, a wrong amount, a name misheard by the microphone: the card shows what will be sent, not what you meant.
  • Does the blast radius line say what you expect? It reads "Writes to <target>".
  • For a Slack post: is anything in the message confidential? Everyone in the channel will see it as coming from you.
  • For a pull request: is the base branch right? The pull request is only a proposal, but the new branch and its commit are created on approval.
  • Is it still wanted? Cards expire after 10 minutes. If you were interrupted, deny it and ask again.
  • In doubt, Deny. Denying writes nothing, and you can ask again with a clearer request.
Figure 34. A real approval card for a Salesforce create. Capture details are item 34 in the list of screenshots to capture. Call-outs to draw: 1 Summary and target; 2 Exactly what will run; 3 Blast radius; 4 Approve and Deny.

WARNING

Never approve a card you have not read to the end. Text in your systems (a record, a log, a pull request description) is treated by the Copilot as data, but a card is the last line of defence if something odd got through. The card shows the exact input, and that is what runs.

ADVISORY

"Always allow" is not offered for writes. Every write is decided on its own.

Three first writes on the test accounts

Do these in your throwaway orgs, one at a time, with the checklist above. Each one is small, and each is something you can undo by hand.

A Salesforce record

  1. Switch to Production mode (see above). Start a new chat and pick org 1.

  2. Ask: Create an Account named Cockpit Test Drive One.

    You should see An approval card: "Create a Account in Salesforce with Name (Salesforce org ...)" and the input {"sobject": "Account", "fields": {"Name": "Cockpit Test Drive One"}}.

  3. Run the checklist. Press Approve.

    You should see The card changes to approved, and the Copilot reports the new record's Id.

  4. In Salesforce, open Accounts and find it.

    You should see Exactly one Account named Cockpit Test Drive One.

  5. Delete it in Salesforce when you have finished. Cockpit has no delete action.

A Slack message

  1. Ask: Post "Cockpit test drive: hello" in #cockpit-practice.

    You should see A card naming your Slack workspace and the full text.

  2. Run the checklist, press Approve, and look in the channel.

    You should see The message appears, as you.

A GitHub pull request

  1. Ask: Open a pull request in yourname-cockpit-test/cockpit-practice that adds docs/hello.md with one line of text.

    You should see A card naming the repository and the base branch, with the new branch name cockpit/... and the file.

  2. Run the checklist, press Approve.

    You should see A pull request appears on GitHub from the new branch. It is open; nothing has been merged.

  3. Close the pull request and delete the branch on GitHub when you have finished.

Figure 35. The Account found in Salesforce after approval. Capture details are item 35 in the list of screenshots to capture. Call-outs to draw: 1 Account name; 2 Created date.

Also try Deny once, on any card. Check that nothing was written.

Afterwards

  • Check the result in the system, not only in the chat.
  • The Modes page lists your recent mode changes, and the count of requests held back by a mode in the last 30 days.
  • The Approvals tab of the Brain panel and the chat itself keep each decided card, with who decided and when.
  • Switch back to Sandbox.

Production flight checklist

  • I read the card to the end before each Approve.
  • I checked the result in the system after each write.
  • I denied one card and nothing was written.
  • I switched back to Sandbox.
  • I removed what I created in the test accounts.

TO BE CONFIRMED · Production writes in the live service

The owner has agreed to switch the write actions on in the live service in stages, after the live write journeys have passed. Which ones are on when you read this is shown by the capability tags on your Connectors page, not by this manual.

Chapter 9

Captain and Crew

Teams: one or more Captains, any number of Crew, and what each can do. Switched on per customer, for teams only.

Status: only for teams, switched on per customer

ARRIVING · Only for teams, switched on per customer

Teams are built, and are switched on for a customer when that customer's team is set up. If your rail has no Team entry and your sign-in page has no "Sign in to a team" line, your environment does not have Teams and nothing in this chapter can be done. Where this chapter and the product differ, the product is right.

Without a team, every person has an individual account: their own sign-in with Google, their own connections, chats, modes and approvals. With a team, each person still has their own connections, chats, modes and approvals. What the team adds is one place where a Captain decides who is in and which connectors each person may use.

Captain and Crew

RoleWhoWhat they can do
CaptainThe team's administrator. The first Captain is set up by the Cockpit owner when approving the team's request. A Captain can make another person a Captain.Invite people by email, choose what each may connect, change or remove access, promote another Captain, remove a member, read the team's activity log. A Captain is also a normal user with their own connections and chats.
CrewEveryone else on the team. There is no seat limit.Work as an individual does: their own connections, chats, Sandbox or Production mode and approvals, limited to the connectors the Captain allowed.

A person belongs to one team at most. There is no directory or single sign-on in the first version.

How a team starts

  1. An architect asks for a team account on the request form, naming the team.

    You should see The request reaches the Cockpit owner as a team request.

  2. The Cockpit owner approves the request as a team, and enters the Captain's name and email.

    You should see The Captain receives an invitation email.

  3. The Captain follows the link in the email, chooses a password and signs in.

    You should see The console opens, with a Team entry in the settings list.

  4. The Captain invites each person from the team page (9.1). Each person receives an invitation email, chooses a password and signs in at the team door (9.3).

Team members sign in with an email address and password, on a separate door of the sign-in page, not with Google. Members do not have a 7-day trial clock. The desktop apps hand sign-in to the browser, as they do now (9.3).

9.1 The Captain's team page

A Captain opens Team from the settings list (the same list as Connectors and Account) or goes to /app/team. The page is called Your team members. At the top it says which team you are a Captain of. Below it are the invite form and the list of people.

Figure 36. The Captain's team members page with one active and one invited person. Capture details are item 36 in the list of screenshots to capture. Call-outs to draw: 1 Invite someone form; 2 Starting access list; 3 Connector access lists; 4 Save access button; 5 Role list and Change role; 6 Send again; 7 Remove.

Invite someone

  1. Under Invite someone, type the person's Email address. The Name is optional.

    You should see If the address is mistyped the page says "Enter a valid email address." and sends nothing.

  2. Choose Starting access: Everything (read and write), Salesforce only, Salesforce and MuleSoft, or Nothing yet. Press Send invitation.

    You should see The page says "Invitation sent to <address>." and the person appears in the list as Invited.

Two other lines can appear instead. "... already has a sign-in. They can sign in at the team door and the invitation is accepted." means that address already has a Cockpit sign-in, so no email was needed. "... is added, but the invitation could not be sent just now. Use Send again in a moment." means the sign-in service could not be reached; the person is on the list, and Send again tries once more.

Change what one person may connect

  1. Find the person in the list. Under Connector access for <name>, set each connector (Salesforce, MuleSoft, Slack, GitHub, Postman, Workstation) to Not enabled, Read only or Read and write.

    You should see The line below the lists, "Now: ...", still shows the saved access until you save.

  2. Press Save access for <name>.

    You should see The page says "Access updated for <name>." and the "Now:" line changes. The button is greyed out until you change something.

Change a role, resend or remove

  1. To make someone a Captain or take that back, choose Captain or Crew in their Role list and press Change role.

    You should see "<name> is now a Captain." or "<name> is now Crew." A Captain can use every connector, so a Captain's access lists are replaced by a note saying so. You cannot change your own role.

  2. To send an invitation again, press Send again on a person who shows Invited. An invitation that has run out shows Invitation expired; Send again makes a new one.

  3. To take someone out, press Remove. Confirm the question.

    You should see For someone already in: "Remove <name> from the team? Their sign-in stops working and their connections to your systems are cut off right away." For an invitation: "Cancel the invitation to <name>?" Then "<name> was removed."

Each active person's line also says what they have connected (for example "Connected: Salesforce (dev)"), or "Nothing connected yet.", and what they have spent on the Copilot this month against their budget. It does not show their chats.

ADVISORY

You cannot remove yourself or change your own role from this page. A person can always delete their own account from the Account page.

9.2 What a team member sees

A team member who opens Team sees a page with no controls. It says "You are part of <team>.", names the Captain ("Your Captain is <name> (<address>)."), and lists What you can use: each connector as Not enabled, Read only or Read and write. Under it: "Ask your Captain if you need another connector." A person who is not in a team who opens /app/team is told "You are not part of a team."

Figure 37. The team page as a team member sees it. Capture details are item 37 in the list of screenshots to capture. Call-outs to draw: 1 Team name; 2 Captain line; 3 What you can use; 4 Ask your Captain note.

On the Connectors page, a connector set to Not enabled shows as not enabled by the Captain, with no Connect button.

9.3 The team door: Sign in to a team

ARRIVING · Only for teams, switched on per customer

The line described here appears on the sign-in page only on a build with Teams switched on. On any other build the sign-in page is exactly as chapter 4 describes, with no extra line.

  1. Open the sign-in page. Under the Google button, press the quiet line Sign in to a team.

    You should see The same page changes: it says "Use the email address your Captain invited and your password." and shows only an email and password form. There is no Google button and no sign-up link.

  2. Type your email address and your password and sign in.

    You should see The console opens. If you have forgotten the password, the reset link is inside the form.

  3. To go back, press Sign in with Google instead.

Figure 38. The team door of the sign-in page. Capture details are item 38 in the list of screenshots to capture. Call-outs to draw: 1 Invited address line; 2 Email and password form; 3 Sign in with Google instead link.

A new member's first visit is the link in the invitation email. That page says "Choose a password to join your team." After that, use the team door each time.

ADVISORY · In the Mac and Windows apps

On the sign-in screen of the app, press Sign in to a team, then Enter Cockpit. Your browser opens the team door, and once you have signed in it hands you back to the app.

9.4 What the Captain controls

For each member and each connector (Salesforce, MuleSoft, Slack, GitHub, Postman, and the Workstation, which is not available today) the Captain sets a level:

LevelMeaning
NoneThe connector is not available to that person. It shows as not enabled by the Captain, with no Connect button, and the Copilot has none of its tools.
ReadThe person can connect it and the Copilot can read it. No write action is offered, whatever the mode.
WriteAs Read, plus the write actions, if the person is in Production mode and approves each card.

Presets save time: Everything (read and write), Salesforce only, Salesforce and MuleSoft, or Nothing yet when you invite, and any combination of connectors afterwards (9.1).

ADVISORY · The smaller of two limits

A member's power is the smaller of the Captain's level and the member's own mode. A member with Salesforce at Read, in Production mode, can read Salesforce and cannot write. This is enforced on the server, at every place a connector is reachable, and a failure to look up the grant means no access.

9.5 What the Captain sees, and does not

The Captain can seeThe Captain cannot see
Who is on the team, their role and access, and whether each has connected each provider.A member's chats or messages.
An activity log: who, when, which connector and which action (for example a tool call, an approval decision, a mode change).The input of a tool call, or what the Copilot answered.
Each member's monthly AI spend against their budget.A member's tokens, secrets or connections.
A log of team changes: invited, joined, access changed (before and after), removed.A member's approval cards.

ARRIVING · Not on the team page yet

The brain records the team's activity and the log of team changes, but the team page in this edition shows neither. What the team page does show is in 9.1: who is in, their role, their access, what they have connected and their monthly Copilot spend.

Connections, chats, the Workstation and the AI budget are per member. Nothing is shared in the first version. A write that a member approves is attributable twice: to their approval in Cockpit, and to their own login in the customer's system.

ADVISORY

A member approves their own writes. The Captain decides whether a member can write at all, by the level. A rule that the Captain must approve members' writes is a possible later option, only if a customer asks for it.

9.6 Removing a person

  • Removal cuts the person off at once: their access, runner tokens, connections (revoked where the provider allows) and running tasks.
  • Their data is kept invisible for a 30-day grace period and then purged, or purged at once if the Captain chooses.
  • A person can always delete their own account, whether Crew or Captain. If the last Captain deletes their account, the team is suspended and the Cockpit owner is told.

9.7 Planning for a team of six

Plan a team checklist

  • Decide who will be the Captain.
  • List each person's work email address. Each person needs an address that is not already an individual Cockpit account.
  • For each person, choose None, Read or Write for Salesforce, MuleSoft, Slack, GitHub and Postman.
  • Decide whether the Captain wants any member in Sandbox only. Each member's mode is their own.
  • Decide whether anyone's retention needs (a longer hold, an export) differ from the 30-day grace period, and tell the owner before launch.

Pricing for teams is by quotation: ask support@cockpitai.io. Online payment is not available.

Chapter 10

Troubleshooting

The messages you may see, in the words the product uses, what each means and what to do.

Start here

Most problems are a copied value with a stray space, or a step done in the wrong order. Find the message, or the symptom, below.

ADVISORY · The reference code

When something fails on Cockpit's side, the message ends with a reference such as Reference: CKP-ab12cd34ef56. Quote it when you write to support@cockpitai.io: every line of that request can be found from it. Send the code and a screenshot. Never send passwords, secrets or keys.

ADVISORY

Starting over is always safe. Any connection can be disconnected and added again. Disconnecting does not delete the app or key in the other tool; revoke those there when you are done.

Sign-in and access

What you seeWhat it meansWhat to do
Waiting for approval. "Cockpit is in private beta, so request access and we will email you as soon as you are in."Your address is not approved yet.Press Request access if you have not asked. Wait for the email. Sign in again with the same address.
"You signed in with a hidden Apple email..."Apple gave Cockpit a relay address that cannot match.Sign in with Google and the approved address, or add that address to your account and make it primary.
Sign-in shows a different Google accountA different browser profile is signed in.Use a clean browser profile, or choose the right account in Google's chooser.
"Enter a valid email address." on Request accessThe address is mistyped.Correct it.
"Could not send that. Please try again in a moment."The request did not reach Cockpit.Send it again.
"Cockpit could not check your access just now. Reload in a moment."Cockpit could not reach its service for a moment.Reload the page.
"Your 7-day Pro trial has ended. You can still read everything."The trial is over, so Cockpit is read-only: no new chats, no decisions on approvals, no connection changes.Press Join the waitlist for paid, or write to support.
A connector shows as not enabled by the Captain, with no Connect buttonYou are in a team and your Captain has not given you that connector.Ask your Captain (chapter 9).
"Your account doesn't have access to Cockpit yet. Request access at cockpitai.io/request-access."A phone or desktop app signed in with an address that is not approved.Request access, as in chapter 4.
When Google will not let you in
What Google saysWhat it meansWhat to do
admin_policy_enforced, or "This app is blocked"Your organisation's Google Workspace administrator blocks the app.Ask your Workspace administrator to allow Cockpit. A personal Gmail account is not affected.
org_internalCockpit's Google settings only allow people inside one organisation.Write to support@cockpitai.io: this is ours to fix.
access_deniedYou pressed Cancel, or Google would not grant the permission.Try again and press Continue, or use another Google account.
redirect_uri_mismatch, invalid_client, disabled_clientCockpit's Google settings are wrong on our side.Write to support. You cannot fix it.
rate_limit_exceededGoogle is limiting new sign-ins for Cockpit for a while.Wait an hour and try again, or write to support.
disallowed_useragentGoogle refuses to sign in inside another app's window.Open Cockpit in your normal browser, or use the Cockpit app, which opens the browser for you.

Connecting

After a connect attempt, the Connectors page shows one line saying what happened. These are those lines, and the messages from the vendors that often cause them.

What you seeWhat it usually meansWhat to do
"No problem: you declined the <system> connection. Nothing was stored."You pressed Cancel or Deny at the vendor.Start the connection again if you meant to allow it.
"The <system> sign-in expired or didn't match, so nothing was stored. Please start the connection again."The sign-in took too long, or the page was reloaded part-way.Start again from Connectors, and finish in one go.
"This connection was started from a different Cockpit account."You are signed in to Cockpit as someone else than when you began.Sign in as the account that started it, and try again.
"<system> didn't accept the sign-in, so nothing was stored. Try again in a moment."The vendor refused the code exchange.Wait a moment and retry. For Salesforce, check the Consumer Key and secret.
"<system> isn't set up on our side yet, so I can't start that connection."Cockpit's own app for this system is not configured in this environment.Tell support. You cannot fix it. For GitHub this is the "app is not configured" case.
"<system> didn't accept that client id and secret for that region."A value was pasted wrongly, or the region is wrong.Copy both again with no stray spaces. For MuleSoft, check the region matches your Anypoint address bar.
"<system> connects through your own app. Enter your app's details first."No app is saved yet.Paste the app's client id and secret first.
"<system> is already connected. Use Reconnect..."A connection exists.Use Reconnect on the card if you want to replace it.
"The <system> login worked, but storing it failed. Nothing was saved."A problem on Cockpit's side.Try again. If it repeats, send the reference.
"Couldn't save your app. Nothing was stored. Check the details and try again."The app's details were not accepted.Check each field.
"Enter your Salesforce address, for example your-company.my.salesforce.com."You chose My own domain without an address.Type the address.
"Enter your app's consumer key." / "Enter your connected app's client id and client secret." / "Enter your Slack app's client id and client secret."A required box is empty.Fill it in.
Messages from the vendors
SystemWhat you seeWhat it usually meansWhat to do
Salesforceredirect_uri_mismatch, or a callback errorThe callback URL in the app differs from Cockpit's.Copy the Callback URL again from step 2 into the app with no spaces, and save.
Salesforceinvalid client, or invalid client credentialsThe Consumer Key or secret was pasted wrongly, or the app is not switched on yet.Wait two minutes after creating the app, then copy both values again.
SalesforceAn approval error after you sign inThe app's policy does not allow your user.In the app's policies, allow all users to self-authorize, or approve your user, then retry.
MuleSoftTest fails with 401 or 403Wrong region, wrong app type, or missing View scopes.Check the region against the address bar. Recreate the app as client credentials with the four View and Read scopes.
Postman"That doesn't look like a Postman API key. Nothing was stored."The key was pasted wrongly, is too short, or was revoked or expired.Generate a new key and paste it again.
Postman"You are signed out. Sign in again, then paste the key. Nothing was stored."Your Cockpit session ended.Sign in, then paste again.
SlackSlack shows a different workspaceYou are signed in to the wrong Slack workspace.Sign out of Slack in the browser, sign in to your test workspace, and retry.
Slack"... returned access to direct messages that wasn't asked for, so nothing was stored."Slack's grant included direct messages.Connect again and choose the direct messages step only if you want it.

On a card, Needs reconnect means the provider refused the saved sign-in or key. Press Reconnect. Not checked yet means Test has not been pressed. Test failed shows the vendor's reason.

Chat and answers

What you seeWhat it meansWhat to do
"The Copilot couldn't answer this message. Reference: CKP-..."The AI provider refused or could not read the request.Send the reference to support. Do not retry more than twice.
"The model is busy right now, please try again in a minute. Reference: CKP-..."The AI provider was overloaded.Wait a minute and retry.
"You've used this month's AI allowance. It starts again on <date>. Reference: CKP-..."The month's AI budget for your account is used. No message or run was created.Wait for the date, or write to support.
"Before your first chat, agree to Cockpit sending your messages to its AI providers."You have not agreed, or you withdrew, or the provider list changed.Press Agree, or Review and agree. The message you typed is put back in the box.
"Chat is off until you agree to Cockpit sending your messages to its AI providers."You pressed Not now.Press Review and agree.
"Cockpit is having trouble right now. Please try again in a moment."Cockpit's service cannot be reached.Wait a moment and retry.
The Copilot says it cannot read something, "not readable with your access"The connected user lacks permission, for example View Setup and Configuration.Reconnect as a user with that permission, or accept the gap.
The Copilot says Sandbox is on and nothing was changedYou asked for a change in Sandbox.Switch to Production mode only if you mean to write (chapter 8).
The Copilot says it has no write action for thatThat kind of write is not switched on yet.Check the capability tag on the Connectors card.
"The discovery report is not available for that org. Connect it first." / "The Copilot is still working in this chat. Wait for it, then run the report." / "The report could not be started. Try again in a minute."The report needs a connected org and an idle chat.Connect the org, wait for the chat to finish, or retry.

Modes and approvals

What you seeWhat it meansWhat to do
"This chat is in Sandbox and stays there. Start a new chat to write."A chat can be tightened but never loosened.Start a new chat.
"Couldn't change the mode. Nothing was changed, and what you see is how it is now."The change did not reach Cockpit.Look at the chip: it shows the real state. Retry.
"Mode changed, nothing was changed."You tightened the mode after the card appeared.Ask again after the mode is as you want.
Approval "expired" (or "Approval expired")The card waited more than 10 minutes.Ask for the change again.
"Approval already approved" / "Approval already denied"It was decided already, perhaps on another screen.Refresh. Nothing happens twice.
"Always allow is only for plans and reads. Approve or deny this write on its own."Writes are never always-allowed.Decide the card.
Approve and Deny are greyed out, with the trial-ended sentenceYour trial ended.See Sign-in and access.
"approved for X, but it would now go to Y. Nothing was changed."The target moved between the card and the approval.Check the chat's org, and ask again.

Sandbox, Production and your approval cards

Two different things are called Sandbox and Production, and a card can show both. The mode (Sandbox or Production, the chip at the top) decides whether a card can appear at all. The target on the card names the system the change will land in, and for MuleSoft it also says what kind of environment that is.

What you seeWhat it meansWhat to do
You asked for a change and no card appeared; the Copilot says Sandbox is on and nothing was changedIn Sandbox mode no approval is possible. The request is turned away before any card is made.If you mean to write, switch to Production mode first (chapter 8), then ask again.
A card appears in Production mode, with the target line "MuleSoft ... environment <name> (sandbox)"The kind of environment is in brackets, as Anypoint reports it. Cockpit changes MuleSoft sandbox and design environments only.Check the environment name and the kind in brackets before you approve.
The Copilot says an environment "is a production environment" (or another kind) and that Cockpit changes sandbox and design environments only, and nothing was changedA MuleSoft write was asked for in an environment that is not a sandbox or design one. No card is made.Choose a sandbox or design environment.
You tightened the mode after a card appeared, and Approve says "Mode changed, nothing was changed."Approving a card after the mode was tightened is refused, and nothing is changed.Ask again after the mode is as you want.
Figure 39. A MuleSoft approval card whose target names the environment and its type. Capture details are item 39 in the list of screenshots to capture. Call-outs to draw: 1 Target line with the environment type; 2 Exactly what will run; 3 Approve and Deny.

Limits in one run

Each kind of write can be asked for only a few times in one chat run, so a loop cannot fill your screen with cards. The Copilot tells you in the chat in the limit's own words, for example "exchange_publish: at most 6 calls in one chat run (a limit set for this environment)."

CAUTION · It counts cards asked, not changes made

The count goes up when the Copilot asks, before you decide. A card you deny, a card that expires and a write that fails all count. So "at most 6 calls" can be used up with nothing published at all. Nothing is sent and no card is made once the limit is reached.

What you seeWhat it meansWhat to do
"... at most N <things> in one chat run." (for example 6 calls for publishing an asset, publishing a jar and deploying, 3 policies applied, 2 pull requests; the numbers differ by environment)The Copilot has already asked for that kind of write the most times allowed in this run.Tell the Copilot what you want done next, in a new message. A new message starts a new run with a fresh count.
The limit message appears although you approved nothingEarlier cards in the same run were denied, expired or failed, and they still count.Check the Approvals tab of the Brain panel to see them, then send a new message.

In Sandbox mode a write is turned away before it is counted, so a refused write does not use up a limit.

Writes

What you seeWhat it meansWhat to do
"... refused the change (HTTP 4xx), so nothing was changed."The system said no (a missing permission, a bad value, a validation rule).Read the reason after it, fix the request, ask again.
"... did not confirm the change ... may or may not have been applied. Cockpit did not try again."The connection dropped or the system errored after the write was sent.Check the system. Only ask again if the change is not there.
"the Salesforce org this chat uses is not connected. Reconnect it on the Connections page. Nothing was changed."The org was disconnected.Reconnect it.
"Slack is not connected. Connect it on the Connections page. Nothing was posted."No Slack connection.Connect Slack.
"your GitHub login cannot push to owner/repo, so Cockpit cannot open a pull request there. Nothing was changed."The connected GitHub user has no write access.Use a repository you can write to.
"owner/repo is archived" / "was not found, or your GitHub login cannot see it" / "the branch X does not exist"The repository or base branch is unavailable.Check the name and branch.
"the branch cockpit/... already exists ... Choose another branch name."An earlier attempt created it.Delete the branch on GitHub, or ask for another name.
"GitHub failed while the commit was being prepared ... No branch and no pull request were created."GitHub failed before the branch existed.Nothing is left behind. Ask again.

Microphone and apps

What you seeWhat to do
"Cockpit cannot use the microphone..."Allow the microphone for the site in browser settings.
No microphone buttonYour browser has no speech recognition. Type.
Mac: a prompt about an app downloaded from the internetClick Open. It appears the first time.
App opens but does not sign inClick Enter Cockpit again. The browser signs you in, then hands back to the app through cockpit://.
Desktop app: "Cockpit can't be reached. Check your internet connection. Cockpit will try again by itself."The app could not reach Cockpit (no internet, a slow network or a blocked address). Check the connection. It tries again by itself, or press Try again now.
Desktop app: a team member cannot sign in with GoogleA team member signs in at the team door, with email and password. On the sign-in screen press Sign in to a team (chapter 9).
Support asks for your versionIn the app choose Help, then Copy Diagnostics, and paste it into your message (chapter 5). It holds versions only.
No Download buttonIt shows only to approved accounts, on a Mac or Windows computer, and not inside the apps.

If nothing here helps

Before writing to support checklist

  • I have the reference code (CKP-...) if the message showed one.
  • I know which step I was on and what I expected.
  • I have a screenshot with no secret in it.
  • I did not retry more than twice.

Chapter 11

Glossary

The words used in the product and in this manual, in alphabetical order.

Terms

Two words are easy to confuse. Sandbox mode and Production mode are modes of Cockpit. A Salesforce sandbox and a Salesforce production org are kinds of org. A Developer Edition org can be used in Production mode, and a production org can be used in Sandbox mode.

TermMeaning
Anypoint PlatformMuleSoft's website for building and running integrations.
API keyA long password for one tool, created by you and shown once. Postman uses one.
Approval cardThe box in the chat that shows exactly what a change will do and waits for your Approve or Deny.
Blast radiusThe line on an approval card that says where the change lands, for example "Writes to Salesforce org ...".
BoardThe page that shows your work as cards in four columns. Beta, switched on for testers.
Brain panelThe panel on the chat that shows what Cockpit ran, your approvals and API usage.
Callback URLThe address a system sends you back to after you approve a sign-in. It must match exactly. Also called a redirect URL.
CaptainA team administrator. Only for teams, switched on per customer.
Client credentialsA way for an app to sign in as itself, without a person. The MuleSoft connected app uses it.
Client id and client secretAn app's username and password: two long codes. Keep the secret private.
Connected app (MuleSoft)The door you create in Anypoint so Cockpit can read it.
ConnectorA system you connect to Cockpit.
Consumer Key and Consumer SecretA Salesforce app's client id and client secret.
CopilotThe AI in the chat.
CrewTeam members. Only for teams, switched on per customer.
Developer EditionA free Salesforce org made for learning, with sample data.
DiagnosticsCopy Diagnostics in the desktop apps: a short block of text with versions, for support. No account details.
Discovery reportA one-click read-only report on a Salesforce org, written into a chat.
External Client AppThe Salesforce app you create so an outside tool such as Cockpit can sign in.
Fingerprint (SHA-256)A short code computed from the exact input of a write. The approval is bound to it.
OrgOne private copy of Salesforce, with its own data and users.
OAuthThe sign-in method in which you approve a tool without giving it your password.
Per-run limitThe most times one kind of write may be asked for in a single chat run. Cards asked count, not only those approved.
PKCEProof Key for Code Exchange: an extra check on an OAuth sign-in that stops a stolen code from being used.
Production modeThe Cockpit mode in which writes are possible, each after your approval. Not a statement about the org.
Pull requestA proposal to change code that your team reviews before anything is merged.
RailThe strip of icons at the left of the console (the bottom on a phone).
RecipeA built-in guide that fixes the steps and the shape of the Copilot's answer for one kind of job.
Reference codeA code like CKP-ab12cd34ef56 shown with a failure, for support to find the request.
Sandbox modeThe Cockpit mode in which nothing can be changed. Not the same as a Salesforce sandbox org.
Salesforce sandboxA copy of a Salesforce production org for testing. Logs in at test.salesforce.com.
ScopeOne specific permission you give to an app.
SetupThe area inside Salesforce where you change settings (gear icon).
SOQLSalesforce's query language.
Standing approvalAn "Always allow" for a plan or read tool. Never for writes.
TargetWhere a write lands: a Salesforce org, a Slack workspace, or a GitHub repository and base branch.
ToolOne thing the Copilot can do in a system, such as run a query. Writes are tools that need approval.
TrialThe 7-day Pro trial that starts at your first sign-in.
VaultCockpit's encrypted store for your connection credentials.
WorkstationA private machine in the cloud for code tasks, one per person, with its own disk. It does one task at a time and goes to sleep after about 30 minutes without work. Not available in this edition.

Chapter 12

Quick reference card

One page to keep beside you: the modes, the approval check, the commands and where to find things.

The card

Modes
Chip saysCockpit can
SandboxRead only. Nothing is created, changed, posted or deleted.
Production: read + writeAlso write, only where a write action exists, only after you approve each card.

Before Approve checklist

  • The target (org, workspace, repository) is the one I mean.
  • I read "Exactly what will run" to the end.
  • One record, or one message, or one pull request, as I asked.
  • The values are right. I am inside 10 minutes.
  • In doubt: Deny. Then check the result in the system.
Where things are
I want toGo to
Connect, test, disconnectRail, Connectors
Switch modeMode chip (top bar), or Account, Modes
See waiting cardsRail, Approvals
Withdraw AI consent, download apps, delete accountRail, Account
Run a SOQL query, browse objects, see MuleSoft deployments (where switched on)Rail, Workbench
Run the Org Discovery ReportType /discovery, or Connectors, Run discovery report
See my work as cards (beta)Rail, Board
Invite people, set what each may connect (teams only)Settings list, Team
Copy what support needs from the desktop appHelp menu, Copy Diagnostics
Start freshChats, New thread
Limits and times
WhatValue
Approval card lifetime10 minutes
Salesforce calls in one runAbout 40
A write is sentOnce, with a 30-second limit, never retried
One kind of write in one chat runA few, often 2 or 3 (the message names it). Cards asked count, not only those approved; then send a new message
Trial7 days from first sign-in
If it goes wrong
MessageDo
Reference: CKP-...Send it to support. Do not retry more than twice.
Needs reconnectReconnect the card.
"... did not confirm the change ..."Check the system before asking again.
Waiting for approvalWait for the email; sign in with the same address.
Anything elsesupport@cockpitai.io. Never send passwords, secrets or keys.

Chapter 13

The Workbench

Run SOQL and SOSL on a connected Salesforce org, chart the results, browse its objects, fields and setup data, read its Apex logs, watch its limits, and see your MuleSoft deployments, APIs and logs, on a screen that only reads.

What the Workbench is

ARRIVING · Switched on per environment

The Workbench is built and is being tried before it is switched on everywhere. If your rail has no Workbench entry, your environment does not have it yet. Nothing in this chapter can be done until it does.

The Workbench is a page next to the chat for the jobs a developer does with a mouse and a keyboard: write a SOQL query and read the rows, look up what fields an object has, and check what is deployed in MuleSoft. It is the same page in the browser, in the Mac app and in the Windows app.

It only reads. There is no button on it that creates, changes, deploys, stops or deletes anything. That is true in every mode and for every org, including Production. The Workbench panels do not use an AI model and never send anything to the Copilot on their own: rows, logs and cell values reach the Copilot only when you choose to send them, and you see exactly what goes first.

The tabs
TabUse it to
QueryWrite a SOQL query, run it on one of your Salesforce orgs, and read, sort, copy or download the rows.
ObjectsSearch an org's objects, read an object's fields, relationships and record types, and add a field to your query with one click.
MetadataRead the setup data of the org: Apex classes and triggers, flows, validation rules, custom objects and fields, Lightning web components, installed packages, record types, permission sets and profiles.
LimitsSee how much of the org's daily and storage limits is used, as gauges, most used first.
MuleSoftSee the deployments of a MuleSoft environment and the APIs with the policies applied to each. Shown only where MuleSoft discovery is switched on.
Search and LogsSearch many objects at once with SOSL, and read the org's Apex debug logs. Part of the second wave in 13.8, which is switched on separately.

Open it from the rail (the window icon, labelled Workbench). At the top, choose the Salesforce org. Each org shows its type, and a Production org also shows a note that the page only reads there.

Figure 40. The Workbench with a query and its result rows. Capture details are item 40 in the list of screenshots to capture. Call-outs to draw: 1 Org picker and read-only badge; 2 Query box; 3 Run button; 4 Result line; 5 Sortable column headings; 6 History and Saved.

13.1 Run a query

Run your first query

  1. Open Workbench in the rail and choose a Salesforce org at the top right.

    You should see The org's name and type appear, with a badge reading read-only.

  2. Look at the box. It starts with a sample: SELECT Id, Name, CreatedDate FROM Account ORDER BY CreatedDate DESC LIMIT 25. Change it, or replace it with your own SELECT query.

  3. Press Run, or press Ctrl and Enter together (Command and Enter on a Mac).

    You should see A line above the table says how many rows came back, how long it took, and how many Salesforce API calls the org has left today.

  4. Click a column heading to sort by it. Click again to reverse, and a third time to put the rows back in the order Salesforce gave them.

Before the first run, the empty page offers example queries you can start from: the newest accounts, a count of contacts, open opportunities, and two that read setup data (Apex classes and validation rules). Picking one fills the box; it does not run until you press Run.

The query box colours keywords, text values, numbers and dates as you type. It is a plain text box: nothing is changed in your text, and a pasted query keeps its line breaks.

Keys and buttons
Do thisTo
Ctrl or Command + EnterRun the query, or only the part of the text you have selected.
Ctrl + Space (or Alt + /)Suggest names at the caret: the fields of the object the query reads, or object names right after FROM. Arrow keys choose, Enter or Tab takes one, Escape closes the list.
Ctrl or Command + Shift + SSave the query with a name.
Stop (while it runs)Stop waiting. Salesforce may still finish the query, but nothing is shown.
RowsChoose how many rows to fetch: 100, 200, 500, 1,000 or 2,000. The default is 200.
Setup dataQuery setup data such as Apex classes, flows and validation rules, which Salesforce answers through its Tooling API.
The row number at the left of a rowOpen that row as a list of its fields, which is easier to read when a row is wide. Press Escape to close it.
Filter rowsKeep only the rows that have your text in any cell. Copy and Download CSV then use the rows you see.
CopyCopy the rows as tab-separated text to paste into a spreadsheet.
Download CSVSave the rows as a CSV file named after the object and the time.
Drag a column's right edge, or focus it and press the left or right arrowMake the column narrower or wider.

ADVISORY · What a result is

Everything in the table is text, even if it looks like a web address or like code. A value that starts with an equals sign is written to a CSV file with a leading apostrophe, so a spreadsheet shows it as text instead of running it as a formula.

History and Saved. Beside the box, History keeps your last 50 queries (the text of the query, whether it worked, how many rows, and the org). Running the same query again refreshes its line instead of adding another. Click one to put it back in the box; it does not run until you press Run. Saved holds up to 100 queries you named. Both are yours alone, and both are removed when you delete your account. Neither ever holds the rows a query returned.

What it will not run. One SELECT at a time. A second statement after a semicolon, FOR UPDATE, and any query with a write word such as INSERT, UPDATE or DELETE are refused with a sentence saying why, before anything is sent to Salesforce.

13.2 Browse objects and fields

  1. Choose the Objects tab. Type in the search box to find an object by its name or its label. Tick Custom objects only to keep the ones your team added.

    You should see The list shows the objects your Salesforce user can read, and how many match.

  2. Click an object.

    You should see Its name, label and field count appear, with three tabs: Fields, Relationships and Record types.

  3. In Fields, search by name, label or type, then press Add beside a field.

    You should see You are taken back to the Query tab with the field added to your query's field list, and the cursor is in the box.

  • Add puts the field in the SELECT list of a query that already reads that object. If your query reads another object, or the box is empty, it starts a new query on this object.
  • A lookup field also shows a second button with the parent's name, for example Owner.Name, so you can bring the parent's value into the same row.
  • In Relationships, Add subquery adds the children of the object, for example (SELECT Id FROM Contacts), to the field list.
  • A picklist field shows how many values it has. Press the number to list them (inactive values are struck through) and Copy values to copy them, one per line. A very long picklist shows its first 200.
  • Query this object starts a fresh query on the object you are looking at.

Each object you open costs one Salesforce API call, and it is kept while the page is open, so going back to it costs nothing more.

Figure 41. The Workbench Objects tab with an object open. Capture details are item 41 in the list of screenshots to capture. Call-outs to draw: 1 Search objects; 2 Custom objects only; 3 Fields, Relationships, Record types; 4 Add button.

13.3 Read the org's setup data

The Metadata tab lists what has been built in the org, without writing a query. Pick a kind on the left: Apex classes, Apex triggers, flows, validation rules, custom objects, custom fields, Lightning web components, installed packages, record types, permission sets or profiles. The list appears in the same grid as a query result, so you can sort it, filter it, open a row as a list, copy it or download it as CSV.

  • Each kind is a plain read-only query. The code and automation ones read through Salesforce's Tooling API, the same as the Setup data switch on the Query tab.
  • Open in Query puts that query in the Query tab's box so you can change it, for example to add a WHERE clause.
  • A list is kept while the page is open, so going back to a kind does not read it again. Refresh reads it again.
  • Up to 2,000 rows are read for each kind. If an org has more, the page says the list was cut.

ADVISORY

Your Salesforce user needs View Setup and Configuration for the Setup lists. Without it Salesforce refuses, and the page says your user is not allowed to read that. Ask an administrator, or use a different connection.

13.4 Watch the org's limits

The Limits tab reads the org's limits in one call and shows each as a gauge: how much is used, how much is left, and the share used. The ones closest to their maximum come first. A gauge is green below 70 percent, amber from 70, and red from 90. Limits the org gives no maximum for are left out. Use the search box to find one, for example API or storage, and Refresh to read them again.

ADVISORY

The daily API request limit is shared by everything that uses the org, including Cockpit. If it is amber or red, avoid large queries until it resets.

13.5 MuleSoft deployments and APIs

The MuleSoft tab reads from Anypoint with the connected app you set up in chapter 6. Choose the connection and the environment. A production environment shows a note that the page only reads.

Above the tables, tiles show the organisation's name, its subscription and the vCores assigned to Production, Sandbox and Design. These are what Anypoint reports as assigned, not what is in use. A tile is left out when Anypoint does not report it.

  • Deployments lists each application with its state: Failing, Starting, Running or Stopped. The ones that need a look come first, and a row of counts above the table gives the totals. Hover a state to see Anypoint's own status words. The table also shows the runtime version, the replicas and vCores, the artifact and when it last changed, where Anypoint reports them.
  • APIs lists the API instances managed in the environment: the API and its instance name, version, status, active contracts and endpoint. Press Policies on a row to see the policies applied to that API, in order.

CAUTION · Policy settings are not shown

A policy's settings can hold keys and credentials. The Workbench shows the policy's name and order, and the names of its settings, never their values.

If a value is missing from a row, Anypoint did not report it for that application, and the Workbench leaves it blank instead of guessing.

Figure 42. The Workbench MuleSoft tab with deployments. Capture details are item 42 in the list of screenshots to capture. Call-outs to draw: 1 Connection and Environment; 2 State counts; 3 State of a deployment; 4 APIs tab.

13.6 What it reads, what it records, and the limits

QuestionAnswer
Can it change my org?No. Every call it makes to Salesforce and to Anypoint is a read. The query guard refuses anything but one SELECT.
Which orgs can I use?Only your own connected orgs and MuleSoft connections. Another person's cannot be reached, even by a guessed id.
What is recorded?An audit event for each query with the connection, the object name, how many rows came back and how long it took. The text of your query and the rows are not in it. Your History holds the text of your own queries and nothing else.
Does a query use my org's API allowance?Yes: one call for each page of up to 2,000 rows, plus one for each object you open. The line above the results shows what is left today.
How big can a result be?Up to 2,000 rows, and about 4 MB. A cut result says so above the table.
How long may a query take?25 seconds. A slower query stops with a sentence suggesting a filter or a LIMIT.
How often may I run queries?Up to 30 a minute. After that the page asks you to wait a few seconds.

ADVISORY · Production orgs

A Production org is marked in amber because it is the one your customers use. The Workbench cannot change it, but a very large query still spends that org's daily API allowance, which is shared with everything else that uses it.

13.7 When something goes wrong

You seeWhat it meansWhat to do
Write a SELECT query firstThe box is empty, or the text does not start with SELECT.Write one SELECT query.
Only one query at a timeThere is a semicolon and more text after it.Remove the semicolon and anything after it.
A message in Salesforce's own words, such as an unexpected tokenSalesforce read the query and did not understand it.Fix the query. The message names the part it stopped at.
Cockpit lost the sign-in to this connectionThe saved sign-in for that org or MuleSoft connection no longer works.Press Reconnect in the message, or use Connectors.
This Salesforce org has used up its daily API allowanceSalesforce refused the call because the org's limit for the day is spent.Wait for the limit to reset, or use another org.
Your user on that connection is not allowed to read thisThe connected user has no access to that object or area.Ask an administrator for the access, or try another connection.
The query took longer than 25 secondsSalesforce did not answer in time.Add a filter or a LIMIT, and run it again.
That is a lot of requestsYou ran more than 30 queries in a minute.Wait a few seconds.
Write a search that starts with FINDThe Search tab got text that is not a FIND search (for example a SELECT).Start with FIND {your words}, or run a SELECT in the Query tab.
This application has no log yetAnypoint has not given the application a version to read logs from, usually because it is still starting.Try again in a minute.
Connect a Salesforce org to startNo org is connected to your account.Press Connect an org and follow the guide in chapter 6.

If a message is not in this table, or the page shows a reference that starts with CKP, send it to support and say what you were doing.

13.8 Search, charts, logs and shortcuts

ARRIVING · Switched on separately

Everything in this section is a second wave that is switched on on its own, after the Workbench itself. If you do not see a Search tab and a Logs tab, your environment does not have it yet. The Workbench in sections 13.1 to 13.7 works without it.

These additions read exactly as the rest of the Workbench does: every call is a read, only your own connected orgs and MuleSoft connections can be reached, and nothing you do here is sent to an AI model on its own (rows and logs reach the Copilot only when you choose to send them).

Search (SOSL). The Search tab finds a word across many objects at once. Write a search that starts with FIND and the words in curly braces, for example FIND {Acme} IN ALL FIELDS RETURNING Account(Id, Name), Contact(Id, Name, Email), and press Search (or Ctrl or Command and Enter). The rows from every object share one grid, and the first column, SObject, says which object each row belongs to. Sort, filter, copy and download CSV work as they do for a query. Your last searches appear in History beside the box; click one to put it back in the box. If you paste a FIND into the Query tab and press Run, the Workbench moves it to the Search tab for you.

Figure 43. The Workbench Search tab with matches from two objects. Capture details are item 43 in the list of screenshots to capture. Call-outs to draw: 1 Search box; 2 SObject column; 3 Download CSV; 4 History.

Charts. When a query result has a column of numbers, a Table and Chart switch appears above it. A query with COUNT(), SUM() or AVG() and a GROUP BY is the usual case. Pick Bars or Line, and choose which column is the label and which is the number. Bars are sorted with the largest first, unless the labels are years or months, which keep the order of the query. A chart shows at most 40 bars or 200 points and says when it left some out. For a screen reader the chart has a one-sentence summary, and under it a list called The numbers behind the chart gives every value as a table.

Figure 44. The Workbench result chart of a GROUP BY query. Capture details are item 44 in the list of screenshots to capture. Call-outs to draw: 1 Table and Chart switch; 2 Bars and Line; 3 Label and Number lists; 4 The numbers behind the chart.

Apex logs. The Logs tab lists the newest debug logs in the org (who, what, when, how big, how long). Press Open on one to read it as numbered lines. Use Show to keep only errors, warnings or other levels, and the search box to find a word; press More lines for the next page and Older logs for the next page of the list. Cockpit works out each line's level from its event name (for example EXCEPTION_THROWN is an error, USER_DEBUG uses the level written in the line), so it is a good way to find the errors, but it is not Salesforce's own logging setting. Cockpit only reads logs: it does not turn trace flags on or off, and it does not delete a log. If the list is empty, no trace flag is on in Setup.

CAUTION · A log can hold record values

A debug log can contain the values of the records the code touched. Cockpit shows the log text only to you, as plain text, and does not store it, but do not paste it into a ticket without looking first.

Figure 45. The Workbench Logs tab with one Apex log open. Capture details are item 45 in the list of screenshots to capture. Call-outs to draw: 1 Show list; 2 Search the log; 3 Line count; 4 More lines.

MuleSoft details and logs. In the Deployments table, Details opens one application: Anypoint's status words, the state it wants, the runtime, the size, the artifact, when it last changed, the last version that worked, each replica with its state, and its public address. Logs opens its newest log lines (50, 100 or 200) for a period you choose, with a level list and a search box. Lines are written by the application, so they are shown as plain text and anything that looks like a secret is hidden. Anypoint keeps the log by version, so an application that has not started yet answers that it has no log yet.

ADVISORY · CPU and memory use are not here

The Workbench does not show how much CPU or memory an application is using (the Runtime config view shows the limits it is set to). The Metrics view under Operations in the MuleSoft tab shows its messages, errors, error rate and response time, and an API's requests by status group. Alerts are not read yet: that view says they could not be read, and never that none is firing.

Figure 46. The Workbench MuleSoft tab with an application's logs open. Capture details are item 46 in the list of screenshots to capture. Call-outs to draw: 1 Details and Logs; 2 Period; 3 Search these lines.

Saved query folders. When you save a query, the optional Folder box files it under that name; the Saved list then shows the queries grouped by folder, folders A to Z. A folder is just the first part of the saved name, written Folder / Name, so you can also rename by saving again with a new name.

Keyboard shortcuts
PressTo
Alt + 1 to 9Go to the first, second, third… tab.
/Jump to the filter or search box of the tab you are on.
?Show or hide the list of shortcuts (also the Keyboard shortcuts button). Escape closes it.
Ctrl or Command + EnterRun the query or the search.
Limits of the second wave
QuestionAnswer
How many search rows?Up to 2,000 and about 4 MB, like a query. Salesforce does not page a search, so put a LIMIT in it for fewer.
How many logs, and how long may one be?50 logs at a time (up to 200). A log is read up to about 5 MB and shown 300 lines at a time (up to 1,000); a line over 2,000 characters is shortened.
How many MuleSoft log lines?At most 200 of the newest, from the last 15 minutes up to 24 hours. Anypoint's read does not page back further.
How often?Up to 30 searches a minute and 20 log reads a minute. After that the page asks you to wait.
What is recorded?An audit event with the connection, counts and a log id, never the search text, a log line or a row. Your History holds the text of your own searches, like queries.

13.10 The GitHub tab

ARRIVING · Switched on separately

The GitHub tab is switched on on its own, after the Workbench itself and only where GitHub is connected. If you do not see it, your environment does not have it yet.

The GitHub tab reads one repository at a time, with your own GitHub sign-in: Pull requests (the list, then one with its checks, reviews and the diff of every changed file), Actions (runs, the jobs of one, and the end of a failed job's log, or just its error lines), Issues, Files (browse folders and read a file) and Search (code, issues, pull requests and commits). Type the repository as owner/name, or pick one from your own list.

It only reads. Nothing on this tab changes GitHub and nothing is sent to the Copilot. Everything GitHub sends is shown as text: a title that looks like a web page or a formula is shown as the characters it is. Secret-looking values in logs and files are hidden and counted, the values in .env files are always hidden, and key, certificate and binary files are not shown. A link to GitHub appears only when it really is a github.com address.

Each read is limited in rows and size, and you can make 20 to 60 a minute depending on the kind (searches and files are the fewest). The audit trail records the repository and the kind of read, never the path, the search text or what was read.

13.14 What the Copilot knows about the panel you have open

When this is switched on, the Copilot is told, in the short list of facts it gets with every message, which Workbench panel you have open and which of your connections (or which GitHub repository) it is on, for example: the Query panel on your Dev org. That is only the name of the panel and its connection. The Copilot cannot see what the panel shows: not a row, a log line, a file name or a query. If it needs something from the panel it asks you, and you decide whether to send it with Send to Copilot (13.12), after reading exactly what would be sent.

The note is replaced each time you change panel or org, is forgotten when you leave the Workbench or hide the page, and is not told to the Copilot after 15 minutes. It belongs to you, not to one chat, so any of your chats (and a scheduled run) can be told it while it is fresh. Only the panels your team's Captain has given you are ever named.

13.15 Access, audit and MuleSoft operations

When this is switched on, the Workbench has an Access and audit tab for your Salesforce org and an Operations view inside the MuleSoft tab. Each view is one of the Copilot's own read tools with a form in front of it: the same checks, the same hidden secrets and the same limits, on your own connection. Nothing on these pages changes anything, and nothing you read is sent to the Copilot unless you say so in a chat.

What each view answers
ViewWhat it answers
Who can accessWhich users can read, create, edit or delete an object or a field, or what one user can do with an object, a field or one record, worked out from profiles, permission sets and sharing.
Permission auditWho holds high-risk permissions such as Modify All Data, what differs between two permission sets or profiles, and which licensed users have not logged in for a number of days.
Audit trailLogins (who, when, from where), changes made in Setup, or the history of one field on one record. Salesforce keeps this for 180 days.
ExchangeA search of your organisation's Anypoint Exchange, or one asset in detail: versions, dependencies, files, tags and who published it.
Runtime configOne application's runtime settings, or what differs between two deployments of it, or between two different applications. Values that look like secrets are hidden.
MetricsAn application's messages, errors, error rate and response time, or an API's requests by status group with its error rate and response time. Not CPU or memory use. Alerts are not read yet: the panel says they could not be read, never that none is firing.
CapacityWhat each environment is estimated to use of your vCores, whether a trial is running out, and whether a deploy you are thinking about would fit.
API ManagerOne API in full, its SLA tiers, its alert rules (not whether they fired), the client applications that hold a contract on it, and the organisation's applications.

A form is sent only when it is complete: the page names a missing field, and a number, date or name that does not look right, before anything is sent. A field that does not apply to your question is not shown and not sent. Environments, applications and APIs are picked from lists read from your own connection. The answer is always shown as text, as a table, a list or a set of facts, and a line above it says how many reads it took and how many secret-looking values were hidden. A view your account does not have yet says so.

Limits: each view allows a few reads a minute (10 to 30, and 60 in all across these views), so the page asks you to wait if you go faster. The audit event names the view and the kind of question, never a name, an id or a row.

13.13 The Workstation tab

ARRIVING · Switched on separately

The Workstation tab is switched on on its own, after the Workbench itself, and only where the Workstation is switched on. If you do not see it, your environment does not have it yet.

The Workstation tab is a read-only window on your own Workstation. It shows the machine's state and hours, a live Activity trail of what happened to it (starting, ready, stopping, errors), its files (browse folders, read a text file), and the git status and recent commits of a folder. There is no terminal and no editor: nothing here types into a file or runs a command you typed.

The tab never wakes your Workstation for you. When it is asleep the files and the Run menu say so, and the Wake button (with the hours it will use) is the only way to start it. Secret-looking values in files and output are hidden and counted, the values in .env files are always hidden, and key and binary files are not shown.

The Run menu starts one governed command on the machine: build a Mule project, scan Salesforce code, run Lightning web component tests, or run Apex tests in your default Salesforce org (the one your chats use). These change nothing in an org or on GitHub; they write only inside the workspace. One runs at a time (20 an hour), each uses Workstation hours while it works, and the output appears when it finishes. To deploy, run Apex or change a file, ask the Copilot in a chat: the approval card does the write.

13.11 Apex and jobs

ARRIVING · Switched on separately

The Apex and jobs tab is switched on on its own, after the Workbench itself. If you do not see it, your environment does not have it yet.

The Apex and jobs tab reads five things from the chosen org, each a read-only query: Apex code coverage (lines covered per class and trigger, lowest first, with the org-wide figure the way the deploy check counts it), Failing Apex tests and Recent Apex test results, Async Apex jobs (batch, queueable and future jobs, newest first) and Scheduled jobs. Each has an Open in Query tab button, so you can change the query.

Record by Id shows the fields of one record: choose the object, paste the 15 or 18 character Id and press Open record. Its related lists are buttons that open a query for the children of that record in the Query tab; nothing runs until you press Run. Everything the org sends back is shown as text.

Nothing on this tab runs tests, runs Apex or changes a record. To do any of those, ask the Copilot in a chat: it proposes the action and the approval card does the write, with the same guards as always.

13.12 Send to Copilot

ARRIVING · Switched on separately

Send to Copilot is switched on on its own, after the Workbench itself. If you do not see the button, your environment does not have it yet.

The Workbench never sends anything to the Copilot by itself. When you want the Copilot to look at what you are looking at, press Send to Copilot above a table of rows. A window shows you the exact text that would be sent: the rows you see (after your filter, the first 25 rows and 8 columns), with secrets, email addresses, cloud resource names, instance ids and Salesforce record ids replaced by a marker such as [hidden:email], and a count of what was hidden.

Nothing is stored until you press Send to Copilot in that window. Then Cockpit starts a new chat, bound to the same org, whose first message is that text, and opens it. No AI model has been asked anything yet: the Copilot reads the excerpt when you ask your first question in that chat. Cancel, or Escape, sends nothing. The excerpt is marked as data, so text inside it is never treated as an instruction.

You can make 10 sends a minute. The audit trail records the panel, the number of rows, the size and the counts of what was hidden, never a cell or the title.

Chapter 14

The project board

See what the Copilot is working on, what is finished and what is waiting for you, on a board whose cards move by themselves. Beta, switched on for testers.

What the board is

ARRIVING · Beta, switched on for testers

The board is built and is being tried by testers before it is switched on everywhere. If your rail has no Board entry, your environment does not have it yet, and nothing in this chapter can be done until it does.

The board is a page next to the chat that shows your work as cards in four columns. A card stands for a piece of real work, usually one chat. You do not have to keep it up to date: it moves by itself when something real happens in that chat (14.2). You can always move a card yourself.

Figure 47. The project board with cards in all four columns. Capture details are item 47 in the list of screenshots to capture. Call-outs to draw: 1 Phase boxes; 2 Waiting on you column; 3 A card moved by itself and its reason; 4 Move to list; 5 Add a card box.
The four columns
ColumnMeans
To doNot started.
DoingA run is working on it.
DoneFinished.
Waiting on youNeeds a decision from you: an approval, or a run that failed.

Every card says which phase it belongs to and, when the board moved it, why (for example, "Waiting for your approval"), with the words "moved by itself". A card made from a chat also carries small links: one back to the chat, and one to each approval card or pull request that came out of it. Above the columns a line says how many cards are waiting on you.

ADVISORY

The board is yours alone. Nobody else sees it, including a team's Captain.

14.1 Start and use a board

Start with discovery

  1. Open Board in the rail. With no project yet, press Start with discovery.

    You should see A project called "My first project" appears in discovery, with one To do card.

  2. Under the columns, choose a chat in Add a chat to this project.

    You should see The chat gets a card. Run something in that chat and watch the card move; the page refreshes by itself every few seconds, so you do not need to reload.

  3. To add a card of your own, type in the Add a card box under To do and press Add.

    You should see The card appears in To do.

  4. To take a card off the board, press Remove on it.

    You should see The card goes. The chat it came from is not touched.

ADVISORY · On a phone

The columns are stacked, with Waiting on you first. Use the Move to list on a card; there is no dragging on a phone.

14.2 How cards move by themselves

A card in a chat moves only because of something that really happened, and the card says what. Nothing moves because of a guess.

What happened in the chatThe card goes toThe card says
You ran something (a new run started). A finished card is reopened.DoingA run started
The Copilot asked for your approval.Waiting on youWaiting for your approval
You approved or declined the card.DoingYou approved, or You declined
The approval ran out (10 minutes).DoingThe approval expired
The run failed.Waiting on youThe run failed
You cancelled the run.To doThe run was cancelled
The run finished.DoneThe run finished

Two things are added to the card without moving it: a link to the approval card, and a link marked "A pull request was opened" when the Copilot opened one for you. A rule only applies to a card in the right column. A card you left in Done is not moved by an approval, for example.

ADVISORY · Your move stays

When you move a card yourself it says "You moved it" and stays where you put it until something real happens in its chat.

14.3 Phases and the gate

A project has three phases, shown as three boxes above the columns. Discovery is finding out what is there and what is in the way. Design is deciding what to build. Develop is building and shipping it. The box for the phase you are in says "now", finished ones say "approved", and later ones say "not yet". A project starts in discovery.

Open the next phase

  1. When you are satisfied with the phase, press the button above the columns, for example Discovery is complete, open Design.

    You should see A question: "Move to Design? This is your go-ahead and is recorded."

  2. Press Yes, open Design. To back out, press Not yet.

    You should see The Design box says "now" and Discovery says "approved".

Figure 48. The board's phase confirmation. Capture details are item 48 in the list of screenshots to capture. Call-outs to draw: 1 Confirmation question; 2 Yes, open Design; 3 Not yet.
  • That button is the gate. It is your go-ahead and it is recorded. Nothing else moves a phase: not the Copilot, and not a finished run.
  • Phases go in order: discovery, then design, then develop. You cannot skip one or open one twice. There is no gate button once a project is in develop.
  • A card you add has the phase the project is in now.

14.4 Move a card by keyboard, menu or mouse

Do thisTo
Tab to a card (it is outlined), then press Alt and the right arrowMove it one column to the right: To do, Doing, Done, Waiting on you. Focus stays on the card.
Alt and the left arrowMove it one column to the left. At either end it stays put.
The Move to list on a cardChoose any other column. This also works with a screen reader and on a phone.
Drag the card with a mouseDrop it on another column.

After each move a screen reader says, for example, "Moved Fix the nightly job to Done." If the move did not reach Cockpit, the page shows the reason and puts the card back.

Board checklist

Board checklist

  • I know the four columns and which one needs me.
  • I know a card moves only when something real happens, and says why.
  • I know that I alone open the next phase, with the button and a confirmation.
  • I can move a card by the Move to list, by Alt and an arrow key, or by dragging.

Appendices

Appendices

The scopes each connector asks for, keyboard and platform notes, how to reach support, and the owner's Admin Health view.

Appendix A: connector scopes

A scope is one specific permission you give to an app. These are what Cockpit asks for or tells you to add, taken from the product. Most providers have no read-only scope for what Cockpit reads, so it is Cockpit's Sandbox mode, enforced on the server, that keeps it to reading.

ConnectorDoorScopes or permissionsNotes
GoogleSign-inYour name and email onlySigning in never asks for more. Files in Google Drive are a separate connection (Google Drive, where it is offered) that you can disconnect without affecting sign-in.
SalesforceYour External Client App, authorization code with PKCEapi, refresh_tokenSalesforce labels these Manage user data via APIs (api) and Perform requests at any time (refresh_token, offline_access). Add no others. PKCE required.
MuleSoftYour connected app, client credentialsView Organization, View Environment, Read Applications, View APIs ConfigurationAdd only View and Read scopes. Never Create, Edit, Delete, Deploy or Manage. Choose the environments.
GitHubCockpit's GitHub sign-inread:user, reporepo is GitHub's standard access to private repositories; GitHub has no read-only version of it.
SlackYour own Slack app, user tokenUser scopes: channels:read, groups:read, channels:history, groups:history, search:read, users:read, chat:writeThe save-your-app page also lists bot scopes channels:read, chat:write, users:read. chat:write is used only after you approve a post.
Slack (optional step)A separate consent pageim:read, mpim:read, im:history, mpim:historyDirect messages. Asked for on their own, and you can decline.
PostmanAn API key you createNone. The key can do what its owner can do.Use a dedicated account. Revoke in Postman.

Appendix B: keyboard and platform notes

WhereKey or note
Message boxEnter sends. Shift and Enter start a new line.
Panels, menus and dialogsEscape closes the mode panel, an open drawer, a menu or a dialog, and returns focus to the control that opened it.
EverywhereTab moves through controls in order; the focused control has a visible outline. Tables in this manual are focusable so they can be scrolled with the keyboard.
LayoutUnder 900 px wide the Chats and Brain panels become drawers. At 480 px and narrower the rail becomes a bottom bar, and controls are at least 44 px tall.
Desktop appsCockpit menu: Command (Mac) or Ctrl (Windows) + N for a new chat, + Shift + C Connections, + Shift + B Workbench, + Shift + A Approvals. Help menu: Cockpit Manual, Check for Updates, Copy Diagnostics (no account details). On Windows, press Alt to show the menu bar. See 5.10.
WorkbenchAlt + 1 to 9 for a tab, / for the filter box, ? for the shortcut list, Ctrl or Command + Enter to run. See 13.8.
Project boardAlt and the left or right arrow on a focused card moves it one column. See 14.4.
MacCockpit for Mac, Apple silicon. First open: macOS asks about an app downloaded from the internet; click Open.
WindowsCockpit for Windows, Windows 10 or 11, 64-bit. Installs for you alone; no administrator password.
Sign-in hand-offThe apps open your browser to sign in and come back through cockpit://.
MicrophoneUses your browser's or phone's own speech recognition; hidden where there is none.
iPhone, AndroidComing. Use the console in a phone browser until then.
Printing this manualOpen the print view, choose Letter or A5 palm, and use Print, Save as PDF. Page numbers come from the browser's page margins, which Chromium-based browsers such as Chrome and Edge draw. The print layout has been checked in Chromium only.

Appendix C: support

Write to support@cockpitai.io.

Include in a message checklist

  • The reference code (CKP-...) if the message showed one.
  • The step you were on, and what you expected to see.
  • The address you signed in with (not a password).
  • A screenshot with no secret, key or password in it.

CAUTION

Never send passwords, Consumer Secrets, client secrets, API keys or one-time codes to anyone, including support. If you sent one by mistake, revoke it at the vendor.

The published privacy policy is at cockpitai.io/privacy.

Appendix D: the Admin Health view (owner only)

ARRIVING · Owner only, where switched on

The Health view is a section at the top of the Admin page, which only administrators can open. It appears only on a build where it is switched on. Nobody else sees it, and there is no way to change anything from it.

  1. Sign in as the owner and open Admin in the rail.

    You should see A Health section above the Waitlist, reading "Loading health numbers..." and then the numbers. It refreshes by itself every minute.

  2. Read the first line.

    You should see It begins OK., Look. or Problem. and says in a sentence why, for example "Nothing unusual in the last 24 hours."

  3. Read the tiles, then the two charts.

Figure 49. The Health section of the Admin page. Capture details are item 49 in the list of screenshots to capture. Call-outs to draw: 1 Verdict line; 2 Tiles; 3 Requests per hour chart; 4 Slowest 5% per hour chart.
Tile or chartWhat it shows
RequestsHow many calls this server answered in the last 24 hours.
Errors (5xx)How many failed on Cockpit's side, and their share. Above 5 percent, with at least 20 requests, the first line says Problem.
Slowest 5% (p95)The time the slowest 5 percent of calls took or more. Above 1 second the first line says Look.
Active runsChat runs running or queued now, and how many wait for an approval.
Approvals pendingApproval cards waiting for a decision.
Workstation hosts and cost todayMachines running now, how many exist, the limit, and today's cost against its ceiling. Shows "off" when Workstation is not on.
Requests per hour, Slowest 5% per hourOne bar for each hour, in your time zone. A red bar has a server error, or is above 1 second. Each bar has the number as a tooltip, and a screen reader is given the same numbers as a table.

ADVISORY

The numbers are this one server's own since it started, so they start again after each update. A line under the charts says since when. If the page says "The Health view is switched off on the brain.", the owner's page is ahead of the service; try again later.

Back matter

Screenshots to capture

Real captures come from the product owner's test drive. Capture each exactly as described, with no real customer data on screen, and draw the numbered call-outs.

  1. Salesforce Setup home of a new Developer Edition org Figure 1 Not yet captured
    Page
    The org's Setup home (gear icon, then Setup), signed in to org 1
    State
    Quick Find box visible at the top left; browser address bar visible and ending in .salesforce.com; no real data on screen
    Call-outs
    1 Quick Find search box; 2 Address bar ending in .salesforce.com
    Used in
    Chapter 3, Pre-flight: make your test accounts
  2. Anypoint Platform home of a new trial account, with the address bar Figure 2 Not yet captured
    Page
    anypoint.mulesoft.com (or eu1. / gov.) after the trial set-up finishes
    State
    Address bar visible so the region can be read; organisation name visible
    Call-outs
    1 Address bar host (shows the region); 2 Organisation name
    Used in
    Chapter 3, Pre-flight: make your test accounts
  3. The private cockpit-practice repository on GitHub Figure 3 Not yet captured
    Page
    github.com/<test user>/cockpit-practice
    State
    Private badge and the README visible
    Call-outs
    1 Private badge; 2 README
    Used in
    Chapter 3, Pre-flight: make your test accounts
  4. The new Slack workspace with the cockpit-practice channel Figure 4 Not yet captured
    Page
    The Slack workspace opened in the browser
    State
    Channel list shows #cockpit-practice; one message posted in it
    Call-outs
    1 Workspace name; 2 #cockpit-practice channel
    Used in
    Chapter 3, Pre-flight: make your test accounts
  5. The Request access page Figure 5 Not yet captured
    Page
    /request-access, signed out
    State
    Empty form: the email, name, company and purpose boxes and the Request access button
    Call-outs
    1 Email you sign in with; 2 What would you use Cockpit for?; 3 Request access button
    Used in
    Chapter 4, Boarding
  6. The Waiting for approval screen Figure 6 Not yet captured
    Page
    /app, signed in with an address that is not yet approved
    State
    The pill, the sentence, the three numbered steps and the Request access button are visible
    Call-outs
    1 Waiting for approval pill; 2 Signed-in-as line; 3 Request access button
    Used in
    Chapter 4, Boarding
  7. The sign-in page Figure 7 Not yet captured
    Page
    /sign-in, signed out
    State
    The Cockpit mark and the Google button (and the Apple button if it shows)
    Call-outs
    1 Google button
    Used in
    Chapter 4, Boarding
  8. The console on first sign-in Figure 9 Not yet captured
    Page
    /app, approved account, nothing connected, Sandbox mode, first week of the trial
    State
    Trial bar visible, Chats button, Download button, mode chip, Brain button, org picker and message box all visible; window about 1280 px wide
    Call-outs
    1 Rail; 2 Trial bar; 3 Chats button; 4 Mode chip showing Sandbox; 5 Brain button; 6 Org picker; 7 Message box and microphone
    Used in
    Chapter 4, Boarding
  9. The Chats panel with a few chats Figure 10 Not yet captured
    Page
    /app, Chats button pressed
    State
    At least three chats listed; one with the green Sandbox tag; one with its Options menu open showing Rename, Make this chat sandbox and Delete
    Call-outs
    1 New thread; 2 Search chats; 3 Sandbox tag; 4 Options menu
    Used in
    Chapter 5, The controls
  10. The Brain panel on the Activity tab Figure 11 Not yet captured
    Page
    /app, a chat in which the Copilot has read something, Brain button pressed
    State
    Activity tab showing tool lines; API usage and the Safety badge visible; Sandbox on
    Call-outs
    1 Tabs: Activity, Approvals, History, Settings; 2 A tool line; 3 API usage; 4 Read-only badge
    Used in
    Chapter 5, The controls
  11. The mode panel opened from the chip Figure 12 Not yet captured
    Page
    /app, mode chip clicked
    State
    Sandbox on: master switch off, every connector row reading read only in Sandbox
    Call-outs
    1 Master switch; 2 A connector row; 3 Mode settings link
    Used in
    Chapter 5, The controls
  12. The Connectors page before anything is connected Figure 13 Not yet captured
    Page
    /app/connections
    State
    New approved account; Available tab selected; Salesforce and MuleSoft cards above the tabs; search box visible
    Call-outs
    1 Settings list at the left; 2 Search; 3 Connected and Available tabs; 4 Salesforce card; 5 A Connect button
    Used in
    Chapter 5, The controls
  13. The Salesforce card with a connected org Figure 14 Not yet captured
    Page
    /app/connections, after org 1 is connected
    State
    One org listed with its health label and the Rename, Reconnect and Disconnect buttons
    Call-outs
    1 Add Salesforce org; 2 Org name and type chip; 3 Health label; 4 Rename, Reconnect, Disconnect
    Used in
    Chapter 5, The controls
  14. The Approvals page with nothing pending Figure 15 Not yet captured
    Page
    /app/approvals
    State
    No pending approvals: the All clear message and the Back to the console link
    Call-outs
    1 Refresh; 2 All clear message
    Used in
    Chapter 5, The controls
  15. The Account page Figure 16 Not yet captured
    Page
    /app/account
    State
    Scrolled to show Identity through Usage; no real name or email visible (use the test account)
    Call-outs
    1 Sign out; 2 Standing approvals; 3 AI processing; 4 Downloads; 5 Usage; 6 Delete account
    Used in
    Chapter 5, The controls
  16. The message box while the microphone is listening Figure 17 Not yet captured
    Page
    /app, microphone pressed
    State
    The Stop listening button and the note Listening... visible
    Call-outs
    1 Microphone button (listening); 2 Listening note
    Used in
    Chapter 5, The controls
  17. The Mac and Windows download cards Figure 18 Not yet captured
    Page
    /app/account, Downloads section
    State
    Both cards visible, in a browser on the system whose card is first
    Call-outs
    1 Download button; 2 Install steps
    Used in
    Chapter 5, The controls
  18. The Cockpit menu of the desktop app Figure 19 Not yet captured
    Page
    The Mac or Windows app, Cockpit menu opened
    State
    The Cockpit menu open with New chat, Connections, Workbench and Approvals and their shortcuts visible
    Call-outs
    1 New chat; 2 Connections, Workbench, Approvals; 3 Shortcuts
    Used in
    Chapter 5, The controls
  19. The Diagnostics copied message in the desktop app Figure 20 Not yet captured
    Page
    The Mac or Windows app, Help menu, Copy Diagnostics pressed
    State
    The message Diagnostics copied and its sentence about account details
    Call-outs
    1 Help menu entry; 2 Diagnostics copied message
    Used in
    Chapter 5, The controls
  20. The Cockpit can't be reached screen in the desktop app Figure 21 Not yet captured
    Page
    The Mac or Windows app started with the internet switched off
    State
    The heading, the sentence about checking the connection and the Try again now link
    Call-outs
    1 Heading; 2 Try again now link
    Used in
    Chapter 5, The controls
  21. The console on a phone-width screen Figure 22 Not yet captured
    Page
    /app in a 390 px wide window
    State
    Bottom bar rail, the short mode chip, and the message box visible
    Call-outs
    1 Bottom rail; 2 Short mode chip; 3 Message box
    Used in
    Chapter 5, The controls
  22. The four-step Salesforce guide in Cockpit Figure 23 Not yet captured
    Page
    /app/connections/salesforce/setup
    State
    Step 1 with Production (login.salesforce.com) selected; the Callback URL and Scopes boxes filled in; consumer boxes empty
    Call-outs
    1 Org type choice; 2 Callback URL; 3 Scopes box reading api refresh_token; 4 Step 4 button
    Used in
    Chapter 6, Connecting each system
  23. The External Client App's OAuth settings in Salesforce Figure 24 Not yet captured
    Page
    Setup, External Client App Manager, the Cockpit app, OAuth settings
    State
    Enable OAuth ticked, the callback URL set, exactly the two scopes, PKCE ticked; secrets not on screen
    Call-outs
    1 Callback URL; 2 The two scopes; 3 PKCE option
    Used in
    Chapter 6, Connecting each system
  24. The Cockpit connected app's scopes in Anypoint Figure 25 Not yet captured
    Page
    Anypoint Access Management, Connected Apps, the Cockpit app
    State
    Type App that acts on its own behalf; the four View and Read scopes listed; client secret not on screen
    Call-outs
    1 App type; 2 The four read scopes; 3 Environments chosen
    Used in
    Chapter 6, Connecting each system
  25. GitHub asking to authorize Cockpit Figure 26 Not yet captured
    Page
    The GitHub authorization page reached from Connect GitHub
    State
    Signed in as the test account; the permission list visible
    Call-outs
    1 Signed-in account; 2 Requested access; 3 Authorize button
    Used in
    Chapter 6, Connecting each system
  26. The Slack app's OAuth and Permissions page Figure 27 Not yet captured
    Page
    api.slack.com/apps, the Cockpit app, OAuth & Permissions
    State
    Redirect URL saved; User Token Scopes and Bot Token Scopes listed; no secret on screen
    Call-outs
    1 Redirect URL; 2 User Token Scopes; 3 Bot Token Scopes
    Used in
    Chapter 6, Connecting each system
  27. Postman's API keys page with the new key Figure 28 Not yet captured
    Page
    go.postman.co/settings/me/api-keys
    State
    Key named Cockpit with an expiry; the key value must NOT be visible in the capture
    Call-outs
    1 Key name; 2 Expiry
    Used in
    Chapter 6, Connecting each system
  28. The Connectors page with every test account connected Figure 29 Not yet captured
    Page
    /app/connections
    State
    Two Salesforce orgs, two MuleSoft connections, GitHub, Slack and Postman connected; every capability tag reading Read only (Sandbox)
    Call-outs
    1 Two Salesforce orgs; 2 Two MuleSoft connections; 3 Capability tags
    Used in
    Chapter 6, Connecting each system
  29. The answer to How close is this org to its API limits? Figure 30 Not yet captured
    Page
    /app, a chat on org 1, Sandbox
    State
    The question, the answer with real numbers, and the API meter line above the message box
    Call-outs
    1 The answer's numbers; 2 API meter line
    Used in
    Chapter 7, Your first flights
  30. The test pull request on GitHub Figure 31 Not yet captured
    Page
    github.com/<test user>/cockpit-practice/pull/1
    State
    One added file, AccountUpdater.cls, visible in the Files changed tab
    Call-outs
    1 Pull request number; 2 File name
    Used in
    Chapter 7, Your first flights
  31. A finished Org Discovery Report in a chat Figure 32 Not yet captured
    Page
    /app, after /discovery on a connected org
    State
    The report's top: title, date, first section, and the download buttons
    Call-outs
    1 Report date; 2 A not-readable marker if present; 3 Download buttons
    Used in
    Chapter 7, Your first flights
  32. The Switch to Production mode confirmation Figure 33 Not yet captured
    Page
    /app, mode chip, master switch turned on
    State
    The confirmation text and both buttons visible
    Call-outs
    1 Confirmation text; 2 Switch to Production mode; 3 Stay in Sandbox
    Used in
    Chapter 8, Production flight
  33. A real approval card for a Salesforce create Figure 34 Not yet captured
    Page
    /app, Production mode, after asking for an Account
    State
    The whole card visible: summary with the org, the input, fingerprint, tags and both buttons, still pending
    Call-outs
    1 Summary and target; 2 Exactly what will run; 3 Blast radius; 4 Approve and Deny
    Used in
    Chapter 8, Production flight
  34. The Account found in Salesforce after approval Figure 35 Not yet captured
    Page
    Salesforce, Accounts list view, org 1
    State
    Exactly one Cockpit Test Drive One account visible
    Call-outs
    1 Account name; 2 Created date
    Used in
    Chapter 8, Production flight
  35. The Captain's team members page with one active and one invited person Figure 36 Not yet captured
    Page
    /app/team, signed in as a Captain, on a build with Teams switched on
    State
    The Invite someone form and two team members visible: one Active with the access lists, one Invited with Send again; use fake addresses such as test.user@example.com
    Call-outs
    1 Invite someone form; 2 Starting access list; 3 Connector access lists; 4 Save access button; 5 Role list and Change role; 6 Send again; 7 Remove
    Used in
    Chapter 9, Captain and Crew
  36. The team page as a team member sees it Figure 37 Not yet captured
    Page
    /app/team, signed in as a team member (not a Captain)
    State
    The team name, the line naming the Captain, and the What you can use list with at least one Read only and one Not enabled; fake names and addresses only
    Call-outs
    1 Team name; 2 Captain line; 3 What you can use; 4 Ask your Captain note
    Used in
    Chapter 9, Captain and Crew
  37. The team door of the sign-in page Figure 38 Not yet captured
    Page
    /sign-in?door=crew, signed out, on a build with Teams switched on
    State
    The line about the invited address, the email and password form and the Sign in with Google instead link; no Google button
    Call-outs
    1 Invited address line; 2 Email and password form; 3 Sign in with Google instead link
    Used in
    Chapter 9, Captain and Crew
  38. A MuleSoft approval card whose target names the environment and its type Figure 39 Not yet captured
    Page
    /app, Production mode, a chat asking Cockpit to restart an application in a sandbox environment
    State
    The whole card visible, with the target line naming the environment and its type in brackets, still pending; fake application names only
    Call-outs
    1 Target line with the environment type; 2 Exactly what will run; 3 Approve and Deny
    Used in
    Chapter 10, Troubleshooting
  39. The Workbench with a query and its result rows Figure 40 Not yet captured
    Page
    /app/workbench, a Salesforce sandbox org chosen
    State
    The sample query run on a throwaway org; the org badge, the Run button, the result line and at least three rows visible; no real customer data on screen
    Call-outs
    1 Org picker and read-only badge; 2 Query box; 3 Run button; 4 Result line; 5 Sortable column headings; 6 History and Saved
    Used in
    Chapter 13, The Workbench
  40. The Workbench Objects tab with an object open Figure 41 Not yet captured
    Page
    /app/workbench, Objects tab, the Account object chosen
    State
    Search box, the object list and the Fields tab with the Add buttons visible
    Call-outs
    1 Search objects; 2 Custom objects only; 3 Fields, Relationships, Record types; 4 Add button
    Used in
    Chapter 13, The Workbench
  41. The Workbench MuleSoft tab with deployments Figure 42 Not yet captured
    Page
    /app/workbench, MuleSoft tab, a sandbox environment chosen
    State
    State counts and the deployments table visible, at least one deployment Running; no real application names that you do not want shown
    Call-outs
    1 Connection and Environment; 2 State counts; 3 State of a deployment; 4 APIs tab
    Used in
    Chapter 13, The Workbench
  42. The Workbench result chart of a GROUP BY query Figure 44 Not yet captured
    Page
    /app/workbench, Query tab, a COUNT() ... GROUP BY query run on a throwaway org, Chart view chosen
    State
    The Table and Chart switch, the Bars and Line buttons, the Label and Number lists and a bar chart of at least three bars; no real customer data on screen
    Call-outs
    1 Table and Chart switch; 2 Bars and Line; 3 Label and Number lists; 4 The numbers behind the chart
    Used in
    Chapter 13, The Workbench
  43. The Workbench Logs tab with one Apex log open Figure 45 Not yet captured
    Page
    /app/workbench, Logs tab, a log from a throwaway org opened
    State
    The Show list set to Errors, the search box, the line count and a few numbered lines; no record values on screen
    Call-outs
    1 Show list; 2 Search the log; 3 Line count; 4 More lines
    Used in
    Chapter 13, The Workbench
  44. The Workbench MuleSoft tab with an application's logs open Figure 46 Not yet captured
    Page
    /app/workbench, MuleSoft tab, a sandbox environment, Logs pressed on one application
    State
    The Period, Lines and Show lists and a few log lines, no real application names that you do not want shown
    Call-outs
    1 Details and Logs; 2 Period; 3 Search these lines
    Used in
    Chapter 13, The Workbench
  45. The project board with cards in all four columns Figure 47 Not yet captured
    Page
    /app/board, a build with the board switched on, a project in discovery
    State
    The three phase boxes, the four columns with at least one card each, one card reading moved by itself with its reason line, and the Add a chat to this project list; fake chat titles only
    Call-outs
    1 Phase boxes; 2 Waiting on you column; 3 A card moved by itself and its reason; 4 Move to list; 5 Add a card box
    Used in
    Chapter 14, The project board
  46. The board's phase confirmation Figure 48 Not yet captured
    Page
    /app/board, after pressing the button that says Discovery is complete, open Design
    State
    The question Move to Design? This is your go-ahead and is recorded, with both buttons visible
    Call-outs
    1 Confirmation question; 2 Yes, open Design; 3 Not yet
    Used in
    Chapter 14, The project board
  47. The Health section of the Admin page Figure 49 Not yet captured
    Page
    /app/admin, signed in as the owner, on a build with the Health view switched on
    State
    The one-line verdict, the tiles, and the two hourly bar charts all visible
    Call-outs
    1 Verdict line; 2 Tiles; 3 Requests per hour chart; 4 Slowest 5% per hour chart
    Used in
    Chapter A, Appendices