Welcome back.

{{notice}}
{{ws.name}} {{pb.title}}
Nobody by that name. Yet.

Notifications

{{ntx.unread}} new
{{g.label}}
All quiet here.Nothing matches this filter. Go make some noise.

Get {{ws.name}} fully set up

{{ob.done}} of {{ob.total}} done. Each step takes a couple of minutes.
{{o.title}}{{o.opt}}{{o.why}}
{{todayLabel}} · {{ws.name}}

{{greeting}}

{{todayLine}}

Money so far
Collected {{money.collected}}
Contracted{{money.contracted}}
Invoiced{{money.invoiced}}
Outstanding{{money.outstanding}}

Needs a nudge

{{nudgeCount}}
{{n.tag}}
{{n.detail}}
{{n.amount}}
All caught up. Nobody's waiting on you. Go get a snack.

On the calendar today

{{e.time}}
{{e.title}} {{e.meta}}
Nothing booked today. Wide-open calendar energy.

My tasks

{{k.ctx}} {{k.dueLabel}}
Empty. Suspiciously empty.
Deals

{{pipe.name}}

Open deals{{pStats.open}}
Open deals value{{pStats.value}}
Inquiry → consult{{pStats.conv}}
Source:
{{mcol.name}}{{mcol.count}} deals · {{mcol.total}}
{{d.value}}
{{d.event}} · {{d.source}}
{{d.flag}} {{d.status}}
No deals in {{mcol.name}} yet.
{{c.name}} · {{c.count}} {{c.total}}
{{d.source}} {{d.flag}}
{{d.event}}
{{d.ini}} {{d.value}} {{d.status}}
Lost · {{lostCount}}
Why we lost them {{r.reason}}{{r.n}}

Contacts {{contactsCount}}

{{dupeCount}} possible duplicate found by matching phone and email.
NameEmailPhoneSourceStageLast activity
{{c.ini}} {{c.email}} {{c.phone}} {{c.source}} {{c.stage}} {{c.last}}
No contacts match. Add one with “New contact”.
{{dv.ini}}
{{dv.sub}}

{{dv.name}}

Lost · {{dv.lostReason}}. Automations for this deal were stopped.

The humans

Email{{dv.email}}
Phone{{dv.phone}}
Lead source{{dv.source}}
{{t.name}}
Custom fields
{{cf.label}}{{cf.value}}
No custom fields yet. Add them in Settings.
Consent
Possible duplicate {{dv.dupeText}}

What they're booking

Prices are frozen on {{dv.invNo}}. Catalog edits won't touch them.
ItemQtyPriceTotal
{{i.name}}{{i.meta}} {{i.qty}} {{i.price}} {{i.total}}
Nothing yet. Add something from the catalog and the totals fill themselves in.
Discount
{{dv.depLabel}} {{dv.instLabel}}
Subtotal{{dv.sub$}} {{dv.discLabel}}−{{dv.disc$}} {{dv.taxLabel}}{{dv.tax$}} Total{{dv.total$}}

Payment plan

{{dv.planNote}}
Installments after the deposit
PaymentDue dateAmountStatus
{{r.label}} {{r.pretty}} {{r.amt}} {{r.status}}
{{dv.planWarn}}
Contract · v{{dv.ver}} {{dv.cStatus}}
{{dv.tpl}} {{dv.cNote}}
{{dv.coLine}}
v{{h.version}} · {{h.status}} · {{h.total}} · kept on file
Invoice · {{dv.invNo}} {{dv.iStatus}}
{{dv.paid$}} paid · {{dv.bal$}} left {{p.when}} · {{p.amount}} · {{p.method}}
One link: sign + pay {{dv.linkNote}}

The story so far

Up next {{dv.next}}
  1. {{t.when}} · {{t.kind}} {{t.what}}

Inbox

No conversations here.
{{thread.ini}} {{thread.name}}{{thread.ctx}}
{{m.day}}
{{m.subject}}

{{rn.t}}{{rn.t}}{{rn.alt}}
•••

{{rn.t}}{{rn.t}}{{rn.alt}}
{{a.name}} · {{a.size}}
{{m.meta}}
To {{rb.to}}Ctrl or ⌘ + Enter to send
or
Size
PNG, JPG, GIF or WebP up to 1 MB. Click an image in the editor and press Delete to remove it.
Use a variable:or mix them into any link, like https://yoursite.com/?name={first_name}
{{a.name}} · {{a.size}}
{{rb.smsCount}}
Pick a conversationEmails and texts with each client live in one thread.

Calendar

{{calNav.label}}
DateTimeAppointmentTypeWhereWith
{{e.day}}{{e.time}}{{e.title}}{{e.kind}}{{e.where}}{{e.who}}
Nothing booked. Add an appointment above.

{{day.label}}

Free day.

Tasks

{{k.ctx}} {{k.dueLabel}}
Empty. Suspiciously empty.

Products & services

{{p.cat}}{{p.sku}}
{{p.name}} {{p.desc}}
{{p.price}} {{p.billing}}

Contracts & invoices

Waiting on your signature{{coWait.n}}Your clients signed these. Countersign so everyone gets the fully signed copy.
{{r.ini}} {{r.sub}} · {{r.when}} In today’s tasks
v{{r.ver}} · {{r.tpl}}{{r.status}}
ClientVersionTemplateStatus
v{{r.ver}}{{r.tpl}}{{r.status}}
Nothing here. Try another filter.
{{r.no}}{{r.status}}{{r.bal}} leftof {{r.total}}
NumberClientTotalPaidBalanceStatus
{{r.no}}{{r.total}}{{r.paid}}{{r.bal}}{{r.status}}
No invoices match this filter.

Contract templates

{{t.name}} {{t.count}} sections · {{t.uses}}
v{{wf.version}} · {{wf.stateLong}}
• {{e}}
When this happens{{wf.trigger}}
{{r.n}} {{r.kind}}{{r.label}}
{{r.text}}
{{r.who}}{{r.when}} · on v{{r.version}} {{r.status}}
  1. {{l.t}}
No runs yet. Use “Enroll someone” or wait for the trigger.
Automation name
Goals · a run stops the moment any of these is true
{{g.name}}
Max run length
No automations yet.
Pick any type: text, number, date, dropdown, multiple choice, yes/no…
Or add an existing field
Lead source
New leads land in
Public link
{{fm.url}}
Embed code
{{fm.embed}}
{{fm.subs}} submissions so far. UTM tags on the page URL are saved with each lead.
No forms yet.
{{mp.ini}}

{{mb.name}}

{{mp.sub}}
{{mp.login}}

Profile

Color on the calendar

Bookings

Appointment types they take
Whole-team booking pages only offer them for these. Types set to “one person” always go to that person.
Working hours
to
Time offHolidays and days away: nobody can book them then.
{{o.label}}
to

Their calendars

Link every calendar they use. HQ only reads when they’re busy, every 15 minutes, so nobody books them then. Their own events never show in HQ.
{{c.label}}{{c.meta}}
Where do I find the address?
Google: calendar.google.com › Settings › pick the calendar › Integrate calendar › “Secret address in iCal format”.
Outlook / Microsoft 365: Settings › Calendar › Shared calendars › Publish a calendar › copy the ICS link.
Apple iCloud: Calendar app › right-click the calendar › Share › Public Calendar › copy the link.

Sign-in

{{mp.loginText}} Email isn’t set up, so send them this link to choose a password (works for one hour): {{acct.link}}

Email them when

{{o.label}}
Only if they have an email. Nobody gets emails about their own actions.

On their plate

{{mp.load}}
{{o.title}}{{o.when}}

Business & invoicing

Currency
Brand color (match your logo)
Logo (on your client pages and emails)
Your logo
Time zone for every business on this account: {{tzLabel}}. Dates, due times, bookings, reminders and PDFs all use it. Press Save changes when you’re done. Issued invoices keep the tax, deposit and terms they were issued with.
{{svc.emailText}}

Sending domain

{{dom.status}}

Send from your own address (like hello@yourbusiness.com) instead of a shared one. Better inboxing and your name on every email. Sending runs through Resend.

Add these records for {{dom.name}} at your DNS host (GoDaddy, Namecheap, Cloudflare, Squarespace…), then check.
TypeName / hostValueStatus
{{r.type}}{{r.host}}{{r.value}}{{r.status}}
DNS changes take anywhere from minutes to 48 hours. Exact DKIM values come from Resend once the domain is added for real.

Sender identities

{{x.name}}{{x.email}} · reply-to {{x.reply}} Default Needs verified domain

Replies & inbox

How replies get back into your Inbox, threaded onto the right person (Message-ID / In-Reply-To headers).
Reply-to address: {{inb.address}} DNS: MX · {{inb.host}} → {{inb.mx}} (lowest priority number on the domain) {{inb.note}} {{inb.conflict}} {{inb.status}}
{{inb.mbLabel}}Two-way sync with the inbox you already use.

Compliance & tracking

Mailing address comes from Business & invoicing.

Email signatures

{{x.name}}Default

{{rn.t}}{{rn.t}}{{rn.alt}}
The default signature is pre-selected on every new email. You can switch or remove it per message.

Message templates

{{x.name}}{{x.preview}} {{x.ch}}{{x.kind}}
Marketing templates need consent and get an unsubscribe / STOP line. Transactional ones (receipts, reminders about things they booked) don't.
Texts aren’t connected on the server yet. Until Twilio is set up (TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_FROM in the server settings), texts show “Not sent” in the Inbox.

Texting (SMS)

{{sms.status}}
Two-way texting through Twilio. US numbers need A2P 10DLC registration before texts deliver reliably.
Sending number{{sms.number}}
A2P 10DLC{{sms.a2p}}
Registration status

Connected calendars

See your HQ appointments in Google Calendar, Apple Calendar or Outlook. Subscribe once and new bookings, changes and cancellations show up there by themselves (most apps refresh every few hours).
{{calFeed.url}}
Google Calendar: Other calendars › + › From URL, paste it. Apple: File › New Calendar Subscription. Outlook: Add calendar › Subscribe from web. Keep the address private: anyone with it can see your appointments.

Appointment types & booking links

{{t.name}}{{t.meta}}{{t.link}}

Availability

Days you take appointments
Minimum notice
Booking links only offer open slots inside these hours, minus buffers and anything already on your connected calendars.
Card payments aren’t connected on the server yet. Clients see “Pay online” only once Stripe is set up (STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET). Until then they get your other ways to pay.

Online payments

{{payx.status}}
Provider
An online payment only counts after the provider's signed webhook confirms it. Duplicate or out-of-order webhooks are ignored. Card details never touch hq.

E-signature

Built in · always on
Clients sign on their private page: they read the agreement, type their full legal name and agree to sign electronically. HQ records the time, IP address and browser as the audit trail, emails them a copy, and the agreement PDF shows both signatures with that record. There’s nothing to connect. Typed-name electronic signatures with consent and an audit trail are valid for most service agreements in the US (ESIGN Act, UETA). For anything with special rules (real estate, wills, some regulated industries) check with a lawyer.

Custom fields

{{x.label}}{{x.type}}
Custom fields show on every contact, in forms, in automation conditions and filters. Archiving hides a field but keeps its values.

Team

Everyone who works in {{ws.name}}. Give tasks and appointments to someone, and let clients book with the whole team or one person. Team members don’t need a login; give them one when they should use HQ themselves.
{{r.ini}}{{r.name}}{{r.meta}}
{{tm.sharedNote}}

Linked businesses

Contacts, deals, invoices and messages always stay in their own business. Choose what {{ws.name}} shares with your other businesses; each one can stay separate or share as much as you like.
{{r.ini}}{{r.name}}
{{a.label}}{{a.note}}
Copy into {{ws.name}}:
You only have one business. Add another from the sidebar (+ Add business) to link them.

System health

{{hx.status}}
{{hx.meta}}
{{c.label}} {{c.state}}{{c.detail}}
When something turns red, owners are emailed and get a phone alert (at most every 6 hours per problem), and again when it’s fixed.

Recent errors

No errors recorded. Errors in browsers, on the server, in automations, webhooks and the agent API show up here.
{{e.message}}{{e.meta}}
{{e.detail}}

Outside monitoring

Point an uptime service (UptimeRobot, Better Stack…) at this address. It answers “ok” when HQ is healthy and an error when the database or background worker is down, so you hear about it even if the whole server is unreachable.
{{hx.healthz}}

AI agent & API

Give your AI agent a key and it can do everything you can do here: add leads, move deals, send messages, issue contracts and invoices, record payments, book appointments, manage tasks, forms and automations. Keys work for every workspace on this account.

MCP server (Claude, Cursor and other MCP clients)
{{apix.mcp}}
REST API base
{{apix.base}}
OpenAPI description (for agents that read a spec)
{{apix.openapi}}
Send the key as Authorization: Bearer <key>. Pick the workspace with the company field or the X-Company header (default: your first workspace).

API keys

Copy this key now. It won’t be shown again.
{{apix.newKey}}
{{k.name}}{{k.meta}}
No keys yet.

Lead sources

{{x.name}}

Lost reasons

{{x.name}}
How the business is doing · {{rp.rangeLabel}}

Reports

Type
Source
{{k.label}} {{k.value}} {{k.note}}

Booked vs collected

Last 12 months · booked = contract value by win date, collected = payments by date received
Booked Collected {{rp.tip}}
{{rp.maxLabel}}{{rp.halfLabel}}$0
{{b.label}}
MonthBookedCollected
{{b.tbl.m}}{{b.tbl.b}}{{b.tbl.c}}

Event calendar load

Events per month vs your capacity of {{rp.capN}} (set in Settings → Business). {{rp.capNote}}.
Booked Consult or proposal stage Capacity
{{b.top}}
{{b.label}}
{{b.yr}}

Conversion funnel · {{pipe.name}}

Inquiries created {{rp.rangeLabel}} that ever reached each stage
{{x.name}}{{x.n}} · {{x.step}}

Deals forecast

Open deals weighted by how often each stage turns into a booking
StageDealsValueOddsWeighted
{{x.name}}{{x.n}}{{x.val}}{{x.pr}}{{x.wt}}
Likely to book{{rp.fcTotal}}

Lead sources

Inquiries created {{rp.rangeLabel}}. Win rate = booked ÷ decided (booked + lost). Value per lead = booked value ÷ inquiries.
{{r.src}}{{r.perLead}} / lead
{{r.leads}} inquiries{{r.consult}} consult{{r.win}} win rate{{r.val}} bookedreply {{r.resp}}
SourceInquiriesConsult rateBookedWin rateBooked valueValue per leadFirst reply
{{r.src}}{{r.leads}}{{r.consult}}{{r.won}}{{r.win}}{{r.val}}{{r.perLead}}{{r.resp}}
No inquiries in this range.

Service mix

Revenue by service on bookings won {{rp.rangeLabel}}, and how often each gets added
{{x.name}}{{x.rev}} · {{x.attach}}
No bookings in this range yet.

Receivables aging

{{rp.arTotal}} still owed across deposits and installments
{{x.k}}{{x.v}}
Chase these
{{x.amt}} · {{x.dl}}

Why deals were lost

Deals marked lost {{rp.rangeLabel}}
{{x.k}}{{x.n}} lost · {{x.v}} in value
Nothing lost in this range.

Top clients

By total paid, all time
{{x.meta}}{{x.paid}}
No payments yet.
Previewing as {{cv.name}} · this is what the private link shows
{{ws.name}}
This link took a nap.It's been revoked or hasn't been sent yet. Ask {{ws.name}} for a fresh one.
For {{cv.event}}

Hi {{cv.name}}!

{{cv.intro}}

Agreement v{{cv.ver}}{{cv.cStatus}}
Invoice {{cv.invNo}}{{cv.iStatus}}

The agreement

{{c.n}}. {{c.title}}
{{c.emptyText}}

{{rn.t}}{{rn.t}}{{rn.alt}}

The Investment

{{i.name}} × {{i.qty}}{{i.total}}
{{cv.discLabel}}−{{cv.disc}}
Tax{{cv.tax}}
Total{{cv.total}}
Payment schedule {{r.label}} · due {{r.due}}{{r.amt}} {{r.status}}

Make it official

Your typed name is your signature. The time, IP address and browser are recorded, a copy is emailed to you, and you can download the signed agreement below.
Signed! {{cv.signedAt}}. Signing doesn't charge you — the deposit is its own step, just below.

Signatures

{{cv.sig.all}}
{{cv.sig.youIni}}{{cv.name}} · you{{cv.sig.you}}{{cv.sig.youChip}}
{{ws.initials}}{{ws.name}}{{cv.sig.co}}{{cv.sig.coChip}}
{{cv.sig.note}}

Payment

{{cv.bal}}left of {{cv.total}}
Online payment isn’t switched on. See the other ways to pay below. Paid in full. You're a legend.
Other ways to pay

{{cv.offline}} It's marked paid once it lands.

Keep a copy

{{sv.text}}{{sv.short}}
{{cfm.title}} {{cfm.body}}
{{g.label}}
{{toast}}