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.

PageRouteNavigate targetHighlight targets on the pageExplained in
Subscription/company/subscriptionnav-company-subscriptioncompany-subscription-manage, company-subscription-refresh, company-subscription-plan-pickerSubscription
Settings/company/settingsnav-company-settings, also nav-companycompany-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-resetSettings
Members/company/membersnav-company-memberscompany-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-resetMembers
Roles/company/rolesnav-company-rolescompany-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-deleteRoles
Audit Logs/company/audit-logsnav-company-audit-logscompany-audit-logs-search, company-audit-logs-filter, company-audit-logs-display-options, company-audit-logs-layout-table, company-audit-logs-layout-boardAudit Logs
Webhooks/company/webhooksnav-company-webhookscompany-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-deleteWebhooks
Recent Deliveries/company/webhook-deliveriesnav-company-webhook-deliveriescompany-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-resendRecent Deliveries
Subscription Required/subscription-expiredNoneNone, Mate is not available thereTrial end or failed payment
Legal documents updated/legal-updateNoneNone, Mate is not available thereMembers 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.

FieldWhat it shows
PlanThe 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 endsThe date the free trial ends. Shown only while the status is Trial.
Current period endsThe 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 seatsThe 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.

StatusMeaningEffect on the workspace
TrialThe free trial: 7 days with Pro features, starting at sign-upEverything works until Trial ends
ActivePaid and currentEverything the plan includes works
Past DueLemon Squeezy reports an overdue paymentPages stay open, but the Inbox and messaging, connecting channels, shared accounts and the hosted assistant are refused, and hosted AI credits drop to 0
CancelledThe subscription was cancelledSame as Past Due
UnpaidLemon Squeezy reports the subscription as unpaidEvery page redirects to Subscription Required
ExpiredThe subscription has endedEvery 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.

PlanPrice per seat and monthConnected accounts per userRoutines per userInbox and messagingShared accounts
Starter€1201NoNo
Pro€2915YesNo
Business€693unlimitedYesYes
EnterpriseOn requestunlimitedunlimitedYesYes

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:

WhoWhat the page offers
Roles that can manage Company, and Admin, on Starter, Pro or BusinessThe plan picker to start a new checkout, plus Contact Support
The same roles on EnterpriseA 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:

  1. Within the first day, an email offers to extend the trial.
  2. After one day, every connected messaging account in the workspace is deleted.
  3. After 3 to 4 days, a reminder email follows.
  4. 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.

FieldWhat 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 typeSelectAvailable names
Contacts#terminology-contactContacts, People, Clients, Leads
Organizations#terminology-organizationOrganizations, Companies, Accounts
Deals#terminology-dealDeals, Opportunities, Projects, Jobs
Services#terminology-serviceServices, Products, Offerings, Packages
Tasks#terminology-taskTasks, 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.

ActionWhereAnchor idWhat happens
Invite membersMembers toolbar, Add#company-members-addOpens the Invite User dialog
Share the invitation linkInvite User, tab Share link, open when the dialog opens#invite-modal-tab-link / #invite-modal-link / #invite-modal-copy-linkShows the Invitation link with a copy button and its expiry date
Invite by emailInvite User, tab Send emails, address input, Send invitations#invite-modal-tab-email / #invite-modal-emails / #invite-modal-sendEmails the workspace link to up to 20 addresses
Edit or approve a memberClick the row, User dialogFields in the table below; #member-modal-save / #member-modal-resetSave applies the role, status and profile fields; Reset discards changes
Search, filter, display optionsMembers toolbar#company-members-search / #company-members-filter / #company-members-display-optionsList controls; filters cover status, updated at and created at
LayoutDisplay-options popover#company-members-layout-table / #company-members-layout-boardTable 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:

FieldIdRules
Email#member-modal-emailRead-only; it identifies the member
First Name, Last Name#member-modal-first-name, #member-modal-last-nameRequired
Country#member-modal-countryRequired
Role#member-modal-roleRequired; lists every role, the built-in one as Admin
Avatar URL#member-modal-avatar-urlOptional link to a publicly accessible image
Status#member-modal-statusActive 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.

ActionWhereAnchor idWhat happens
Add roleRoles toolbar, Add#company-roles-addOpens the Role editor with the defaults for a new role
Edit roleClick a rownoneOpens the Role editor; Save and Reset sit in its footer
Save or discardRole editor footer#role-modal-save / #role-modal-resetSave applies the name, description and permissions; Reset discards changes; on the Admin role and on your own role Save is shown disabled
Delete roleRole editor, Delete#role-modal-deleteOffered only for a saved custom role that no member has, with a confirmation
Display optionsRoles toolbar#company-roles-display-optionsList controls
LayoutDisplay-options popover#company-roles-layout-table / #company-roles-layout-boardTable 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.
RowManageRead accessNew roleWhat it controls
API & WebhooksYes, NoAll, NoneNo, NoneRead 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 & RolesYes, NoAll, AssignedNo, AssignedRead opens Members (Assigned: only your own row) and Roles. Manage invites, approves and edits members, and creates, edits and deletes roles.
CompanyYes, NoNo choice, always grantedNoEvery 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 LogNo choiceAll, NoneNoneAll opens Audit Logs and shows the change history on record pages and in activity timelines.
Tasks, Contacts, Organizations, Deals, ServicesYes, NoAll, Assigned, NoneNo, AssignedRead decides whether the sidebar entry appears and which records the member sees. Manage creates, edits and deletes them.
Inbox messages (Cloud only)Yes, NoAll, NoneNo, NoneRead 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, NoAll, Assigned, NoneNo, AssignedAll 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_context lists them with their permissions, and manage_team assigns 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.

ActionWhereAnchor idWhat happens
Create webhookWebhooks toolbar, Add#company-webhooks-addOpens the Webhook dialog with URL, Description, Events, Secret, Custom headers, Body template and Enabled
Fill in the webhookWebhook dialog#webhook-modal-url / #webhook-modal-description / #webhook-modal-events / #webhook-modal-secret / #webhook-modal-headers / #webhook-modal-body-template / #webhook-modal-enabledThe fields in that order; read-only without Manage
Save webhookWebhook dialog footer#webhook-modal-save / #webhook-modal-resetSubscribes the URL to the chosen events; clearing Enabled pauses deliveries without deleting the webhook
Delete webhookWebhook dialog, Delete#webhook-modal-deleteRemoves the subscription after a confirmation; past deliveries stay in Recent Deliveries
Search, filter, display optionsWebhooks toolbar#company-webhooks-search / #company-webhooks-filter / #company-webhooks-display-optionsList controls; search matches the URL
LayoutDisplay-options popover#company-webhooks-layout-table / #company-webhooks-layout-boardTable 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.

ActionWhereAnchor idWhat happens
Search, filter, display optionsDeliveries toolbar#company-webhook-deliveries-search / #company-webhook-deliveries-filter / #company-webhook-deliveries-display-optionsList controls
LayoutDisplay-options popover#company-webhook-deliveries-layout-table / #company-webhook-deliveries-layout-boardTable 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.

ActionWhereAnchor idWhat happens
Search, filter, display optionsAudit toolbar#company-audit-logs-search / #company-audit-logs-filter / #company-audit-logs-display-optionsList controls
LayoutDisplay-options popover#company-audit-logs-layout-table / #company-audit-logs-layout-boardTable 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 url that search_docs, get_docs_page and fetch return. Subscription Required and Legal documents updated have no target and Mate is not available there, so pass on their link.
  • #nav-company only expands or collapses the sidebar group; it opens no page itself. The hosted assistant's navigate opens every page here that the user's role can open through its sidebar id, and nav-company itself opens Settings; a toolbar id also works and opens its page. For a page the role cannot open, navigate refuses 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_targets lists 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-* and webhook-modal-* id, and webhook-delivery-modal-resend) exist only while their dialog is open. list_ui_targets names the prerequisite: company-members-add for Invite User, invite-modal-tab-email for invite-modal-emails and invite-modal-send, company-roles-add for role-modal-save and role-modal-reset, and company-webhooks-add for the webhook fields, webhook-modal-save and webhook-modal-reset. The User dialog, Event Details, role-modal-delete and webhook-modal-delete need a row the user opens, and list_ui_targets names 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_settings changes the currency and the Data model names, manage_team invites and updates members, manage_webhooks manages webhooks and deliveries, and get_workspace_context lists 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_context only reads them). For "which plan are we on" or "how do I cancel", send the user to My Company › Subscription.