> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comforthub.app/llms.txt
> Use this file to discover all available pages before exploring further.

# The 7AM app

> The iPhone app for technicians and the office: what it reads, what it writes, who gets in, and what it talks to

The 7AM app is the native iPhone app the technicians carry and the office signs in to. It shows each person their day and route, their work orders, timesheets and time off, the equipment and customer library, the team's messages, and the softphone. It holds nothing of its own: everything it shows comes from the engine, and everything it changes goes back to the engine. The code lives in the app repo; see [Repos and links](/reference/repos-and-links).

## What it owns

Nothing durable. A record the app writes is a record in the engine's database, checked by the engine's rules. If the phone is lost, nothing is lost with it.

## What it reads and writes

| Direction | Through what                                                              | What                                                                                                                                                                                                |
| --------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Reads     | The engine's public door: prepared views, one per screen                  | Work orders, appointments, customers, equipment, timesheets, time off, purchase orders, quotes, calls, voicemail, text conversations, tasks, notes, stock lists, the staff directory, the team chat |
| Writes    | The same door: a small set of tables, plus a few named database functions | Timesheets and time off, purchase orders and their numbers, quotes, stock lists, tasks and notes, chat threads, the read and badge state, the device's push token                                   |
| Calls     | One function route                                                        | The softphone's calling token, minted for the signed-in agent                                                                                                                                       |

The views are the contract. Every view runs as the signed-in user, so a person sees only the rows their role allows. The app's data types are generated from the engine's views by a script in the backend repo, so a view that changes shape is an app change too and the two repos move together.

The app never talks to Zoho, QuickBooks or Twilio directly. A change made in the app reaches the CRM through the engine's sync; see [How sync works](/handbook/running/how-sync-works).

## Roles

Every person in the app has one of five roles, and the engine checks the role on every write. A write above your rank does nothing or is refused; the app does not hide the control. The ladder and what each rung can do is on [Roles and what they can do](/handbook/app/roles-and-what-they-can-do).

## How a technician gets in

A technician is invited on their own the moment their record has an email: when the technician is created in the CRM with one, or when an email is added later. The engine sends the invite through its own mailer, and the link opens the app's set-a-password sheet. The invite is skipped when the technician is inactive, has no email, or already has an app login. The email route obeys the allowlist described on [Email safety](/handbook/running/email-safety).

## Pushes it receives

Appointments, approvals, messages, missed calls, new texts, voicemail and the serious phone errors reach the app as pushes, sent by the engine through Apple. Which push goes to whom, and what tapping it opens, is on [Notifications we send](/reference/notifications-we-send).

## What it talks to

| System                     | What flows                                                                                                                                                                            |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The engine                 | Everything above. The app's address and publishable key for the engine sit in the app's source and are not secrets; see [Environments and secrets](/systems/environments-and-secrets) |
| Twilio, through the engine | The app is the phone agent's handset: it rings on a queued call, answers, and places calls back. See [Twilio](/systems/twilio)                                                        |
| Apple                      | Push notifications and the ringing push, sent by the engine with the keys in its vault                                                                                                |

## Related

* [The app tour](/handbook/app/the-app-tour)
* [Roles and what they can do](/handbook/app/roles-and-what-they-can-do)
* [The Supabase backend](/systems/supabase-backend)
