Profile

My Profile holds your personal Customermates settings: name, language, formats and theme, the channels that feed the Inbox, and your API keys.

Customermates is an open-source, AI-native CRM. This page documents the My Profile screen of the web app for humans and for AI agents that drive the UI.

What lives on the Profile screen?

Everything that belongs to you as a user rather than to the company: your profile and preferences (Settings), the messaging channels you connect (Channels) and your API keys for MCP and REST clients (API & Connectors). Most changes here affect only you. Channels are the exception: a channel you share becomes visible to your teammates, and disconnecting a shared channel removes it for them too.

In the sidebar group Workspace, My Profile (#nav-profile) only expands or collapses its entries; it opens no page itself. Its entries open the pages, each on its own route, and the breadcrumb reads My Profile › Settings with a switcher to the other pages you can see. The browser address puts the language in front of the route, for example /en/profile/settings.

Routes are relative and carry no language prefix: they work on the address the workspace runs on, and the app adds the user's language, so /profile/settings opens /en/profile/settings for an English user. For a full link, put the route after the origin of the url that search_docs, get_docs_page and fetch return; that origin is the instance's configured BASE_URL. Mate, the hosted assistant, opens a page with navigate and outlines a control on the current page with highlight_element; it cannot click. The nav-* ids in the Navigate column also work with highlight_element and point at the sidebar entry; nav-profile points at the My Profile toggle. A sidebar entry can be highlighted only while My Profile is expanded. It is expanded by default on its own pages, unless the member collapses it. On a phone the sidebar must be open, and a sidebar collapsed to icons hides the entries. A control without a target is named by Mate instead, and a target in a dialog exists only while the user has that dialog open.

Settings is listed for every member. Channels is listed on Customermates Cloud only, when your role's Inbox messages row has Read access All; on self-hosted its targets are still offered, but the page redirects to the Dashboard. API & Connectors is listed when the API & Webhooks row has Read access All.

Roles are edited under My Company › Roles by a member whose role has Manage on Users & Roles; see App guide, Company. A new custom role starts with Read access None on both rows, so its members see only Settings until someone changes the role. The Admin role sees every entry the installation offers. Opening a hidden page by its URL brings you back to the Dashboard.

PageRouteNavigate targetHighlight targets on the pageExplained in
Settings/profile/settingsnav-profile-settings, also nav-profileprofile-settings-verify-email, profile-settings-first-name, profile-settings-last-name, profile-settings-country, profile-settings-avatar-url, profile-settings-display-language, profile-settings-formatting-locale, profile-settings-theme, profile-settings-save, profile-settings-resetSettings
Channels/profile/connected-accountsnav-profile-connected-accounts, also profile-connected-accounts-connectprofile-connected-accounts-connect; in the channel dialog connected-account-tab-details, connected-account-visibility, connected-account-tab-email, connected-account-signature, connected-account-email-save, connected-account-tab-folders, connected-account-reactivate, connected-account-resync, connected-account-disconnectChannels
API & Connectors/profile/api-keysnav-profile-api-keysprofile-api-keys-generate; in the key dialog api-key-option-standard, api-key-name, api-key-expires, api-key-save, api-key-deleteAPI & Connectors

Profile settings page

The profile Settings page holds your name, avatar, language, formats and theme. Route /profile/settings, sidebar entry Settings. Every signed-in member can open it, whatever the role, and the form changes only your own profile. Save or discard with Save (#profile-settings-save) and Reset (#profile-settings-reset) below the form; both buttons appear once the form has unsaved changes. Save stores all fields at once.

Link: the link to the profile Settings page, /profile/settings. Mate: navigate and highlight_element with nav-profile-settings; highlight_element also takes the field ids below without #, profile-settings-verify-email while your email is unverified, and profile-settings-save and profile-settings-reset, which are on screen only once the form has unsaved changes.

How do I change my name, avatar, language or theme?

Change the field and click Save: Display Language sets the interface language, which the assistant also answers in, and Theme switches to a light or dark interface (dark mode) or follows your system.

FieldIdOptions and rulesEffect
First Name, Last Name#profile-settings-first-name, #profile-settings-last-nameRequired, up to 255 characters eachYour name wherever you appear in the workspace
Country#profile-settings-countryRequired, chosen from the country listStored with your profile; it does not change how dates or numbers are written
Avatar URL#profile-settings-avatar-urlOptional link to a publicly reachable image; https:// is added when you type an address without it; there is no uploadYour picture; with the field empty, your initials are shown
Display Language#profile-settings-display-languageEnglish, German, French, Italian, Spanish, or System (your browser's language, English when it is none of the five)The interface language, which the assistant also answers in. Saving a new value reloads the app in that language. Notification emails from Customermates, such as trial reminders, use it too; with System they are sent in English
Formatting Locale#profile-settings-formatting-localeEnglish (US formats), German, French, Italian, Spanish, or System (the formats of your display language)How numbers, dates, times and amounts are written, independent of the interface language
Theme#profile-settings-themeSystem (follows your operating system), Dark, LightLight or dark interface

The header above the form shows your name, your email address, Email verified or Email not verified, your status and your role. None of these can be changed here. The email address cannot be changed anywhere in the app. Role and status are set under My Company › Members by a member whose role has Manage on Users & Roles, who can also edit your first name, last name, country and avatar URL there.

The avatar menu at the bottom of the sidebar has a Dark Mode or Light Mode switch that also saves your theme, and Sign Out.

Link: /profile/settings. Mate: navigate and highlight_element with nav-profile-settings, then highlight_element with the field id in this table without #, for example profile-settings-first-name, profile-settings-avatar-url or profile-settings-theme, and profile-settings-save once something changed. The header and the avatar menu have no target, so Mate names them.

How do I verify my email address or resend the verification email?

While your address is unverified, the sidebar shows Email not verified under the brand name; it opens My Profile › Settings (/profile/settings), where the top bar offers Resend verification email. A new account can be used for 24 hours without verification. After that, every page redirects to the verification screen until you confirm the address with the link from the email.

Link: /profile/settings. Mate: navigate and highlight_element with nav-profile-settings; highlight_element also takes profile-settings-verify-email for Resend verification email (#profile-settings-verify-email), on screen only while your email is unverified. The Email not verified badge has no id, so Mate names it.

What can I not change here, such as my password?

There is no setting for your password, email address, time zone, notifications or deleting your account. To set a new password, sign out and use Forgot password? on the sign-in page. Email signatures belong to each email account on the Channels page, see email appearance and signature below.

In the assistant and over MCP, update_workspace_settings with target: "profile" changes First Name, Last Name, Country and Avatar URL only. Display Language, Formatting Locale and Theme are set in the app only. The REST API reads your profile with GET /v1/users/me but cannot change it.

Link: /profile/settings. Mate: navigate and highlight_element with nav-profile-settings; Sign Out and the sign-in page with Forgot password? have no target, so Mate names them.

API & Connectors page: your API keys

The API & Connectors page holds your API keys. Route /profile/api-keys, sidebar entry API & Connectors. Keys for MCP and REST clients; the full rules are on API keys. The page lists only your own keys. Opening it needs Read access All on your role's API & Webhooks row, and adding or deleting keys needs Manage Yes on that row. The same row also controls My Company › Webhooks and Recent Deliveries.

ActionWhereAnchor idWhat happens
Add a keyTop bar#profile-api-keys-generate (Add)Opens Add an API key with two routes
Create a standard keyStandard API key#api-key-option-standard (Standard API key), #api-key-name (Name), #api-key-expires (Expires in), #api-key-save (Save)Name plus an optional Expires in date 1 to 365 days ahead (default Never expires); the key is shown once, so copy it immediately
Quick connectionsQuick connectionsnoneFour client tiles, described below
Open a keyKey cardnoneThe card shows Created at, Expires at and Last used; the dialog shows the creation date, and expiry and last use only when set
Delete a keyKey dialog#api-key-delete (Delete)Delete, with a confirmation; the key stops working immediately

The quick route offers four tiles: Claude, ChatGPT & Codex, Cursor and Gemini. The local setups, meaning Claude Code or Claude Desktop, Codex, Cursor and Gemini, create a key named after the client that expires after 365 days, and show that client's setup snippet with the key filled in, followed by the date and time the key expires. The Claude account and ChatGPT app methods connect through the hosted connector instead and create no key.

There is no rotate or revoke button: create a new key, update the client, then delete the old one. Taking API & Webhooks away from a role does not disable keys its members already hold; to stop a member's keys, set that member Inactive under My Company › Members.

Link: the link to the API keys page, /profile/api-keys, titled API & Connectors. Mate: navigate and highlight_element with nav-profile-api-keys; highlight_element also takes profile-api-keys-generate for Add (roles with API & Webhooks Manage). In the dialog it takes api-key-option-standard (prerequisite profile-api-keys-generate), then api-key-name, api-key-expires and api-key-save (prerequisite api-key-option-standard; Save is enabled once something changed), and api-key-delete once the user has opened a key from its card. The quick connection tiles and the key cards have no target, so Mate names them.

Channels page

Channels are the email, LinkedIn, WhatsApp, Instagram and Telegram accounts that feed the Inbox, and the Channels page lists them. The link to the Channels page is /profile/connected-accounts, sidebar entry Channels (#nav-profile-connected-accounts), Customermates Cloud only; you connect a channel with Connect channel (#profile-connected-accounts-connect). The page lists your own channels first, then every channel a teammate has shared with the workspace. When channels need attention (Reconnect needed, Permission issue or Error), the sidebar entry shows their count, including teammates' shared channels that only their owner can fix.

ActionWhereAnchor idWhat happens
Connect a channelTop bar#profile-connected-accounts-connect (Connect channel)Opens the channel picker; on narrow screens the button shows channel icons only
Connect from an empty pageCentered empty state#profile-connected-accounts-connect-empty (Connect channel)The same picker, shown when you have no channel yet and may connect; when the assistant is available, the empty state shows assistant starter prompts instead of this button
Open a channelChannel card clicknoneOpens the channel dialog on its Details tab
Details tabChannel dialog#connected-account-tab-details (Details)Provider, Status, Visibility, Owner, Folders, Connected and Last synced
Share or unshareDetails tab#connected-account-visibilityThe Visibility switch between Private and Shared; owner only
Email tabChannel dialog#connected-account-tab-email (Email)Appearance and signature; only on a Gmail, Outlook or IMAP account you own
Signature and saveEmail tab#connected-account-signature (Add a signature) / #connected-account-email-save (Save email settings)The signature switch, and the button that stores the tab once something changed
Folders tabChannel dialog#connected-account-tab-folders (Folders with a count, for example Folders 4/6)One switch per folder; only when the account reports folders
Reactivate, resync or disconnectChannel dialog#connected-account-reactivate / #connected-account-resync / #connected-account-disconnectOwner only, with Manage on Inbox messages; Reactivate or Resync depending on the status

Link: the link to the Channels page, /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts, and highlight_element with profile-connected-accounts-connect for Connect channel, on screen only when your role may connect and the page is not locked, loading or failed. Once the user has opened a channel from its card, it also takes the channel dialog ids in the table above without #, each only where the table says it appears; the cards and the empty-state button #profile-connected-accounts-connect-empty are not highlight targets, so Mate names them.

Who can use Channels?

Seeing the page needs Read access All on your role's Inbox messages row; with None, both Channels and the Inbox are hidden. Connecting a channel and changing, reactivating, resyncing or disconnecting it needs Manage Yes on the same row. With read access alone you see your channels and teammates' shared ones but cannot change anything. Whatever your role, including Admin, you can act only on channels you own.

The workspace plan must include messaging: Pro, Business, Enterprise, or a trial. On Starter the page shows Upgrade to unlock messaging with the button Upgrade your plan, which opens My Company › Subscription. Every action except disconnecting also needs a usable subscription, meaning status Active or a trial that has not ended; otherwise it is refused, and Connect channel shows "Connecting channels requires an active subscription or a trial that hasn't expired." Self-hosted installs have no Channels page.

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts; on Starter the locked page has no Connect channel target, and Upgrade your plan has no id, so Mate names it or navigates with nav-company-subscription.

How do I connect a channel?

Open My Profile › Channels (#nav-profile-connected-accounts), click Connect channel (#profile-connected-accounts-connect) and pick one of nine entries, for example WhatsApp for your WhatsApp chats in the Inbox:

EntryConnects
Gmail, OutlookA Gmail or Outlook account; the card's Provider shows whether email, calendar or both are connected
IMAPAny other email account over IMAP and SMTP
WhatsAppYour WhatsApp account; you scan a QR code on the connection page
LinkedIn (Classic)Your LinkedIn account
LinkedIn (Classic & Sales Navigator), LinkedIn (Classic & Recruiter)Your LinkedIn account together with Sales Navigator or Recruiter
Instagram, TelegramYour Instagram or Telegram account

Picking an entry sends the current browser tab to a secure connection page, not a popup, where you have 30 minutes to finish. When you finish there, you return to Channels and a message reports the result:

  • Channel connected: your history imports in the background, and the card shows Syncing in background meanwhile. This usually takes a few minutes, for large accounts up to an hour.
  • Account already connected: this account is already connected by a member of your workspace. If that is someone else, ask them to share it with the workspace instead of connecting it twice.
  • Invalid credentials, Link expired, Verification failed, Account disconnected or Channel connection failed: start again from Connect channel.

An initial connection error needs another attempt from Connect channel; for Error on an existing channel’s card, its owner uses Reactivate.

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts, then highlight_element with profile-connected-accounts-connect; the nine menu entries have no id, so Mate names them.

How many channels can I connect?

Channels per member: Starter 0, Pro 1, Business 3, Enterprise unlimited. A trial counts as Pro. Every channel you own counts, whatever its status, until you disconnect it; only channels with status Deleted do not count. Teammates' shared channels never use your allowance.

At the limit on Pro, Connect channel opens Upgrade to connect more accounts with View plans, which leads to My Company › Subscription. On Business, an error message points to Enterprise. After a downgrade, each member's newest channels above the new allowance are removed and marked Deleted, and members with the Admin role get an email.

Link: /profile/connected-accounts, and /company/subscription for View plans. Mate: navigate and highlight_element with nav-profile-connected-accounts, then highlight_element with profile-connected-accounts-connect, or nav-company-subscription for the plans; View plans and the upgrade dialog have no id, so Mate names them.

What does each channel status mean?

A channel's status on its card says whether it syncs: Connected works normally and Connecting is still being set up; Reconnect needed, Permission issue, Error and Stopped need the owner to click Reactivate; and Deleted leaves only Disconnect.

StatusMeaningWhat to do
ConnectedWorking normallyNothing; Resync re-imports the history
ConnectingThe connection is still being set upWait; Resync is available
Reconnect neededThe provider reports that the login no longer works or is incompleteThe owner clicks Reactivate
Permission issueShown when the provider reports missing permissionsThe owner clicks Reactivate
ErrorThe provider reports an errorThe owner clicks Reactivate
StoppedThe provider has paused the accountThe owner clicks Reactivate
DeletedThe account was removed at the provider, or automatically: after a plan downgrade, or by the daily clean-up once a trial has been over for a day, once a paid subscription has been Unpaid or Expired for three days, or after the owner was set InactiveThe card stays listed, and the owner is offered only Disconnect; connect the account again if the plan allows

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts; once the user has opened the channel, highlight_element takes connected-account-resync, connected-account-reactivate or connected-account-disconnect. The status chips and the cards are not highlight targets, so Mate names them.

How do I share a channel, such as a mailbox, and make it visible to teammates, or keep it private?

A new channel is Private: only you see its conversations. The owner switches Visibility on the Details tab to Shared, and the change applies at once with the message Account shared with your workspace. A shared channel, with all its conversations, becomes visible to every member whose role has Inbox messages read access, and those with Manage on that row can also reply and send from it. Switching back to Private hides it again.

Sharing needs the Business or Enterprise plan; on other plans the switch is disabled with the hint "Shared accounts require the Business plan or higher." It also needs Manage on Inbox messages and a usable subscription. Teammates see your shared channel on their Channels page, where they can open its details and folders but cannot change, reactivate, resync or disconnect it. Single conversations can also be shared from the Inbox, see App guide, Inbox.

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts; the channel card has no target, so Mate names it. Once the user has opened the channel, highlight_element takes connected-account-visibility for the Visibility switch (#connected-account-visibility), shown to the owner only and disabled below the Business plan.

What does the Folders tab control, and how do I hide the spam folder in the Inbox?

Email accounts whose provider reports folders get a Folders tab with one switch per folder. A switch decides whether that folder's messages show in the Inbox, for you and for everyone who can see the channel; switching a folder off hides its messages without deleting them. The change applies at once.

By default every folder is on except trash, junk or spam, drafts and the all-mail folder; when the provider does not label its folders, names containing junk, spam, trash, deleted, draft or outbox are treated the same way. Switching on one of the excluded folders starts a background import of its history. Only the owner with Manage on Inbox messages can switch folders; everyone else sees Synced or Hidden.

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts; once the user has opened the channel, highlight_element takes connected-account-tab-folders for the Folders tab (#connected-account-tab-folders), shown only for accounts with folders; the folder switches are not highlight targets, so Mate names them.

How do I change the font, link colour and signature of outgoing emails?

The Email tab sets how emails sent from that account look: font, font size, link colour and signature. It appears only on a Gmail, Outlook or IMAP account you own, editing needs Manage on Inbox messages, and Save email settings stores both sections.

FieldOptionsDefault
Font familySans serif (Arial), Serif (Georgia), Monospace (Courier New)Sans serif (Arial)
Font size10 to 2013
Link colourA six-digit hex value (#RRGGBB) with a colour picker beside it#7161e8
Link styleUnderlined, No underlineUnderlined

The link colour is checked as you type, and a warning appears when its contrast is below 3:1 on a light or a dark background; it does not block saving. Appearance applies to emails written as plain text or Markdown, which includes everything you write in the Inbox. An email sent over the REST API or MCP with an explicit HTML body keeps its own styling.

The signature is off for a new account; switch on Add a signature to edit it. Choose a Layout of Text only, Logo above (preselected) or Logo beside. Logo layouts need a Logo URL, a public HTTPS image address of up to 500 characters; it starts out as the Customermates icon, so replace it with your own logo. Layout options for logo layouts set Logo size (Small, Medium, Large; default Medium), Divider (None, Thin line; default None) and Spacing (Compact, Comfortable; default Comfortable). Signature content is one Markdown block of up to 2,000 characters. Switching the signature off keeps the saved text for later, and the Preview shows the result.

While Add a signature is on, the saved signature is added below every email sent from that account, whether it is sent from the Inbox, the REST API or an MCP tool, HTML bodies included, so agents must not repeat the signature in the message body.

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts; once the user has opened the channel, highlight_element takes connected-account-tab-email for the Email tab (#connected-account-tab-email, email accounts you own), and on that open tab connected-account-signature for Add a signature (#connected-account-signature) and connected-account-email-save for Save email settings (#connected-account-email-save). The appearance and layout fields are not highlight targets, so Mate names them.

How do I reactivate, resync or disconnect a channel?

Open an existing channel card; only its owner sees Reactivate and the other actions. Retry a failed initial connection from Connect channel instead:

  • Reactivate (for Reconnect needed, Permission issue, Error or Stopped): sends the tab to the connection page for the same account (valid for 30 minutes) and brings you back to Channels.
  • Resync (for Connected or Connecting): re-imports the history in the background, which usually takes 1 to 3 minutes.
  • Disconnect: asks for confirmation, then removes the account at the provider and permanently deletes the conversations, messages, calendars and events Customermates imported from it. A shared channel disappears for your teammates as well.

All three need Manage on Inbox messages.

Link: /profile/connected-accounts. Mate: navigate and highlight_element with nav-profile-connected-accounts; after the user opens the channel from its card, highlight_element takes connected-account-reactivate for Reactivate, connected-account-resync for Resync and connected-account-disconnect for Disconnect, each only when the owner sees it.

Tips for agents

  • The hosted assistant Mate has these targets here, passed without #: #nav-profile, #nav-profile-settings, #nav-profile-connected-accounts, #nav-profile-api-keys and #profile-connected-accounts-connect; on Settings every field id in the table above, #profile-settings-verify-email, #profile-settings-save and #profile-settings-reset; on API & Connectors #profile-api-keys-generate and, in its dialog, #api-key-option-standard, #api-key-name, #api-key-expires, #api-key-save and #api-key-delete; in the channel dialog #connected-account-tab-details, #connected-account-visibility, #connected-account-tab-email, #connected-account-signature, #connected-account-email-save, #connected-account-tab-folders, #connected-account-reactivate, #connected-account-resync and #connected-account-disconnect. navigate takes each of them and opens its page (nav-profile opens Settings), and highlight_element outlines them; it cannot press them. list_ui_targets names the prerequisite: profile-api-keys-generate opens the key dialog, api-key-option-standard its standard form, and connected-account-tab-email the signature switch and its save button; a channel dialog or a key dialog for a saved key opens from its card, so list_ui_targets names that card as the prerequisite (a channel card, an API key card) and Mate asks the user to open it first. Ask it for a tour of connecting an account and it walks you there. The empty-state button #profile-connected-accounts-connect-empty, the quick connection tiles, the folder switches and the appearance fields are not assistant targets.
  • Cards never carry ids. Open a key or a channel by clicking its card; the pages are plain routes.
  • Prefer MCP tools when a tool exists: connect_messaging_account creates the connection link for one of the nine channel entries, under the same plan, permission and allowance rules, and get_workspace_context lists your own and shared channels with their status, and returns an empty list when your role has no read access on Inbox messages. No tool changes visibility, folders, appearance or the signature, reactivates, resyncs or disconnects a channel, changes the display language, formatting locale or theme, or creates an API key; use the pages above. The REST endpoint GET /v1/messaging/connected-accounts only reads.
  • A generated API key is shown exactly once, whether created as a standard key or through a quick connection's local setup. Copy it in the same step.