Settings
Workspace branding, pipeline, team, and API keys.
The Settings area (/crm/settings) holds everything tenant-wide. Four tabs.
Tenant
Edit your workspace identity:
- Workspace name — shown on the splash and the top-left of every page.
- Tagline — an optional descriptor under the name on the splash.
- Primary color — hex color used for the brand chip on the splash and the top-left tenant avatar. Six-digit hex like
#1e40af. The swatch next to the input previews the current value.
Logo upload lands in a follow-up phase. For now we use the first letter of your workspace name on a colored chip.
Pipeline
Manages the columns of your kanban view (/crm/pipeline).
For each existing stage you can:
- Rename — click the name, edit, blur to save.
- Recolor — edit the hex value, blur to save.
- Change type — pick
Active,Won, orLost. Won/lost stages typically sit at the right of the kanban as closing columns. Reporting can read this distinction (v2). - Reorder — up/down arrow buttons swap with the adjacent stage.
- Delete — only allowed when no leads are currently in that stage. Move them out first.
The Add stage form at the bottom appends a new stage to the end of the pipeline. Defaults: gray (#71717a), active. Edit after if you want different.
Default stages on a new tenant: New / Contacted / Qualified / Won / Lost.
Team
Manages who has access to this workspace.
Inviting
Type a teammate's email, click Create invite. v1 doesn't email it for you — we generate a link with a unique token, you copy and email it. The link is valid for 7 days and one use.
The invitee clicks, picks a password, and is dropped into the dashboard. Their tenant_members row is created on acceptance with role = 'member'.
Members
A list of everyone currently in the workspace. Email, role, joined date.
In v1 every member has the same access. Roles (admin / manager distinctions) activate in v2 along with assigned-lead visibility.
Pending invites
Invites that have been created but not yet accepted. For each row:
- Copy link — copies the full invite URL so you can paste it in an email or chat.
- Revoke — deletes the invite. The link stops working.
Expired invites stay in the list with an "Expired" indicator until you revoke them.
API keys
The intake URL and rotation control for the public API.
Intake URL
Read-only, shown for copy/paste. Always https://<your-slug>.hrefcreative.co/api/leads/intake. Hand it to the HREF developer wiring up your forms.
API key
Keys are stored as SHA-256 hashes. We literally cannot show you the original after creation. So:
- If you've lost the key, click Rotate. We generate a new one, show it to you once, then store the new hash. Existing forms using the old key stop working immediately.
- If you've never lost it, no need to rotate.
When a key is shown after rotation, an amber callout reminds you to copy it now — refresh the page or click "Done" and it's gone forever.
What's not in v1
- Logo upload. Workspace logo is a follow-up phase that depends on Supabase Storage setup. For now, the colored initial chip stands in.
- Drag-reorder stages. Up/down arrows only.
- Member removal. Currently no UI to kick someone. Admin-by-default in v1; cleaner role-based removals arrive with v2.
- Multiple API keys per tenant. One key per tenant. If you need a separate key for a one-off integration, rotate.
- Color picker UI. Hex text input only. Pick a color elsewhere; paste the hex.