Guides
Sign up, choose a workspace, and activate billing
Sign up for ATOM, verify your email, choose to join, create, or explore a demo workspace, accept invites, switch workspaces, and recover billing checkout, success, and cancel paths.
This guide shows you how to take an ATOM account from first signup through to a usable workspace with active billing, including invite acceptance, workspace switching, demo exploration, and recovery if Stripe Checkout or email verification stalls.
Use it the first time you sign up for ATOM, the first time a teammate invites you, and whenever a checkout or onboarding email needs to be re-driven. The web app owns signup and workspace onboarding. The field app does not have its own signup path — see `Web app vs field app` at the end.
#Choose your starting path
Pick the path that matches the email you received or the action you are taking:
- New paying customer: you are starting from
https://atomworks.appwith no account. Go to `Sign up and start Stripe Checkout` and continue through `Activate billing in Stripe Checkout`. - Invited teammate: you received a team invite email with an invite code or
Open invitelink. Sign in (or sign up first if you don't have an account yet), then go to `Accept an invite`. - Already signed in, no workspace yet: ATOM dropped you on the workspace-choice page. Go to `Choose your workspace`.
- Returning user with multiple workspaces: go to `Switch workspaces`.
- Stripe sent you back to ATOM: you are on
/signup/successor/signup/cancelled. Go to `Recover Stripe Checkout`. - You only want to look around: go to `Explore the demo workspace`.
#Sign up and start Stripe Checkout
Open https://atomworks.app/signup.
Fill the signup form before Stripe Checkout opens:
Email address: use the email you want as the workspace owner.Name: the human-readable name for the workspace owner.Country: pick from the supported country list.Plan: choosemonthlyorannualbilling. The visible plan label and price come from Stripe; if the price fails to load, useRetryrather than continuing.Marketing emails: optional, opt-in.
Select Continue to Stripe Checkout.
The button label changes to Starting Stripe Checkout… while ATOM creates a Stripe Checkout session and forwards you to Stripe. The submit is blocked while the browser is offline; if you see You're offline. Reconnect to continue to Checkout., reconnect and try again.
The signup page records these states:
Already have an account? Sign in: if you already have an ATOM account, use/logininstead. Signing up again with the same email is blocked.- A red error banner: ATOM could not start Checkout. Read the message and try again. If the error suggests a duplicate account or pending checkout, follow the link in the banner.
ATOM does not create your workspace at signup. The workspace is created only after Stripe confirms payment in the next step.
#Activate billing in Stripe Checkout
Stripe Checkout takes the email and plan you entered and asks for payment details.
- Enter the payment method Stripe requires for your country and plan.
- Complete any 3-D Secure / bank confirmation Stripe prompts.
- Select
Subscribein Stripe.
Stripe then sends you back to one of two ATOM pages:
/signup/success?session_id=cs_…on a completed Checkout. See `After Checkout: verify email and onboarding`./signup/cancelledif you cancelled Checkout. See `Recover Stripe Checkout`.
Stripe handles the card-and-billing UI; ATOM does not store card numbers. Stripe-managed dunning (failed payments, retries, customer notifications) runs on Stripe defaults; ATOM reads the subscription state in the `Billing portal` section below.
#After Checkout: verify email and onboarding
Stripe's success redirect lands on /signup/success?session_id=cs_…. ATOM reads the Checkout session and shows one of three states.
#Checkout complete
The page heading is Checkout complete. The body confirms one of:
Stripe confirmed your subscription. ATOM is creating your workspace and sent a verification link to: <your-email>. Verify your email before signing in.Stripe confirmed your subscription. ATOM is creating your workspace and sending your email verification link. Verify your email before signing in.(the email is being generated).Stripe confirmed your subscription for <email>. Your email is already verified — sign in to continue.
The same handler that provisions your workspace sends a Welcome to ATOM — <Workspace> is ready email to the address you used at Checkout. The email contains:
- A
Sign in to ATOMbutton to/login. - The workspace URL (
https://atomworks.app). - A first-time sign-in checklist that tells you to use
Forgot password?on the sign-in page to set your first password. - A
Open the one-page setup tutoriallink to these docs. - A reply-to of
support@atomworks.app.
Open your inbox. If you can't find the email:
- Check your spam or junk folder.
- Confirm the email shown on
/signup/successis the one you intended; a typo at Checkout is the most common reason it appears missing. - Select
Resend verification email. The button is rate-limited per Checkout session, so the page showsTry again in 30sorTry again in <n>mwhile the cooldown is active. The cooldown clears on its own. - If the page says
Resend unavailable.next to the disabled button, your email is already verified — use theSign inbutton.
#Checkout received (payment is still settling)
If Stripe is still processing the charge, the heading is Checkout received and the body reads Stripe received your checkout. If your payment method takes time to clear, ATOM will create your workspace and send your email verification link as soon as Stripe confirms payment.
The page polls Stripe automatically. The action button toggles between Refresh status, Refresh status now, and Refreshing.... When automatic polling stops, the body reads Stripe received your checkout, but ATOM stopped checking automatically. Refresh status to check again, or contact support if this continues.
Stay on the page and use Refresh status now to re-check. If the network drops, the banner reads You're offline. Reconnect to keep checking with Stripe.. Reconnect, then refresh.
#Set your first password
The onboarding email tells you to set the first password through the standard password-reset flow:
1. Open the Sign in to ATOM link in the email or browse to /login. 2. Select Forgot password?. 3. Enter the same email Stripe Checkout used. 4. Open the reset email and follow the link to set your password. 5. Return to /login and sign in.
After sign-in, ATOM forwards you to the `workspace-choice step` unless your workspace is already active and you are a returning member.
#Choose your workspace
The first time you sign in to ATOM without a workspace, the app takes you to /onboarding/workspace. The page heading is Choose your ATOM workspace and offers three actions:
Join an existing workspace— paste an invite code your team sent you.Create a new workspace— set up a fresh workspace, with you asowner.Explore the demo workspace— browse ATOM with fictional, public-safe data.
Each option expands inline so you stay on the same screen. If you have an existing real workspace, the page also shows Skip for now so you can land straight on /dashboard.
The page is offline-aware. Most actions disable when the browser is offline and show You're offline. Reconnect and try again. near the button.
#Join an existing workspace
Use this when a teammate sent you an invite email. The email has an Open invite link such as https://atomworks.app/onboarding/workspace?token=<your-code>, and an invite code you can paste manually.
- If you opened the link from the email, the
Join an existing workspacecard auto-expands with the code already filled in. - Otherwise, select
I have an invite code, paste the code intoInvite code, and selectJoin workspace.
The button label changes to Joining workspace… while ATOM validates the invite, then redirects you to /dashboard in the joined workspace.
Specific errors and how to resolve them:
That invite code isn't valid. Ask the inviter to resend it to your account email.— the code is wrong, expired in a different way, or the invite was sent to a different email. Check the email used at signup and ask the inviter to re-send the invite to the same address.That invite has expired. Ask the inviter to send a new one.— the invite is past its expiry. Ask an admin in the inviting workspace to revoke the old invite and send a new one.That invite has already been accepted. Sign in to that workspace from /login.— you (or someone with this account) already accepted the invite. Sign in normally; use `Switch workspaces` if the workspace doesn't appear by default.Set up two-factor authentication from your account before joining this workspace.— the role the invite grants requires two-factor authentication. Open/accountand complete TOTP enrolment from your account, then return to this page and resubmit the code.
If the page shows We couldn't accept that invite. Try again., the server did not return a structured result. Retry the form; if it keeps failing, contact support.
#Create a new workspace
Use this when you are the workspace owner and your team will join later.
- Select
Create my workspace. - Enter
Workspace name(between 2 and 80 characters; this is the label your team sees in the sidebar). - Select
Create workspace.
ATOM creates the workspace, makes you owner, switches your session to the new workspace, and forwards you to /dashboard.
If the page shows Set up two-factor authentication before entering this workspace., your account does not have TOTP enrolled yet. The owner role is gated by two-factor authentication. Open /account to enrol TOTP, then return and resubmit the form.
A workspace name that is too short or too long is rejected inline. Reconnect first if the form rejects the submit with You're offline..
#Explore the demo workspace
Use this when you want to look around ATOM without affecting a real workspace.
Select Explore demo. The button changes to Opening demo… while ATOM joins you to the shared demo workspace as staff and forwards you to /dashboard.
The demo workspace is the same H&R Maintenance Docs Demo tenant the rest of these docs use. It is intentionally fictional and public-safe:
- Names, phone numbers, emails, street addresses, and financial values are not real.
- Email addresses use
.exampledomains; phone numbers use placeholder ranges. - Gmail and Xero values are inert demo strings — connecting Gmail or Xero in the demo workspace does not move real customer mail or invoices.
- Records have fixed IDs and dates so screens stay deterministic.
You can perform any action your staff role allows on the demo. Nothing you do touches real customer records.
If the page shows The demo workspace isn't available right now. Try again or pick another option., the demo workspace is not currently active in this environment. Contact support, or come back later. Demo entry also requires TOTP; if you see Set up two-factor authentication before entering this workspace., enrol from /account first.
To leave the demo later, use the `workspace switcher` to move into a real workspace, or `create a real workspace` from the same /onboarding/workspace page. The demo membership stays on your account so you can return at any time.
For the full demo dataset and stable record IDs, see the internal `docs-demo workspace runbook`.
#Accept an invite from email
When an admin invites you from Settings > Team, ATOM sends an invite email that contains:
- An
Open invitelink to/onboarding/workspace?token=<your-code>. - The invite code you can paste manually.
- The role you'll receive on accept.
- An expiry date.
To accept:
1. Sign in to ATOM with the email the invite was sent to. If you don't have an account yet, `sign up` with the same email first. 2. Open the Open invite link in the email. The /onboarding/workspace page opens with the invite card already expanded and the code prefilled. 3. Select Join workspace.
If you signed in to a different account by mistake, sign out from the account menu and sign in again with the invited email. Invites are bound to the email address they were sent to, so signing in with the wrong account always returns That invite code isn't valid. Ask the inviter to resend it to your account email.
Invite emails contain a one-time-use token. Once accepted, the same email link returns That invite has already been accepted. Sign in to that workspace from /login.. Future invites need a new email — ask the inviter to send a fresh one from Settings > Team.
#Switch workspaces
After your first workspace is active, ATOM keeps the workspace switcher in the app shell so you can move between any workspace where you are an active member. The switcher lives at the top of the sidebar (or the top bar, depending on the view) and includes the workspaces you joined, plus the demo workspace if you chose Explore demo.
Switching rules:
- You can only switch to workspaces where your membership is
active. Archived, removed, or revoked memberships do not appear. - Switching to a workspace where your role requires two-factor authentication is blocked until TOTP is enrolled. The app shows
Set up two-factor authentication before switching to this workspace.; open/accountto complete enrolment. - ATOM rate-limits very rapid switching. If you see
Too many workspace switches. Please try again later., wait a few seconds and retry. - Support staff impersonating your account cannot switch workspaces. If you see
Workspace switching is disabled during support impersonation., the active session belongs to a support impersonation; end the impersonation in the admin tooling first. - If your session was archived or expired between the switch attempt and the response, the app shows
Your session has expired. Sign in again.. Sign in again from/login.
If a workspace is missing from the switcher, you don't have an active membership there. Ask an admin to re-invite you from Settings > Team, or use the `Join an existing workspace` flow with a fresh invite code.
#Recover Stripe Checkout
If you cancelled or got an error after Stripe, you have two recovery surfaces.
#/signup/cancelled
Heading: Checkout cancelled. Body: Cancelling Checkout did not create a workspace. You can return to signup and restart Checkout when you're ready.
Return to signupopens/signupwith the email and plan you used preserved in the URL.Sign in(in the footer) goes to/loginif you actually already have an account.Contact supportopens a mail draft tosupport@atomworks.appfor help choosing a plan or resolving a Checkout block.
Nothing is charged when Checkout is cancelled. No workspace is created.
#/signup/success recovery states
When the success page can't confirm Checkout, it switches into a recovery mode with one of three headings.
- `Checkout needs attention` (heading): body
Stripe redirected you back to ATOM, but ATOM could not complete billing confirmation. Contact support and include your Stripe Checkout email.UseRefresh confirmationto retry the lookup. If that keeps failing, selectContact support. - `Checkout link expired` (heading): body
This Checkout link is no longer available. Return to signup to restart Checkout, or contact support if you need help.. UseReturn to signupto restart the form. - `Confirming checkout` (heading): body
Stripe redirected you back to ATOM, but ATOM hit a temporary error reading your Checkout session. Refresh confirmation to retry. No workspace is created until this confirms.. UseRefresh confirmation; if the same error stays, contact support.
In every recovery state, your workspace is not created until the success page can confirm the Checkout session. The footer always offers Contact support.
#Billing portal and subscription state
After your workspace is active, manage your subscription from Settings > Billing in the web app. The tab is visible only to owner and admin.
The Billing tab shows:
Current plan: the active Stripe price label, orUnknown planif Stripe hasn't returned one.Status: badges such asActive,Trialing,Past due,Paused,Canceled. ATOM overrides anActivebadge toActive — cancelingwhen Stripe has flagged the subscription to cancel at period end.Renewal: short copy such asRenews on <date>,Trial ends on <date>,Cancels on <date>,Payment due — period ends <date>, orEnded on <date>after cancellation completes.
Select Manage billing in Stripe to open the Stripe Customer Portal in the same tab. Use the portal for:
- Updating the payment method.
- Reviewing or downloading past invoices.
- Cancelling the subscription (Stripe handles the cancel-at-period-end behaviour).
- Changing the plan if Stripe exposes plan changes for your account.
Stripe handles failed-payment dunning with Stripe defaults; ATOM does not send its own dunning email.
Error states on Settings > Billing:
Billing details are temporarily unavailable.withTry again— retry from the same tab.- A
billing/portal_unauthorizederror shows aSign in againlink to/login. - A
billing/portal_forbiddenorbilling/portal_no_accounterror showsContact supporttosupport@atomworks.app. This usually means the workspace is not linked to a Stripe customer yet; support links it manually. This workspace isn't linked to Stripe billing yet.appears when the workspace has no Stripe account at all.
When the browser restores the tab from the back-forward cache after a Stripe portal change, ATOM reloads the subscription summary so the page does not show stale data.
For full administration of the Billing tab, including role gating and lifecycle blocks, see `Administer workspace settings`.
#Subscription state and workspace access
Stripe subscription state drives ATOM workspace access via the Stripe webhook:
active/trialing— the workspace is fully writeable.past_due— the workspace is still writeable, butSettings>BillingshowsPayment due — period ends <date>. Use the portal to update payment before the period ends.canceled,unpaid,paused,incomplete_expired— ATOM moves the workspace intoread_only. Reads still work, but mutators reject writes withWorkspace changes are temporarily unavailable.. Re-subscribing through support restores write access.
Internal support can grant a trial or non_paying manual entitlement to keep a workspace usable outside Stripe; that operation is internal-only. If you need a non-Stripe arrangement, contact support; do not expect a customer-facing toggle.
#Web app vs field app
Signup and workspace onboarding live in the web app. There is no signup or workspace-choice flow in the field app.
| Surface | Web app (atomworks.app) | Field app (native iOS, Android, and PWA) | | ------------------------------------------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | Signup with Stripe Checkout | Yes | Not available — sign up on the web first. | | Workspace creation, invite acceptance, demo entry | Yes, at /onboarding/workspace | Not available. | | Workspace switcher | Yes, in the app shell sidebar | Not available — the field app uses the active workspace of your session and does not surface a switcher. | | Billing portal | Yes, Settings > Billing for owner / admin | Not available. | | Sign in | Yes, /login | Yes — same email and password, plus TOTP if your role requires it. |
The field app reaches the workspace through the same workspace_member rows the web app creates. A field user with no active membership in any workspace sees auth/no_workspace_access after sign-in. The fix is web-app-side: complete /onboarding/workspace in the web app first, then return to the field app and sign in. If you have multiple workspaces, set the active workspace in the web app (the switcher writes to your session), then re-launch the field app.
See `Use the ATOM field app` for the field sign-in flow once a workspace is active.
#Support
Email support@atomworks.app if any of these are true:
- Stripe Checkout completed but ATOM could not create your workspace after multiple
Refresh confirmationattempts. - The verification email never arrives and the
/signup/successpage reports the email isResend unavailable.even though you never verified. - An invite email arrived for an email you no longer control, and the inviter can't re-send it to a current address.
- Your workspace shows
Settings>BillingwithThis workspace isn't linked to Stripe billing yet.when you expect billing to be active. - You need a non-Stripe billing arrangement (trial extension, internal customer, separate contract).
Include the email used at Checkout, the workspace name (if you have one), and the page where the error appeared. Do not include card numbers or other secrets in support emails.
#See also
- `Set up ATOM for your first job and invoice` — once your workspace is active, run the one-page setup tutorial.
- `Administer workspace settings` — invite teammates, resend or revoke invites, and read role visibility rules from
Settings>Team. - `Administer workspace settings` — read the
Billingtab and open the Stripe portal. - `Navigate ATOM, search, and get help` — find the workspace switcher and the account menu after sign-in.
- `Use the ATOM field app` — field-app sign-in once a workspace is active.