Company
My Company is the workspace admin area in Customermates: subscription and billing, currency, members, roles, webhooks, deliveries and the audit log.
Customermates is an open-source CRM with a built-in MCP server. This page documents the My Company section of the web app, page by page, for humans and for AI agents that drive the UI: what each setting does, who can change it, and where to find it.
What lives under My Company?
Workspace-wide administration: the subscription (Cloud only), the workspace settings, the team and its permissions, outbound webhooks with their delivery history, and the audit trail. Everything that affects the whole workspace, not a single record, lives here.
In the sidebar, My Company (#nav-company) sits in the Workspace group next to My Profile. It is a toggle: clicking it expands or collapses its list of pages and opens no page itself. Expanding it collapses the other expanded group, and it opens by itself while you are on one of its pages. Each page has its own route, and the browser address puts the language in front of it (example: /en/company/members). The breadcrumb reads My Company › page name; the first crumb opens the first page you can see, and the second switches between the sibling pages.
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 /company/subscription opens /en/company/subscription 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's highlight_element also takes each navigate target: nav-company points at the My Company toggle, and every other one at its page's sidebar entry. A sidebar entry can be highlighted only while My Company is expanded, which it is by default on its own pages unless the member collapsed it. Add targets exist only for roles that can manage the page, and the layout targets only while display options are open. Billing targets appear only for roles with Company Manage, and a dialog target only while its dialog is open: where a control opens the dialog, it is the target's prerequisite, and Mate asks the user to open it first. Where a row opens the dialog, list_ui_targets names that row as the prerequisite (for example a member row); rows have no target, so Mate asks the user to click the row.
Subscription is Cloud only. Audit Logs needs Audit Log read access All, and Webhooks and Recent Deliveries need API & Webhooks read access All. Every role can read Company and at least its own row of Users & Roles, so Subscription, Settings, Members and Roles are always listed; the role decides whether their editing controls appear and, on Members, which rows are listed. The built-in Admin role sees and can change everything.
| Page | Route | Navigate target | Highlight targets on the page | Explained in |
|---|---|---|---|---|
| Subscription | /company/subscription | nav-company-subscription | company-subscription-manage, company-subscription-refresh, company-subscription-plan-picker | Subscription |
| Settings | /company/settings | nav-company-settings, also nav-company | company-settings-currency, company-settings-deal-stage-field, company-settings-stage-weights, company-settings-total-pipeline, company-settings-weighted-pipeline, company-settings-data-model, terminology-contact, terminology-organization, terminology-deal, terminology-service, terminology-task, company-settings-save, company-settings-reset | Settings |
| Members | /company/members | nav-company-members | company-members-add, company-members-search, company-members-filter, company-members-display-options, company-members-layout-table, company-members-layout-board; in Invite User invite-modal-tab-link, invite-modal-link, invite-modal-copy-link, invite-modal-tab-email, invite-modal-emails, invite-modal-send; in User member-modal-email, member-modal-first-name, member-modal-last-name, member-modal-country, member-modal-role, member-modal-avatar-url, member-modal-status, member-modal-save, member-modal-reset | Members |
| Roles | /company/roles | nav-company-roles | company-roles-add, company-roles-display-options, company-roles-layout-table, company-roles-layout-board; in the editor role-modal-save, role-modal-reset, role-modal-delete | Roles |
| Audit Logs | /company/audit-logs | nav-company-audit-logs | company-audit-logs-search, company-audit-logs-filter, company-audit-logs-display-options, company-audit-logs-layout-table, company-audit-logs-layout-board | Audit Logs |
| Webhooks | /company/webhooks | nav-company-webhooks | company-webhooks-add, company-webhooks-search, company-webhooks-filter, company-webhooks-display-options, company-webhooks-layout-table, company-webhooks-layout-board; in the dialog webhook-modal-url, webhook-modal-description, webhook-modal-events, webhook-modal-secret, webhook-modal-headers, webhook-modal-body-template, webhook-modal-enabled, webhook-modal-save, webhook-modal-reset, webhook-modal-delete | Webhooks |
| Recent Deliveries | /company/webhook-deliveries | nav-company-webhook-deliveries | company-webhook-deliveries-search, company-webhook-deliveries-filter, company-webhook-deliveries-display-options, company-webhook-deliveries-layout-table, company-webhook-deliveries-layout-board; in Event Details webhook-delivery-modal-resend | Recent Deliveries |
| Subscription Required | /subscription-expired | None | None, Mate is not available there | Trial end or failed payment |
| Legal documents updated | /legal-update | None | None, Mate is not available there | Members without a permission |
What does a member without a permission see?
A member without a permission sees fewer pages and controls:
- A page the role cannot read is missing from the sidebar, and opening its URL directly lands on the Dashboard.
- On a page the role can read but not manage, Save, Reset and Add are not shown, and forms and dialogs open read-only.
- On Cloud, while the subscription is unpaid or expired, or after the trial has ended, every page shows Subscription Required instead; see what happens when the trial ends.
- On Cloud, when the Terms or the DPA change, the sidebar shows Legal documents updated with Review Terms and DPA and the date by which to accept. Only a member with the Admin role can accept, on the Legal documents updated screen (
/legal-update), by confirming the checkbox and clicking Accept and continue; everyone else sees "A company administrator must accept by" that date. If nobody accepts in time, every page opens this screen until an Admin accepts. - Role changes apply on the member's next page load or API call.
Link: /dashboard, where a page the role cannot read leads, and /legal-update for Legal documents updated, which opens only while an acceptance is pending. Mate: navigate and highlight_element with nav-dashboard for the Dashboard; Legal documents updated has no target, and Mate is not available there, so it can only give the link; the checkbox #legal-acceptance is an element id, not highlightable by Mate.
Subscription page: plan and billing
The link to billing is the Subscription page: it shows the plan, status, seats and billing of the workspace. Route /company/subscription, sidebar id #nav-company-subscription, Cloud only: on a self-hosted install the entry is hidden, the URL redirects to the Dashboard, and there is no subscription. Every member can open the page. Who may use the billing controls is under Who can manage billing?. Customermates bills through Lemon Squeezy, the payment provider that runs checkout and the customer portal.
| Field | What it shows |
|---|---|
| Plan | The current plan, Starter, Pro, Business or Enterprise, with a status chip. Read-only: it is synced from billing and changes through the plan picker or the customer portal. |
| Trial ends | The date the free trial ends. Shown only while the status is Trial. |
| Current period ends | The end of the current billing period, synced from Lemon Squeezy: the renewal date, or after a cancellation the date the subscription ends. Shown once billing has set it. |
| Active seats | The number of billed seats. Before the first checkout it shows the number of Active members. The note below reads "You pay per active user. Seat changes are prorated on your next invoice." |
The top bar holds Refresh (#company-subscription-refresh) and Manage with Lemon Squeezy (#company-subscription-manage), and the plan picker below the fields carries #company-subscription-plan-picker. Plan prices and allowances are under Which plans are there?; the hosted AI credits per plan are under Plans and credits.
Link: the link to the Subscription page, /company/subscription. Mate: navigate and highlight_element with nav-company-subscription; highlight_element also takes company-subscription-refresh, company-subscription-manage and company-subscription-plan-picker, each shown only to roles that manage billing, in the subscription state that offers it. The fields are not highlight targets, so Mate names them. On self-hosted, list_ui_targets still offers the targets, but the page redirects to the Dashboard.
Who can manage billing?
Only roles with Company set to Manage Yes, and the Admin role, see the billing controls: the plan picker, Manage with Lemon Squeezy and Refresh. Everyone else sees the values read-only with a hint to ask a workspace administrator. The role's Company row is set under My Company › Roles.
Link: /company/subscription, and for the role's Company row /company/roles. Mate: navigate and highlight_element with nav-company-subscription or nav-company-roles; the role rows are not highlight targets, so Mate names them.
What does each subscription status mean?
The status chip next to Plan shows one of six statuses. The app sets Trial when a Cloud workspace is created; every other status comes from Lemon Squeezy, or from a correction by Customermates support. Nobody in the workspace can set it.
| Status | Meaning | Effect on the workspace |
|---|---|---|
| Trial | The free trial: 7 days with Pro features, starting at sign-up | Everything works until Trial ends |
| Active | Paid and current | Everything the plan includes works |
| Past Due | Lemon Squeezy reports an overdue payment | Pages stay open, but the Inbox and messaging, connecting channels, shared accounts and the hosted assistant are refused, and hosted AI credits drop to 0 |
| Cancelled | The subscription was cancelled | Same as Past Due |
| Unpaid | Lemon Squeezy reports the subscription as unpaid | Every page redirects to Subscription Required |
| Expired | The subscription has ended | Every page redirects to Subscription Required |
A trial whose end date has passed without a checkout counts as expired, too. Refused messaging and channel actions show "Connecting channels requires an active subscription or a trial that hasn't expired." The hosted assistant is switched off instead, so Ask Mate disappears from the sidebar.
The chip under the Customermates name in the sidebar shows the plan name while the status is Active, and otherwise the plan with its status, for example Pro · Trial · 3 days left, 1 day left or ends today. It is green, turns amber at 3 or fewer trial days, and is red for every other status. Clicking it opens My Company › Subscription. Self-hosted installs show no chip.
Link: /company/subscription. Mate: navigate and highlight_element with nav-company-subscription; the status chip and the plan chip in the sidebar are not highlight targets, so Mate names them.
Which plans are there, and what are their prices?
Customermates Cloud has four plans, Starter, Pro, Business and Enterprise, and a free trial of 7 days with Pro features.
| Plan | Price per seat and month | Connected accounts per user | Routines per user | Inbox and messaging | Shared accounts |
|---|---|---|---|---|---|
| Starter | €12 | 0 | 1 | No | No |
| Pro | €29 | 1 | 5 | Yes | No |
| Business | €69 | 3 | unlimited | Yes | Yes |
| Enterprise | On request | unlimited | unlimited | Yes | Yes |
Every plan includes the full CRM, the audit log, the API, the MCP server and the hosted assistant. Starter, Pro and Business are billed monthly per seat, in euros; there is no other billing interval. Hosted AI credits per active user and month: Starter 200, Pro 500, Business 1,200, Enterprise as contracted, and 500 during the trial. Each request is charged its exact provider cost and shown to one decimal; see How many credits does each plan include?.
Link: /company/subscription. Mate: navigate and highlight_element with nav-company-subscription, then highlight_element with company-subscription-plan-picker for the plan cards while the picker is shown; the target outlines all cards, so Mate names the plan.
How do I choose, upgrade or change a plan?
To choose, upgrade or change a plan, use the plan picker, or Manage with Lemon Squeezy after the first checkout. While the workspace has no Lemon Squeezy subscription yet, which in practice means during the trial, roles that can manage Company see the plan picker below the fields: cards for Starter, Pro and Business, the last one marked Most popular. Each card shows the price per user and month, the features, the connected accounts per user (left out when a plan includes no connected accounts, as on Starter), the routines per user, and the hosted AI credits per active user and month.
Clicking a card opens the Lemon Squeezy checkout for as many seats as the workspace has Active members. After payment, Lemon Squeezy returns you to the Subscription page, and the plan, status and seats update once Lemon Squeezy confirms the payment. Checkout adds no second trial: billing starts at checkout, even when trial days are left.
After the first checkout the picker does not come back on its own; change the plan with Manage with Lemon Squeezy instead. Enterprise workspaces never see the picker, and a checkout is refused with "Enterprise workspaces are billed manually and cannot start self-service checkout."
Link: /company/subscription. Mate: navigate and highlight_element with nav-company-subscription, then highlight_element with company-subscription-plan-picker while the picker is shown; the target outlines all three cards, so Mate names the card to click. After the first checkout, company-subscription-manage points at Manage with Lemon Squeezy instead.
How do I cancel, change the payment method or get invoices?
Use Manage with Lemon Squeezy in the top bar, shown as the Lemon Squeezy icon only on narrow screens. The button appears for roles that can manage Company once the workspace has a self-serve Lemon Squeezy subscription, so not during a trial before checkout and never on Enterprise. It opens the Lemon Squeezy customer portal for the workspace's subscription, which is where billing is managed: changing the plan, updating the payment method, getting invoices and cancelling are what the portal is for. Clicking the button fetches the portal link at that moment and opens the portal in the same tab. If Lemon Squeezy has no portal for the subscription, the page shows "The billing portal is not available for this workspace. Contact support to make changes."
Changes made in the portal reach Customermates automatically. If the page still shows old values, Refresh re-reads the subscription from Lemon Squeezy (status, plan, seats and dates) and confirms with "Subscription refreshed successfully". It appears for the same roles once the workspace has a Lemon Squeezy subscription, except during a trial and on Enterprise. Once Lemon Squeezy reports a cancellation, the status shows Cancelled: as with Past Due, the Inbox and messaging, connecting channels, shared accounts and the hosted assistant are refused. A plan with fewer connected accounts removes accounts; see plan changes.
Members without Company Manage see neither button. The hosted assistant and MCP clients cannot read or change the plan, the status, the seats or anything else about billing.
Link: /company/subscription. Mate: navigate and highlight_element with nav-company-subscription, then highlight_element with company-subscription-manage for Manage with Lemon Squeezy or company-subscription-refresh for Refresh; each is shown only to roles with Company set to Manage Yes and to the Admin role, Manage with Lemon Squeezy once the workspace has a self-serve Lemon Squeezy subscription and Refresh once it has a Lemon Squeezy subscription and outside the trial, neither on Enterprise.
How are seats counted and billed?
A seat is a member with status Active. Members Waiting for approval and Inactive members are not billed. The checkout takes the number of Active members at that moment. After that, every status change on Members, or through manage_team, sends the new number of Active members to Lemon Squeezy right away, and the in-app note says seat changes are prorated on your next invoice. Enterprise seats are not synced to billing.
To lower the bill, set members who no longer need access to Inactive on Members. That also pauses the routines they own and removes their connected messaging accounts at the next daily run.
Link: /company/subscription for Active seats, and /company/members to change a status. Mate: navigate and highlight_element with nav-company-subscription or nav-company-members; Active seats and the member rows are not highlight targets, so Mate names them. Once the user has opened a member row, member-modal-status points at Status and member-modal-save at Save (roles with Manage).
What happens when the free trial ends or a payment fails, and why am I locked out?
When the status is Unpaid or Expired, or the trial has passed its end date, every page opens Subscription Required (/subscription-expired) with the subtitle Workspace access is paused. Past Due and Cancelled do not lock the pages. What the page offers depends on the role:
| Who | What the page offers |
|---|---|
| Roles that can manage Company, and Admin, on Starter, Pro or Business | The plan picker to start a new checkout, plus Contact Support |
| The same roles on Enterprise | A note that the workspace is billed manually, Contact Support and Retry |
| Everyone else | "A company administrator must restore the subscription", Contact Support and Retry |
Contact Support opens an email to Customermates support with the subject "Subscription Inquiry"; Retry reloads the page. Once the subscription is usable again, the page sends you to My Company › Subscription. While it is shown, Search, Ask Mate and Add in the sidebar only check access again.
A daily job at 09:00 UTC takes these steps after a trial ends without a checkout:
- Within the first day, an email offers to extend the trial.
- After one day, every connected messaging account in the workspace is deleted.
- After 3 to 4 days, a reminder email follows.
- After 6 to 7 days, every member, admins included, is set Inactive and notified by email. Nobody can sign in afterwards, so restoring access goes through Customermates support.
A paid workspace that stays Unpaid or Expired for 3 days has all members set Inactive with an email, and the same daily job then deletes their connected accounts.
Only the web app is paused before that point. Until the members are set Inactive, their API keys and MCP connections keep reading and changing records, and webhooks keep firing for those changes; messaging, channels and the hosted assistant stop as soon as the subscription is no longer usable.
Link: /subscription-expired for Subscription Required; it opens only while access is paused, otherwise it redirects to /company/subscription. Mate: no target, and Mate is not available on this page, so it can only pass on the URL; the plan cards carry #company-subscription-plan-picker here too, but Mate cannot highlight them, and Contact Support and Retry have no id.
What happens to connected accounts when the plan changes, for example a switch to Starter?
When Lemon Squeezy reports a different plan, through the automatic sync or Refresh, Customermates removes each user's newest connected accounts beyond the new plan's allowance per user. The Starter allowance is 0 per user, so every connected account is removed. The first checkout from the trial counts as a change from Pro: choosing Starter removes every connected account. Members with the Admin role get an email that lists the removed accounts. Routines above the new allowance are kept, because the allowance applies only when a routine is created.
Link: /company/subscription, and the remaining accounts on /profile/connected-accounts. Mate: navigate and highlight_element with nav-company-subscription or nav-profile-connected-accounts, and highlight_element with company-subscription-refresh for Refresh; the account cards are not highlight targets, so Mate names them.
How does an Enterprise workspace differ?
An Enterprise workspace is set up with Customermates and billed by invoice. The page shows Plan and the note "This workspace is on an Enterprise plan billed by invoice. Contact your account manager to make changes." Trial ends, Current period ends, Active seats, the plan picker, Refresh and Manage with Lemon Squeezy are hidden, self-service checkout is refused, and member status changes are not sent to billing.
Link: /company/subscription. Mate: navigate and highlight_element with nav-company-subscription; Plan and the Enterprise note are not highlight targets, so Mate names them.
Where do upgrade buttons lead?
On Starter, the Inbox and My Profile › Channels show Upgrade to unlock messaging with the button Upgrade your plan. A Pro user at the connected-account limit sees Upgrade to connect more accounts with View plans, and the hosted assistant's credit notice shows View plans too. All of them open My Company › Subscription. Only roles that can manage Company can act there, and once the workspace has a subscription, upgrading goes through Manage with Lemon Squeezy.
Link: /company/subscription; the buttons sit on /inbox and /profile/connected-accounts. Mate: navigate and highlight_element with nav-company-subscription, nav-inbox or nav-profile-connected-accounts; Upgrade your plan and View plans are not highlight targets, so Mate names them.
Company settings page
The link to company settings opens the Settings page, which holds the workspace currency, the weighted pipeline and the Data model, and where you change them. Route /company/settings, sidebar id #nav-company-settings, on Cloud and self-hosted, with no plan limits.
One form holds three parts, and one Save (#company-settings-save) in the top bar applies all of them together.
Save and Reset appear only for roles with Company set to Manage Yes, and Admin; everyone else sees the form read-only. Save stays disabled until something changes; Reset (#company-settings-reset) appears once there are unsaved changes and discards them. Every save is recorded in the audit log.
| Field | What it does |
|---|---|
Currency (#company-settings-currency) | The workspace currency, chosen from the list of ISO currencies; EUR by default. It formats deal values, service amounts and pipeline totals everywhere in the CRM. It is display only: switching does not convert amounts, the same numbers are shown in the new currency. Custom fields of type Currency keep the currency set on the field. |
Deal stage field (#company-settings-deal-stage-field) | Which Single Select deal field drives the weighted pipeline; the first word follows your name for deals, for example Opportunity stage field. Not configured turns weighting off. A new workspace starts with its Stage field selected. |
Win probability per stage (#company-settings-stage-weights, the whole list) | A percent input from 0 to 100 next to each option of the chosen field. The Stage field of a new workspace starts at Prospecting 10, Qualification 20, Demo 40, Proposal 60, Negotiation 80, Won 100 and Lost 0. |
Total pipeline (#company-settings-total-pipeline), Weighted pipeline (#company-settings-weighted-pipeline), Not weighted · no plus the field name (no id) | Read-only totals; see Where do I pick the stage field used for weighting, and how do stage probabilities and totals work?. |
Data model (#company-settings-data-model, the whole section; one select per record type, #terminology-contact, #terminology-organization, #terminology-deal, #terminology-service, #terminology-task) | The name each record type carries in the workspace; see How do I rename record types?. |
Link: the link to company settings, the Settings page, /company/settings. Mate: navigate and highlight_element with nav-company-settings, which nav-company also opens; highlight_element also takes the ids in this table without #: company-settings-stage-weights and the totals once a stage field is chosen, for members who can read deals, and the terminology-* selects, company-settings-save and company-settings-reset for roles with Company Manage; the Not weighted total has no target.
Who can change the currency, the stage probabilities and the other settings?
Every member can open My Company › Settings; only roles with Company set to Manage Yes, and Admin, can change what is on it. For everyone else the fields are read-only and Save and Reset are not shown. That covers the currency, the deal stage field, the probabilities and the Data model. Deleting the stage field in its Edit Field dialog turns weighting off, so it needs this permission as well as Manage on Deals. To get one of them changed, ask a member with that role. The hosted assistant can change the currency and the Data model names with update_workspace_settings, under the same permission.
Link: /company/settings. Mate: navigate and highlight_element with nav-company-settings, then highlight_element with company-settings-currency for Currency and company-settings-save for Save; members without Company Manage see the currency read-only and have no Save or Reset on screen.
Where do I pick the stage field used for weighting, and how do stage probabilities and totals work?
You choose or change the field used for weighting in Deal stage field and set the stage probabilities of the weighted pipeline next to its options. Saving a new stage field or new probabilities recalculates the weighted value of every deal: the deal value times the probability of its current stage. The totals below the probabilities preview unsaved changes in the currency you picked:
- Total pipeline: the value of all deals.
- Weighted pipeline: each stage's total times its probability.
- Not weighted · no Stage (named after your stage field): the value of deals with no stage selected, shown only when it is above zero.
The probability inputs and the totals load only for members who can read deals, and the totals count only the deals that member can read; without deal read access the section shows an error instead. Probabilities can also be edited in the Probability column when you edit the stage field itself: editing the field needs Deals set to Manage Yes, and the Probability column stays read-only without Company set to Manage Yes (or the Admin role). The concept is explained under weighted pipeline.
Link: /company/settings. Mate: navigate and highlight_element with nav-company-settings, then highlight_element with company-settings-deal-stage-field for Deal stage field and company-settings-stage-weights for the probability list, company-settings-total-pipeline for Total pipeline and company-settings-weighted-pipeline for Weighted pipeline (each shown once a stage field is chosen, for members who can read deals); single probability inputs and the Not weighted total are not highlight targets, so Mate names them.
How do I rename record types such as Contacts, Organizations or Deals, and can I name them anything I want?
To rename, choose one preset name for each of the five record types, for example Opportunities instead of Deals; free text is not possible.
| Record type | Select | Available names |
|---|---|---|
| Contacts | #terminology-contact | Contacts, People, Clients, Leads |
| Organizations | #terminology-organization | Organizations, Companies, Accounts |
| Deals | #terminology-deal | Deals, Opportunities, Projects, Jobs |
| Services | #terminology-service | Services, Products, Offerings, Packages |
| Tasks | #terminology-task | Tasks, To-dos, Action items, Follow-ups |
The choice applies to the whole workspace and appears in each member's display language: in the sidebar, lists, forms and field labels, and in what the assistant reads from get_workspace_context. Routes, API and MCP entity names, existing records and their links stay the same, and the role editor keeps the standard names. Below the selection, How records connect summarizes the relationships in the chosen names.
update_workspace_settings with target: "company" changes Currency and the Data model names; it needs Company set to Manage Yes, or Admin. In the hosted assistant a currency change runs without an approval prompt, while renaming a record type asks for your approval every time, because the new names apply to every member. No tool chooses the stage field. manage_custom_columns can set the probabilities as the weight of each option of the stage field; changing a weight needs Deals and Company both set to Manage Yes, or Admin, while other edits to the field need only Deals. Include each option's current weight on every update, because an update replaces the option list and a dropped weight counts as a change. Deleting the stage field with manage_custom_columns turns weighting off and also needs Deals and Company both set to Manage Yes, or Admin.
Link: /company/settings. Mate: navigate and highlight_element with nav-company-settings, then highlight_element with company-settings-data-model for the Data model section, or with the select id in this table without # for one record type. The selects exist only for roles with Company Manage; everyone else sees the names as plain text with no target, so Mate names the record type.
Members page
The Members page lists the people in the workspace and is where you invite teammates. Route /company/members, sidebar id #nav-company-members. Every member can open it: with Users & Roles read access All the list shows every member, with Assigned only your own row. Inviting needs Users & Roles set to Manage Yes; approving and editing other members also needs Read access All on Users & Roles, because Assigned lists only your own row. The Admin role can do both. The columns are Name, Email, Role, Status, Updated at and Created at.
| Action | Where | Anchor id | What happens |
|---|---|---|---|
| Invite members | Members toolbar, Add | #company-members-add | Opens the Invite User dialog |
| Share the invitation link | Invite User, tab Share link, open when the dialog opens | #invite-modal-tab-link / #invite-modal-link / #invite-modal-copy-link | Shows the Invitation link with a copy button and its expiry date |
| Invite by email | Invite User, tab Send emails, address input, Send invitations | #invite-modal-tab-email / #invite-modal-emails / #invite-modal-send | Emails the workspace link to up to 20 addresses |
| Edit or approve a member | Click the row, User dialog | Fields in the table below; #member-modal-save / #member-modal-reset | Save applies the role, status and profile fields; Reset discards changes |
| Search, filter, display options | Members toolbar | #company-members-search / #company-members-filter / #company-members-display-options | List controls; filters cover status, updated at and created at |
| Layout | Display-options popover | #company-members-layout-table / #company-members-layout-board | Table is the only usable layout; the board control is present but disabled because members have nothing to group by |
Link: the link to the Members page, /company/members. Mate: navigate and highlight_element with nav-company-members; highlight_element also takes the toolbar ids in this table, company-members-add only for roles with Manage. In Invite User it takes invite-modal-tab-link, invite-modal-link, invite-modal-copy-link and invite-modal-tab-email (prerequisite company-members-add), and invite-modal-emails and invite-modal-send (prerequisite invite-modal-tab-email). In the User dialog it takes the member-modal-* field ids (read-only for roles without Manage), plus member-modal-save and member-modal-reset for roles with Manage only. The dialog opens from a row, so list_ui_targets gives a member row as the prerequisite instead of a target id, and Mate asks the user to click the row. Rows have no target, so Mate names them.
How do invitations work?
To invite a teammate, click Add on the Members page; the Invite User dialog has two tabs. Share link shows one Invitation link of the form /invitation/{token} for the whole workspace. It is valid for 7 days, shows "Expires on" with the date, and is reused until then; the first time the dialog opens after it expired, a new link is created. Anyone who has the link can register, and there is no button to revoke it early.
Send emails is how you invite people by email: it takes 1 to 20 addresses at once, separated by a comma or Enter, and sends each address once. Send invitations emails every address the same workspace link and confirms with "Sent 3 invitations." (with the actual count).
People who register through the link join with status Waiting for approval and no role, and see a Waiting for Approval screen until someone approves them. An expired or altered link shows an error that asks them to request a new link from an administrator. Each registration also creates an Approve User task in Tasks for members whose Tasks read access is All; it disappears once the member is approved or set Inactive.
The hosted assistant's manage_team action invite sends the same emails and always asks for approval first, because it emails real people. No tool returns the invitation link.
Link: /company/members. Mate: navigate and highlight_element with nav-company-members, then highlight_element with company-members-add for Add. Once the dialog is open (prerequisite company-members-add), it takes invite-modal-tab-link for Share link, invite-modal-link for the Invitation link, invite-modal-copy-link for the copy button and invite-modal-tab-email for Send emails; once that tab is open (prerequisite invite-modal-tab-email), invite-modal-emails for the addresses and invite-modal-send for Send invitations. The expiry date has no target, so Mate names it.
How do I approve, edit, deactivate or remove a member?
To approve, edit or deactivate a member, click the member's row to open the User dialog:
| Field | Id | Rules |
|---|---|---|
#member-modal-email | Read-only; it identifies the member | |
| First Name, Last Name | #member-modal-first-name, #member-modal-last-name | Required |
| Country | #member-modal-country | Required |
| Role | #member-modal-role | Required; lists every role, the built-in one as Admin |
| Avatar URL | #member-modal-avatar-url | Optional link to a publicly accessible image |
| Status | #member-modal-status | Active or Inactive; Waiting for approval is set only by an invitation and cannot be chosen |
To approve a member, choose a Role, set Status to Active and click Save. They can sign in right away and count as a billed seat.
Members cannot be deleted; to remove someone, for example a user who left the company, set them Inactive. That blocks their sign-in ("Your account is currently inactive. Please contact your administrator to reactivate your account.") and every API key and MCP connection of theirs, removes their seat from billing, pauses the routines they own, and the daily job deletes their connected messaging accounts. Inactive is how access ends.
- Your own row opens read-only with "You can edit your own user account in your settings." Change your name in My Profile › Settings, and ask another member with Users & Roles Manage to change your role or status.
- The workspace always keeps at least one Active member with the Admin role. A save that would remove the last one fails with "At least one user must be a system administrator."
- Changes apply on the member's next page load or API call, and every save is recorded in the audit log.
manage_team action update_member changes a member's role and status without an approval prompt; for a member still Waiting for approval, pass both a roleId and the status active. Other members' names, country and avatar can only be changed in this dialog. list_users returns the members your role can read.
Link: /company/members. Mate: navigate and highlight_element with nav-company-members; rows have no id, so Mate names the row. Once the user has opened the User dialog from a row, highlight_element takes the field ids in this table without #, read-only for roles without Manage and on your own row, plus member-modal-save for Save and member-modal-reset for Reset (roles with Manage only; Reset once something changed).
Roles page
The Roles page lists the roles of the workspace. Route /company/roles, sidebar id #nav-company-roles. A role is a set of permissions that every member with that role gets. Every member can open the list, with the columns Name, Type and Description; Type is System for the built-in Admin role and Custom for all others. Creating, editing and deleting roles needs Users & Roles set to Manage Yes, or Admin.
| Action | Where | Anchor id | What happens |
|---|---|---|---|
| Add role | Roles toolbar, Add | #company-roles-add | Opens the Role editor with the defaults for a new role |
| Edit role | Click a row | none | Opens the Role editor; Save and Reset sit in its footer |
| Save or discard | Role editor footer | #role-modal-save / #role-modal-reset | Save applies the name, description and permissions; Reset discards changes; on the Admin role and on your own role Save is shown disabled |
| Delete role | Role editor, Delete | #role-modal-delete | Offered only for a saved custom role that no member has, with a confirmation |
| Display options | Roles toolbar | #company-roles-display-options | List controls |
| Layout | Display-options popover | #company-roles-layout-table / #company-roles-layout-board | Table only; the board control is disabled |
Link: the link to the Roles page, /company/roles. Mate: navigate and highlight_element with nav-company-roles; highlight_element also takes company-roles-add (roles with Manage), company-roles-display-options and the layout ids. The Roles list has no search box and no filter. In the Role editor it takes role-modal-save and role-modal-reset (roles with Manage; prerequisite company-roles-add for a new role, or the user opens a row) and role-modal-delete for Delete (a saved custom role no member has; the user opens its row first). Rows have no target, so Mate names them.
How do I create a custom role in the role editor, for example to restrict a member to assigned records?
A custom role restricts what its members see and change, for example to only the records assigned to them. To create one, use the Role editor: it has the fields Name (required, up to 255 characters) and Description (required, up to 500 characters), plus one row per resource with two columns:
- Manage: Yes lets the role create, edit and delete that resource; No allows none of it. There is no separate switch for create, edit or delete.
- Read access: All shows every record in the workspace, Assigned only the records the member is an assigned user of, and None hides the page and its records. A row without this choice shows a dash.
| Row | Manage | Read access | New role | What it controls |
|---|---|---|---|---|
| API & Webhooks | Yes, No | All, None | No, None | Read opens My Profile › API & Connectors, Webhooks and Recent Deliveries. Manage creates and deletes API keys, adds, edits and deletes webhooks, and resends deliveries. Taking it away does not disable API keys the member already has; set the member Inactive to stop them. |
| Users & Roles | Yes, No | All, Assigned | No, Assigned | Read opens Members (Assigned: only your own row) and Roles. Manage invites, approves and edits members, and creates, edits and deletes roles. |
| Company | Yes, No | No choice, always granted | No | Every role can open Settings and Subscription. Manage edits Settings, chooses a plan, uses Manage with Lemon Squeezy and Refresh, and restores an expired subscription. |
| Audit Log | No choice | All, None | None | All opens Audit Logs and shows the change history on record pages and in activity timelines. |
| Tasks, Contacts, Organizations, Deals, Services | Yes, No | All, Assigned, None | No, Assigned | Read decides whether the sidebar entry appears and which records the member sees. Manage creates, edits and deletes them. |
| Inbox messages (Cloud only) | Yes, No | All, None | No, None | Read opens Inbox and My Profile › Channels, plus social posts and Sales Navigator; threads stay limited to your own and shared accounts. Manage connects channels, sends and drafts. The plan must include messaging as well. |
| Routines (Cloud only) | Yes, No | All, Assigned, None | No, Assigned | All shows every routine, Assigned only the member's own. Manage creates and edits routines; deleting a routine, or pausing someone else's, needs the Admin role. |
Row names stay the same when the Data model renames record types. On a self-hosted install the Inbox messages and Routines rows are hidden.
Link: /company/roles. Mate: navigate and highlight_element with nav-company-roles, then highlight_element with company-roles-add for a new role; once the editor is open, role-modal-save and role-modal-reset point at Save and Reset, and role-modal-delete at Delete where it is offered. The fields and the permission rows are not highlight targets, so Mate names them.
What is the Admin role, and can I edit it?
Every workspace starts with one built-in role, Admin, given to the person who created the workspace. It passes every permission check, shows every row as Yes and All, and its editor opens read-only with "This is a system role and cannot be edited or deleted." Nobody can change or delete it. The workspace must keep at least one Active member with this role, and only members with it can delete routines or pause someone else's routine.
Link: /company/roles. Mate: navigate and highlight_element with nav-company-roles; the Admin row has no target, so Mate names it. Once the user has opened it, role-modal-save points at the disabled Save of the read-only editor, for roles with Manage.
What are the rules for editing roles, and why can't I edit my own?
- You cannot edit your own role. Its editor opens read-only with "This role is assigned to you and cannot be edited. Ask another administrator to change it."
- Delete appears only for a custom role that no member has, inactive members included; move everyone to another role first.
- Changes apply to every member with the role on their next page load or API call, and they are recorded in the audit log.
- No assistant or MCP tool creates, edits or deletes roles.
get_workspace_contextlists them with their permissions, andmanage_teamassigns an existing role to a member.
Link: /company/roles. Mate: navigate and highlight_element with nav-company-roles; rows have no target, so Mate names them. Once the editor is open, role-modal-save points at Save, disabled on your own role, and role-modal-delete at Delete where it is offered.
Webhooks page: webhook settings
The link to the webhooks page opens the webhook settings of the workspace. Route /company/webhooks, sidebar id #nav-company-webhooks. Outbound event subscriptions; payloads, signatures, retries and the rules for every field are on Webhooks. Opening the page needs API & Webhooks read access All; adding, editing and deleting need API & Webhooks set to Manage Yes. Anyone who can open the page can also open a webhook's dialog read-only; without Manage, the secret and each header value show as ********, with the header names visible. Available on every plan and self-hosted.
| Action | Where | Anchor id | What happens |
|---|---|---|---|
| Create webhook | Webhooks toolbar, Add | #company-webhooks-add | Opens the Webhook dialog with URL, Description, Events, Secret, Custom headers, Body template and Enabled |
| Fill in the webhook | Webhook dialog | #webhook-modal-url / #webhook-modal-description / #webhook-modal-events / #webhook-modal-secret / #webhook-modal-headers / #webhook-modal-body-template / #webhook-modal-enabled | The fields in that order; read-only without Manage |
| Save webhook | Webhook dialog footer | #webhook-modal-save / #webhook-modal-reset | Subscribes the URL to the chosen events; clearing Enabled pauses deliveries without deleting the webhook |
| Delete webhook | Webhook dialog, Delete | #webhook-modal-delete | Removes the subscription after a confirmation; past deliveries stay in Recent Deliveries |
| Search, filter, display options | Webhooks toolbar | #company-webhooks-search / #company-webhooks-filter / #company-webhooks-display-options | List controls; search matches the URL |
| Layout | Display-options popover | #company-webhooks-layout-table / #company-webhooks-layout-board | Table only; the board control is disabled |
Link: the link to the Webhooks page, /company/webhooks. Mate: navigate and highlight_element with nav-company-webhooks; highlight_element also takes the toolbar ids in this table, company-webhooks-add only for roles with Manage. In the Webhook dialog (prerequisite company-webhooks-add, or the user opens a row) it takes the field ids in this table without #, plus webhook-modal-save and webhook-modal-reset for roles with API & Webhooks Manage (Reset once something changed), and webhook-modal-delete for Delete on a saved webhook, also for roles with Manage. Rows have no target, so Mate names them.
Where is the Recent Deliveries page, the webhook delivery log?
The Recent Deliveries page is the webhook delivery log. Route /company/webhook-deliveries, sidebar id #nav-company-webhook-deliveries. Opening it needs Read access All on API & Webhooks. One row per delivery with URL, Event, Element, Status, Status Code and Created at, newest first; search matches the event and the URL. Click a row to open Event Details with the status (Pending until the first attempt finishes, then Delivered or Failed), the status code, the response message and the event payload. Payloads cover every record in the workspace, including records the viewer's role cannot open.
Resend (#webhook-delivery-modal-resend) in Event Details appears on delivered and failed deliveries for roles with Manage Yes on API & Webhooks. It sends the stored payload again as a new delivery, with the URL's current secret, headers and body template; the original row stays unchanged.
| Action | Where | Anchor id | What happens |
|---|---|---|---|
| Search, filter, display options | Deliveries toolbar | #company-webhook-deliveries-search / #company-webhook-deliveries-filter / #company-webhook-deliveries-display-options | List controls |
| Layout | Display-options popover | #company-webhook-deliveries-layout-table / #company-webhook-deliveries-layout-board | Table only; the board control is disabled |
Link: the link to the Recent Deliveries page, /company/webhook-deliveries. Mate: navigate and highlight_element with nav-company-webhook-deliveries; highlight_element also takes the toolbar ids in this table, and webhook-delivery-modal-resend for Resend once the user has opened a delivery row. Rows and the rest of Event Details are not highlight targets, so Mate names them.
Audit Logs page: who changed what and when, and where is the change history?
The Audit Logs page is the audit log of the workspace, its change history: who changed which record or setting, and when. Route /company/audit-logs, sidebar id #nav-company-audit-logs. Changes to records and workspace configuration with who, what and when, as a field-level diff for updates and a snapshot for creates and deletes. Role edits are included as a diff, member and Settings saves as a snapshot. Messaging events are not logged, and webhook secrets and header values are redacted.
Reading it needs Audit Log read access All on your role, or Admin; the same permission shows the change history on record pages. The list covers the whole workspace, including records the reader's role cannot open. Search matches the element ID only, and the filters are event and creation date; click a row for Audit Log Details with the event data. Entries are not deleted on a schedule. There is no export; the dashboard activity timeline shows the same changes as a feed. Available on every plan and self-hosted.
| Action | Where | Anchor id | What happens |
|---|---|---|---|
| Search, filter, display options | Audit toolbar | #company-audit-logs-search / #company-audit-logs-filter / #company-audit-logs-display-options | List controls |
| Layout | Display-options popover | #company-audit-logs-layout-table / #company-audit-logs-layout-board | Table only; the board control is disabled |
Link: the link to the audit logs, the Audit Logs page, /company/audit-logs. Mate: navigate and highlight_element with nav-company-audit-logs; highlight_element also takes the toolbar ids in this table. Rows and Audit Log Details are not highlight targets, so Mate names them.
Tips for agents
- Every section above closes with its route and the ids Mate can use; for a full link, put the route after the origin of the
urlthatsearch_docs,get_docs_pageandfetchreturn. Subscription Required and Legal documents updated have no target and Mate is not available there, so pass on their link. #nav-companyonly expands or collapses the sidebar group; it opens no page itself. The hosted assistant'snavigateopens every page here that the user's role can open through its sidebar id, andnav-companyitself opens Settings; a toolbar id also works and opens its page. For a page the role cannot open,navigaterefuses instead of landing on the Dashboard. It can highlight the sidebar entries, the toolbar controls, the Subscription buttons and plan cards, the Settings fields, totals, Data model selects and form buttons, and the dialog fields and buttons listed above.list_ui_targetslists targets whatever the user's role or plan, so an Add or billing target can be missing on screen.- Dialog targets (every
invite-modal-*,member-modal-*,role-modal-*andwebhook-modal-*id, andwebhook-delivery-modal-resend) exist only while their dialog is open.list_ui_targetsnames the prerequisite:company-members-addfor Invite User,invite-modal-tab-emailforinvite-modal-emailsandinvite-modal-send,company-roles-addforrole-modal-saveandrole-modal-reset, andcompany-webhooks-addfor the webhook fields,webhook-modal-saveandwebhook-modal-reset. The User dialog, Event Details,role-modal-deleteandwebhook-modal-deleteneed a row the user opens, andlist_ui_targetsnames that row as the prerequisite (a member row,a delivery row,a role row,a webhook row); rows have no target, so ask the user to click it first. Mate cannot click a row, fill a field or submit a dialog. - Rows never carry ids. Navigate to a page via its URL (for example
/company/webhooks) and open a row by clicking it. Edits happen in dialogs, not in a drawer. - Prefer MCP tools over clicking when a tool exists:
update_workspace_settingschanges the currency and the Data model names,manage_teaminvites and updates members,manage_webhooksmanages webhooks and deliveries, andget_workspace_contextlists the company settings and the roles with their permissions. - No tool reads or changes the subscription, the stage field or the invitation link, and no tool changes role permissions (
get_workspace_contextonly reads them). For "which plan are we on" or "how do I cancel", send the user to My Company › Subscription.