Every tab and setting on the Site Settings admin area at cmblazor.reyesco.com/site-settings. This is tenant-wide configuration, not a business record.
Tenant-wide configuration — company info, branding, integrations, custom fields, reference lists, users, and org structure — that applies across the whole site, not to any single record.
The tab order below is the default. Like every other entity in this app, whichever tab currently sits first (Site Info, by default) is pinned — the Tab Order admin screen blocks dragging it, and even a bypassed drag gets forced back to first on Save. Every other tab is freely reorderable.
Real gap found: two of these 16 tabs — Payments and Notifications — are missing from the app's own Tab Order admin catalog, so they can never actually be dragged/reordered from that screen even though they work fine here. Flagged as a fix.
Column 1 — Identity & Scheduling Defaults
| Site Name* | The tenant's display name. | Required |
| Site Organization | The parent company record this site belongs to. | Editable |
| Primary Contact Email | The tenant's main contact email. Validated as a real email format if entered — not required. | Editable |
| Phone | The tenant's main business phone. | Editable |
| Website | The tenant's website address. A globe icon next to the field opens it in a new tab — disabled until a value is entered. | Editable |
| Default Time Zone | Used by Event Info (and any future scheduling UI) to default the timezone. | Editable |
| Business Hours Start / End | Restricts day/time selection in scheduling UI. | Editable |
| Business Days | Which days of the week count as business days (Sun–Sat checkboxes). | Editable |
Column 2 — Location Address & Billing Address
| Location Address / City / State / Postal Code / Country | The tenant's physical/service location — independent of Billing Address below. | Editable |
| Billing Address / City / State / Postal Code / Country | Where remittance/billing correspondence goes, if different from the Location Address. | Editable |
Column 3 — Defaults & Phone Format
| Default Country | Pre-fills Country on every new Company/Person/Project/Property/Lead — still changeable per record. | Editable |
| Default State Code | Pre-fills State on new records the same way. | Editable |
| Phone Number Format | Choose "Free Text" (no formatting) or "USA Format" (a live mask). Only actually applied to a record whose own Country resolves to USA or Canada — the same NANP (XXX) XXX-XXXX numbering plan covers both — every other country always stays free-text, so a real international number is never blocked. | Editable |
Column 4 — Financial & Subscription
| Site EIN | The tenant's federal tax ID. | Editable |
| Currency | The default currency used throughout the site. | Editable |
| Fiscal Start Month | When the tenant's fiscal year begins. | Editable |
| Subscription Start / Expiration | The tenant's subscription period. | Editable |
| Default Markups: Material / Labor / Sub / Equipment | Default markup percentages, pre-filled on every new Estimate. | Editable |
Worth knowing: Location Address and Billing Address are two genuinely separate blocks, not two labels for the same fields — a service address that differs from where invoices/statements go is a real, common case (e.g. a property management company billed at a different office than the site they service).
| Logo Preview | The current logo, if one's uploaded. | Read-only |
| Upload Logo | Upload a new logo image (5MB max) — replaces immediately, no separate Save. | Editable |
| Delete Logo | Removes the current logo — shown only when one's actually uploaded. | Editable |
Worth knowing: Site Name must be saved on the Site Info tab first, or this tab shows a message asking you to do that.
| Header: Left / Center / Right | Three rich-text boxes making up the document header; each can insert live Logo/Name/Address/Email/Website tokens. | Editable |
| Footer: Left / Center / Right | Three rich-text boxes for the footer; can insert Name, Page #, and Total Pages tokens. | Editable |
Worth knowing: reopening this tab always starts from the default layout, not your last save — Save fully replaces whatever's currently live, it doesn't let you continue editing your prior version.
| Alternate Contact Email / Notification Email | Additional email addresses for system notices. Each validated as a real email format if entered — not required. | Editable |
| Google Maps API Key / Map API Key | Keys powering the address map previews used across the app. | Editable |
| Google Translate API Key / Translate API Key | Keys powering translation features. | Editable |
| Twilio Account SID / Auth Token | Credentials powering SMS sending. | Editable |
| Brevo API Key | Connects the site to a Brevo (formerly Sendinblue) email marketing account for Campaign contact sync and open/click tracking — see “Brevo Email Marketing Integration” below. | Editable |
| Webhook URL | A read-only, auto-generated URL shown once a Brevo key is saved — paste this into Brevo's own webhook settings so opens/clicks/bounces/unsubscribes flow back into CM. | Read-only |
Worth knowing: every key here is masked with a show/hide toggle, and this tab just stores the raw values — there's no "test connection" or health indicator (unlike the Payments tab below). The Brevo API key must come from Brevo's API Keys tab specifically, not its SMTP tab — an SMTP key (starting xsmtpsib-) looks similar but won't authenticate against the API.
Once a Brevo API key is connected here, every Campaign gets a Sync to Brevo button on its Leads tab — it pushes every attributed Lead with a real email and no opt-out flag into a Brevo contact list named after the Campaign, creating the list on first use and reusing it on every later sync (safe to re-run; Brevo matches by email, never duplicates). Brevo's own webhook then reports back opens/clicks (updating each matching Lead's engagement) and bounces/complaints (setting Opted Out of Email automatically, so a bounced or complained-about address is never resynced).
Sending limits depend on the connected Brevo plan, not on CM — CM has no send cap of its own, but Brevo does:
| Free | 300 emails/day (marketing and transactional combined, resets daily, does not roll over). Contact storage is unlimited on every plan — Brevo charges for sends, not list size. | |
| Starter | From $9/month for 5,000 sends/month. |
A tenant syncing more Leads in one Campaign than their current Brevo plan's remaining daily/monthly allowance will see Brevo itself reject the excess sends — this isn't something CM validates or warns about in advance, so it's worth knowing your list size against your plan before a large sync.
| Connection Status | A badge showing Connected, Onboarding Incomplete, or Not Connected. | Read-only |
| Connect / Continue Setup | A button that redirects to Stripe's own onboarding flow. | Action |
Worth knowing: there are no manually-editable fields here at all — the entire flow happens on Stripe's own hosted pages, and this tab is just a status display plus a launch button.
| Description* | A label for this SMTP configuration. | Required |
| SMTP Host / Port | The mail server address and port. | Editable |
| User / Password | Login credentials for the mail server (password masked, show/hide toggle). | Editable |
| Enable SSL | Whether to use a secure connection. | Editable |
Worth knowing: these settings are site-wide, not per-staff-member — there's no per-user SMTP/POP/IMAP configuration anywhere in the app.
Custom Text Fields / Custom Dates / Custom Checkboxes / Custom Choice Fields
Site-wide custom field type definitions — this is where an admin creates the field types that then show up per-record on Project/Company/Person/etc.'s own Custom Fields tabs.
| Type / Description / Notes | Metadata applied to the uploaded files. | Editable |
| Files | The actual file(s) uploaded, up to 20MB each. | Editable |
| Acronym* | The acronym itself. Can't be changed after creation. | Required |
| Description* | What it stands for. | Required |
| Description | What the link is for. | Editable |
| URL* | The link itself, opens in a new tab. | Required |
| Notes | Additional context about the link. | Editable |
| Description* | A label for the tax rate. | Required |
| Rate (%)* | The tax percentage. | Required |
| Active | Whether this rate is currently available for use. | Editable |
| Title* | The article's title. | Required |
| Category* | Which category the article falls under. | Required |
| Text* | The article's content. | Required |
| Link | An optional supporting link (e.g. a video). | Editable |
| Attachment | An optional supporting file, uploaded and shown as its own column in the article list. | Editable |
| Entity | Which entity's tabs you're reordering. | Editable |
| Tab List | Drag-and-drop (or Move Up/Down) to reorder that entity's tabs. | Editable |
Worth knowing: this is exactly where the doc you're reading right now shows its "default order" disclaimer comes from — and it's also where the Payments/Notifications gap noted above actually shows up (they're just missing from the picker for Site Settings itself).
| Person* | Which Person record this login belongs to. | Required |
| Username* | Their login username. Can't be changed after creation. | Required |
| Email* | Their login email. | Required |
| Mobile Phone | Their mobile number. | Editable |
| Active | Whether this login can currently sign in. | Editable |
| Roles | Which roles this user is granted. | Editable |
| Password / Reset Password | Leave blank to invite via email (new) or keep the current password (edit). | Editable |
Worth knowing: there's no delete here — a user is deactivated via the Active checkbox, never removed outright.
| Org Tree | A read-only view of the hierarchy; click a node to act on it. | Read-only |
| Level Name / Description | Used when adding or renaming a node (e.g. "Department" / "Sales"). | Editable |
| New Parent | Used when moving a node elsewhere in the tree. | Editable |
Worth knowing: deactivating a node doesn't reassign or affect employees/children still pointing at it — that's handled separately.
| Warranty Requests: recipients | Which staff members get notified when a client submits a warranty request. | Editable |
| Portal Messages: recipients | Which staff members get notified when a client sends a portal message. | Editable |
Worth knowing: if nobody's checked for a category, it goes to every staff member by default.