StartConceptsPlaybooksFeature docsAPI & MCPChangelog
← All feature docs
Feature docs · /settings

Account & Settings

Your account: your plan and billing, your profile and login, the company context that grounds every AI draft, and your data controls.

Overview

Settings is where you manage the account itself, everything that isn't a run. It's the home for your identity and your money, not a work surface.

Plan & billing

Changing plans here takes effect on the next scheduled run. The scheduler reads your live entitlement rows each pass, so there is no cache to wait out and nothing to re-provision by hand.

Coming back from checkout

Profile & login

Brand & Company

Who you sell for, company, positioning, ICP, differentiators. This grounds every AI draft so output is about your business, not generic SaaS. Most of this is also built and enriched by the GTM Context Dossier during onboarding; Settings is where you edit it by hand.

Honest saves. The Profile and Brand save buttons confirm against your account, not just this browser: "Saved to your account" means the cross-device sync accepted the write; if sync is unreachable you'll see "Saved on this device" with a retry note instead of a false success.

Security artifacts. List the security and compliance documents you can send a buyer's InfoSec team (SOC 2 report, pen-test summary, security whitepaper, one per line). When a late-stage deal stalls in a security review, the stall accelerator's drafted nudge offers these proactively instead of waiting on the questionnaire.

Calendar

The Calendar tab takes your calendar's published iCal address (in Google Calendar: Settings, click your calendar, "Secret address in iCal format"; Outlook and Apple publish the same kind of address). Saving it syncs immediately, and Sync now re-reads it whenever you want. We only ever read the feed.

The address is a credential. Anyone holding a published calendar address can read that calendar, so it is stored encrypted with the same AES-256-GCM helper that protects your OAuth tokens, and it is never sent back to the browser. The tab shows which provider is configured and when it last synced, not the address itself. Remove feed stops the reading; meetings already synced are kept, because forgetting the address is a different request from deleting what it produced.

What a sync brings in. Meetings from roughly the last week and the next two months, cancelled ones skipped. Each is matched to the calendar's own event id, so re-syncing updates a meeting rather than duplicating it. Those meetings feed Meeting Prep, and any meeting with a real start time also gets the prep reminder that goes out shortly before it starts.

Timezones. Most calendars state a meeting as a wall-clock time in a named zone ("nine in the morning, Chicago"), which is only an instant once you know that zone's offset on that date. We resolve it against the timezone database, so a 9am standup is 14:00 UTC in August and 15:00 UTC in January, and its reminder lands at the right moment on both sides of a daylight-saving change.

Recurring meetings. A weekly standup is one entry in the feed carrying a repeat rule, so we expand it into the individual meetings inside the sync window. Daily, weekly, monthly and yearly rules are covered, including "every other week", "Mondays and Wednesdays", "the third Thursday" and "the last Friday", along with an end date or a count, dates the series skips, and a single meeting moved out of its slot. Each instance is tracked separately, so re-syncing updates them rather than duplicating.

Where it is still honest about time. An all-day entry has no time at all, and a meeting with no zone attached means "whatever the clock says wherever you are". Neither has an instant to state, so both keep what the calendar gave and stay out of the reminder queue rather than being given a guessed hour. A repeat rule using a pattern we do not expand keeps its first meeting rather than being expanded wrongly: one meeting missing is a gap, but meetings on the wrong days would be worse.

Confirming your email address

When you sign up with an email and password we send a confirmation link to that address. Click it and the Account tab stops showing the banner. The link works once and lasts a day; you can send a fresh one from the banner at any time.

You can use it before confirming. Signing in, connecting tools, running your roles: none of it waits on the email. What does wait is subscribing. Every message about a purchase, the receipt, the renewal notice, and the email we send when a card fails, goes to whatever address you typed, so we confirm it can receive mail before taking money against it. Discovering a typo at the first failed charge is the expensive way to find out.

Clicking the link does not sign you in. It confirms the address and sends you to the sign-in page. An emailed link that logs somebody in is exactly the thing worth not building.

Signing in with Google needs no confirmation step: Google has already established that the address is yours.

Team leaderboard

If your team owner turns the leaderboard on, your name and your numbers appear on it beside your teammates'. The Keep me off the team leaderboard checkbox on the Account tab removes you from the ranking: your activity still counts towards team totals, you are simply not listed and not ranked. Your owner cannot override it.

The board shows a name worked out from your email address, not the address itself.

What you are spending on AI

The AI usage card shows this month's spend, the number of calls behind it, and a breakdown by what produced them. If it cannot load, it says so and what to do; it will not sit on "Loading…".

If you have saved your own provider key in a role's console, runs on your key are billed to you and are not counted here as ours.

Desktop notifications

Turn these on from the Account tab and you get a desktop notification for the handful of things worth interrupting you: a meeting starting soon with prep ready, your morning queue when the drafts land, a champion going quiet on an open deal, and a writeback finishing.

Per device. A browser subscription belongs to that browser on that machine, so turning it on at your desk does not turn it on on your laptop or your phone. Turn it on in each place you want it.

Your browser asks once. We only request the permission when you click the button, never on page load, because browsers remember a refusal and most will not ask again. If you have already blocked notifications for this site, no button can undo that: it lives in your browser's own settings for the site, usually behind the padlock in the address bar.

On iPhone and iPad, Safari only delivers notifications for a site added to the Home Screen. Add it there first, open it from the Home Screen icon, then turn this on.

Turning it off removes the subscription for that device immediately. It does not change your email preferences, which are separate and listed below.

Email preferences

When a setting will not load

Every preference control on this page reads its stored value when the page opens. If that read fails, because the network dropped or the API answered with an error, the control now says so beneath it: "Could not load your saved setting. Showing the default; save to overwrite it."

Treat that as a warning, not a value. The control is showing its default, which may not be what you have stored, and pressing Save from there writes the default over your real setting. Reload the page and wait for the message to clear before you change anything. Your saved settings are safe on the server either way; it is only this page's view of them that is stale.

The same goes for the copy button on a coaching token. If the browser blocks clipboard access, the button reads "Copy failed" for a moment rather than doing nothing at all. Select the token and copy it by hand.

AI writing style

Three rules always apply. Every AI request the platform makes for you carries them, with no setting to find: no em or en dashes, short words and active voice, and no filler like "seamless" or "game changer". They cost about 80 input tokens.

The AI writing style toggle on the Account tab sends the full writing guide instead, to everything the AI writes for you: composed emails, briefs, coaching, and hosted-run drafts. On top of the three, it cuts the prose that sounds like insight and says nothing, the words that gesture at a thing instead of naming it ("landscape", "unlock", "significant impact"), and headers or bullets forced onto a short note.

It costs tokens. The full block rides along as roughly 575 extra input tokens on every AI request while the toggle is on, in place of the 80 the always-on rules cost. Those tokens are billed like any others, so AI spend and monthly AI-budget use rise a little. Off by default; flip it off anytime and the next request drops the block.

Team default. On a team workspace, the owner can set a team-wide default from the same card. It applies to every rep who hasn't picked their own setting; a rep's own On or Off always wins. Turning the team default on means every inheriting rep's AI requests carry the extra tokens, so team-wide AI spend rises with the number of reps it reaches.

Public shipping feed

On the Account tab, an opt-in toggle adds your work, as anonymized, aggregate counts only, to the public shipping feed. Counts and outcome keys only, never revenue, never account names, never your identity; the feed is hidden entirely below a small contributor floor so no single account can be picked out. Off by default.

Public skill profile

A stable link to a read-only view of your skill scores, for a portfolio or a hiring conversation. Generate it in Settings, optionally with a display name; without one it falls back to your email handle. One link is live at a time, and generating a new one retires the old.

What it shows. Your score for each skill dimension, its 30-day trend, how many observations fed it, and how many strengths and gaps were noted. Plus counts of the activity behind the scores, such as how many calls were captured.

What it does not show, and cannot. Your profile records the evidence behind each score, and that evidence names real companies and real people from your calls. None of it is published. The shared view is not the full record with the sensitive parts removed; it is built from a fixed list of numbers, so a detail added to your profile later cannot start appearing on the link by accident.

Who can see it. Anyone with the link, and nobody else. It is not indexed by search engines, the address is not guessable, and it is not sent on to sites you click through to from the page. Revoke it in Settings at any time and it stops working immediately, with no way to restore it. The card shows how many times it has been viewed and when it was last opened.

Nothing is public until you generate a link; the card starts empty and stays that way if you never use it. The same caveat as the Coach API applies to what the page will show: skill scores come from coaching surfaces the move to scheduled roles removed, so on an account that never held them the shared view renders its honest empty state rather than a profile.

Coach API tokens

The Coach API tokens card on the Account tab mints a bearer token that reads your own coaching data from outside the app, so a cadence tool, an internal wiki, or a browser extension can show your skill profile without you opening a tab. Tokens carry the coach:read scope and nothing else: read-only, your data only, no writes and no team data.

Read the note under the endpoints before you build on this. The tokens work; the data behind them is not currently produced.

The endpoints. Two, both GET, both returning JSON:

Both will answer empty for most accounts, and here is why. Skill scores and drills were written by in-app coaching surfaces that the move to scheduled roles removed, and nothing has written either since. A third endpoint, the one that returned open plays, was withdrawn in August 2026 for the same reason and now returns 404. So a token mints and authenticates correctly, and these two read whatever your account already held rather than anything current. Build against them only if you know your account has the data.

Authenticating. Send the token as a bearer header. The routes set CORS headers, so a page on another origin can call them straight from the browser:

const r = await fetch('https://salesascode.com/api/coach/v1/me/skill', {
  headers: { Authorization: 'Bearer ' + token },
});
const skill = await r.json();

Handling the token. The plaintext is shown once, at creation, and never again; copy it before you close the row. Treat it like a password. A token embedded in a public page is readable by anyone who views the source, so put it behind your own server if the page is not private. Revoke from the same card and access stops immediately.

The token table shows each token's name, prefix, scopes, when it was made and when it was last used, so a token nothing has used in months is easy to spot and retire.

Your data

The work runs on our servers, so we process the data you connect to do it. It is encrypted at rest, isolated to your tenant, never sold, and never used to train models, and you control it: export or delete at any time.

Cross-tenant brain contribution

Under Settings, Data, a team owner can opt the team into cross-tenant brain contribution. It is off by default. When on, sales patterns that recur across your team and at least two other teams may be proposed, anonymized and aggregated, for promotion into the shared playbooks every team inherits.

Full detail, including residual risks, is in the privacy write-up: docs/privacy/brain-promotion.md.

Related