Skip to content
XICBOT

Settings

Deutsch
Documentation · Conversations and team

Team, roles and audit log

Invite people, assign and change roles, remove members, keep an eye on seats and check in the audit log who did what in the account.

In plain language

This page explains team and audit log. Under Team you decide who works in the account. You invite people and give them a role. The role decides what a person may do. You can change roles and remove people. The audit log shows who did what in the account and when.

Last updated

All documentation topics

Under Team at app.xicbot.de/team you decide who works in the account and with which role. The Audit log at app.xicbot.de/protokoll shows who triggered which action in the account and when. This page covers the fields, messages and limits of both areas.

Where to find Team and the audit log

Team sits in the sidebar in the Administration group, together with Billing and Account. Every role can open the page: everyone sees members, seats and open invitations, but only Administration and Owner can change anything there. Audit log sits in the Records group and only appears from the Administration role upwards. Opening its address directly with a lower role shows “This needs at least the Administration role.”

The Help button in the header opens this page in a new tab from both screens. How the sidebar and header are laid out is described under The application.

Roles

Each person holds one role in an account. The four levels build on each other: each can do everything the level below it can. The table follows the What the roles can do box on the Team page.

RoleWhat it allows
ReadView assistants, knowledge, tools, conversations, cases and analytics without changing anything. Conversations appear anonymised.
EditAdditionally: create and change assistants and start check runs, work on conversations, inbox rules, tools up to your own level, maintain knowledge with sources, question-answer pairs, probe questions and search weights, catalogue and cases, and start and accept the setup.
AdministrationAdditionally: invite people, change roles and remove people, API keys and webhooks (create and change where the plan includes the API; revoke and delete even without it), activity log, retention periods, shop connection and visitor blocks. Also delete assistants and conversations, generate a new widget key, change address, access token and minimum role of tools, and object to a sub-processor.
OwnerAdditionally: accept the data processing agreement and confirm the sub-processor list, change the handover address, order the weekly report, view conversations in plain text, export the account’s data and delete the account. The owner role is not assigned here.
  • The roles you can assign are Read, Edit and Administration. A user with Administration can assign any of these three, including Administration itself.
  • The Owner is whoever created the account. This role cannot be assigned or changed on the Team page, and the owner cannot be removed there.
  • You cannot change your own role. Another person with Administration, or the Owner, does that for you.
  • Roles apply per account. Someone who belongs to several accounts can hold a different role in each; see Working in several accounts.

Messages when the role is too low

When someone attempts something their role does not allow, the message names the missing level:

Required levelMessage
Edit“With the Read role this area is view-only. Changes need at least the Edit role.”
Administration“This needs at least the Administration role.”
Owner“Only the account owner can do this.”
other missing permission“Your account does not have access to this area.”

Seats

The Seats card shows how many seats are taken and how many the plan includes, for example “3 of 10 taken”. Every person listed under Members and every open invitation takes a seat, even before the invitation is accepted. Removed people and expired or withdrawn invitations do not count.

PlanSeats
Start3
Pro10

What else each plan includes is described under Plans, quotas and billing; prices are listed under Pricing.

StatusShown on the cardEffect
Seats free“2 of 3 taken”Send invitation can be used.
All seats taken“All seats are taken. Withdraw an invitation or move to a larger plan.” with the Change plan link to the section of the same name on the billing pageSend invitation is greyed out.
Count not available“The count could not be measured.”An invitation is refused with “The service reported an error. Please try again later.”

If the limit is reached at the moment you press Send invitation, for instance because a colleague has just invited someone, the service refuses and names the plan and the numbers, for example “The Start plan limit is reached: 3 of 3. See Billing for the overview.” To free a seat, withdraw an open invitation or remove a person.

Invite someone

Only Administration and Owner see the Invite someone card. It has two fields:

FieldRequiredRules
Email addressyesA valid address of up to 190 characters. Surrounding spaces, capital letters and any suffix after “+” are dropped: Anna+Team@example.com becomes anna@example.com, and that is where the invitation goes.
RoleyesRead, Edit or Administration. The default is Read.
  1. Step 1

    Enter address and role

    Enter the address under Email address and choose the level under Role.

  2. Step 2

    Send the invitation

    Press Send invitation. While the service is working, the button reads “Sending …”.

  3. Step 3

    Check the confirmation

    You then see “The invitation is on its way.”, the address field is cleared and the invitation appears under Open invitations. The Audit log gains a Person invited entry. If the message did not go out, you see “The invitation has been created, but the message did not go out. Withdraw the invitation and invite again.” instead. The invitation is still listed and takes up its seat.

Messages when inviting

CauseMessage
Address missing, invalid or longer than 190 charactersA message about the Email address field below the button; no invitation is created.
The person already belongs to this account, even if their account address is written differently, for example with a suffix after “+”“Email address already belongs to this team.”
An invitation is already open for this address“Email address already has an open invitation.”
More than 5 invitation attempts within a minute“Too many attempts. Please wait a moment.”
All seats taken“The Pro plan limit is reached: 10 of 10. See Billing for the overview.”
Seats could not be counted“The service reported an error. Please try again later.”
Audit log entry could not be written“Not saved: the entry in the audit log could not be written. Please try again.”

Messages about a field appear in the Invite someone card below the button; all others appear at the top of the page below the introduction. The limit of 5 attempts per minute applies to each signed-in person separately.

The invitation email

The invitation is sent by email to the address you entered, in the language stored with the inviting person's account, German or English; if none is set, in German. The link opens the acceptance page in the same language. The email contains:

  • the subject “Invitation to join the … team” with your account name
  • the name of the person who invited, if they have entered one
  • a Role line with the assigned role
  • the sentence “If you do not have an account yet, you create one when accepting; an existing account is linked to the team.”
  • the Accept invitation button
  • a note that the invitation is valid for 7 days and issued personally to the invited address
  • the sentence “Not expecting this invitation? Then ignore this email – nothing happens without the link.”

Accepting an invitation

The link in the email leads to the Accept invitation page. At the top it names the account, the invited address and the role. What the page offers next depends on whether you are signed in and whether an account already exists for the address. After acceptance with a new account it takes you to the Team page; after acceptance while signed in it switches into the inviting account. If only the switch or loading the page fails afterwards, “You are now part of the team.” stays on screen and the Overview button takes you on; the invitation has then already been accepted and cannot be accepted a second time. The inviting account's audit log then shows Invitation accepted. All messages of the acceptance page are covered in Sign-in and access.

  • No account yet: you create one on the page with Your name (optional), Password and Repeat password, then press Accept invitation. The password needs at least 12 characters, including letters and digits. The address is fixed and counts as confirmed. The new account works in the inviting account straight away and is listed there under Members.
  • Account exists, not signed in: the page shows “An account already exists for this address. Sign in and you will be brought back here to accept the invitation.” and a Sign in button. After signing in, the app brings you back to this page; there you press Accept invitation.
  • Already signed in: the page shows the Accept invitation button. Then “You are now part of the team.” appears, the app switches into the inviting account and rebuilds on the Overview; from then on you are listed there under Members. You reach your previous account through Switch account. If the inviting account is already your active account, the Team page opens instead.
  • Signed in with an address other than the invited one: the page shows “This invitation belongs to a different address. Sign in with the invited account.” A suffix after “+” in your account's address does not count as a different address.

Open invitations

Open invitations lists every invitation that has not been accepted, withdrawn or expired, oldest first. Each row shows the address, the role and Valid until with the expiry date. If none is open, the list reads “No invitation is open.” If the team cannot be loaded when the page opens, “The list could not be loaded.” with the reason and the Load again button appear instead of seats, inviting, members and invitations; the overview of roles stays. If only the reload after an action fails, the last state stays and the same message appears above it.

  • Only Administration and Owner see Withdraw. The invitation stops working at once, its seat is freed and “The invitation has been withdrawn.” appears. The audit log shows Invitation revoked.
  • Anyone who opens the email link afterwards sees “This invitation has expired or was withdrawn. Please ask for a new one.”
  • After 7 days an invitation expires on its own, drops out of the list and frees its seat.
  • If the invitation has been accepted, has expired or was withdrawn in another window in the meantime, the page reloads the list and reports “This entry no longer exists. The list has been reloaded.” If the reload fails as well, “This entry no longer exists. Reload the page to see the current state.” appears instead; the list itself names the reason the loading failed with “The list could not be loaded.” and the Load again button.

Members

The Members list is sorted by email address. Each row shows the name if one has been entered, otherwise the address, with the address underneath. In your own row the role name is followed by “(You)”. If the account has more than 200 people, the list shows the first 200, with “The first 200 people are shown.” above it.

Administration and Owner see a role selector and a Remove button in every row except their own and the owner's. Everyone else only sees the role name.

  • A new role takes effect as soon as you select it; there is no save button.
  • You then see “The role has been changed.”, and the audit log gains a Role changed entry.
  • If the service refuses, the message appears and the selector returns to the previous role.
  • While a change is in progress, selectors and buttons are disabled.
CauseMessage
Your own role“You cannot change your own role here.”
The owner's role“The owner cannot be changed or removed.”
Your role is below Administration“This needs at least the Administration role.”
The person no longer belongs to this account; the list reloads“This entry no longer exists. The list has been reloaded.”
Audit log entry could not be written“Not saved: the entry in the audit log could not be written. Please try again.”

Removing someone

After Remove, a dialog asks “Remove this person from the team? Open sessions end immediately.” and shows the address. Cancel closes it without changes, Remove carries out the action; you then see “This person no longer belongs to the account.” If the person no longer belongs to the account, for example because they were removed in another window, the page reloads the list and reports “This entry no longer exists. The list has been reloaded.” If the reload fails as well, “This entry no longer exists. Reload the page to see the current state.” appears instead; the list itself names the reason the loading failed with “The list could not be loaded.” and the Load again button. Removing someone has these effects:

  • The person loses access to this account and their seat is freed.
  • If they are currently working in this account, their sessions end at once, on every device. If they belong to another account, they continue there with the role they hold in that account after signing in.
  • If they are currently working in another account, their session and work there stay untouched. They can no longer switch into this account.
  • If they then belong to no account at all, their login is closed. They accept a new invitation to their address as if with a new account: with a new password, without their previous two-factor sign-in and without any stored security keys.
  • The audit log shows Member removed.

Working in several accounts

A person can belong to several accounts, with a separate role in each. As soon as that is the case, the Switch account control appears. After switching, the role, team and audit log of the chosen account apply, and that account's audit log usually shows Account switched. The switch still applies if this entry cannot be written. Details are in Sign-in and access.

Audit log

The Audit log lists actions in the account with time and person, such as sign-ins, team changes, published assistants or viewed conversation content. Viewing lists and masked conversations and retrievals with an API key are not recorded. A knowledge source created with an API key, on the other hand, is usually recorded as Knowledge source created. Entries cannot be edited or deleted there; older entries are removed by the retention period you set. It is visible to Administration and Owner.

ColumnContent
TimeDate and time of the entry.
ActionThe name of the action, such as Role changed. Hovering over it shows the technical name, such as team.role_changed.
SubjectThe type of object affected, such as Invitation, User, Account or Assistant; “-” if none is affected.
WhoThe email address of the person who acted, even if they have since been removed from the team. If a knowledge source was created with an API key, the key appears instead, with the name it had at that time, for example API key “Shop”. “-” if neither a person nor a key is behind the entry, as with the retention clean-up.
DetailsThe values the action recorded, each field with its technical name, such as reason for a reason given or rows for a number of rows; yes/no values appear as Yes or No. “-” if nothing was recorded.
  • The newest entries are at the top, 25 per page. The total appears above the table, for example “120 entries”.
  • With more than one page, use Back and Next; between them you see the position, for example “Page 2 / 5”.
  • The Filters card appears once the account has more than one kind of entry. Action only offers actions that already occur in your account; all clears the filter. Each new filter starts on page 1.
  • Without entries, the page reads “No entries yet.” with a button to Legal and data.

Team entries

EntryTechnical nameSubjectWritten when
Person invitedteam.invitedInvitationan invitation is sent
Invitation revokedteam.invitation_revokedInvitationan open invitation is withdrawn
Invitation acceptedteam.invitation_acceptedInvitationthe invited person accepts
Role changedteam.role_changedUsera member's role is changed
Member removedteam.member_removedUsera person is removed
Account switchedtenant.switchedAccountsomeone switches into this account; the entry is written in the target account

Other entries

Other areas write to the audit log too. A selection, each with the page that describes the area:

AreaEntries (selection)
Account and sign-in securitySigned in, Signed out, Password changed, Two-factor enabled, Security key added
AssistantsAssistant created, Version published, Widget key renewed, Check run performed
KnowledgeKnowledge source created, Knowledge source deleted, Question-answer pair changed, Probe questions run, Search weights changed
ConversationsConversation content viewed, Conversation exported, Conversation deleted, Attachment opened, Visitor blocked, Visitor block lifted
Inbox and routingRouting rule created
ToolsTool created, Tool changed, Tool deleted
API keys and webhooksAPI key created, API key revoked
Privacy and legalData processing agreement accepted, Data exported, Retention periods changed, Retention period applied

Access to conversations and exports

Viewing conversation content in plain text, downloading data and deleting a conversation also show up in the Audit log. These entries tell you who accessed your visitors' content and when:

EntryTechnical nameSubjectWritten when
Conversation content viewedconversation.revealedConversationsomeone gives a reason and chooses Show plain text on a conversation
Conversation exportedconversation.exported“-” for the list, Conversation for the history of a single conversationthe conversation list or the history of one conversation is downloaded as CSV
Conversation deletedconversation.deletedConversationa conversation is deleted
Data exportedprivacy.export“-”the data export for the whole account is downloaded
  • For plain-text viewing, plain-text exports and deletions, the entry is written before the action takes place. If it cannot be written, no plain text is released and the conversation is kept; the API then responds with 500 and not_logged.
  • A masked export is delivered even if its entry cannot be written.
  • Whether an export contained plain text, which reason was given and how many rows it held is shown in the Details column of the Audit log as reveal, reason and rows. GET /api/v1/activity returns the same values in the data field.
  • How plain text, exports and deletion work in detail is explained under Conversations; the data export for the whole account is covered in Privacy and legal.

How far back the audit log reaches

You set the period under Legal and data, in the Retention periods section, in the Audit logs field: a number from 1 to 3650 days. If the field is empty, it reads “Nothing is deleted” and entries are kept. Zero days is not a permitted value.

  • The same period applies to Login events; they cannot be set separately. Delivery records for webhooks and emails follow it as well.
  • Older entries are removed by a job that starts once an hour. Before deleting, it writes Retention period applied, without a person; Details shows the kind of data as object and the number of deleted rows as rows. If this entry cannot be written, the job does not delete that part, and it usually follows with the next run. If a larger backlog is due, the job deletes it in parts and writes a separate entry for each part.
  • Every change to the periods is recorded as Retention periods changed.
  • Retention periods can be changed by Administration and Owner.

All other periods and what happens on deletion are described in Retention and deletion.

API

Team and the audit log are also available through the API at https://app.xicbot.de/api/v1/. All endpoints here require authentication as described in API authentication and a confirmed address. Without confirmation the service answers 403 with email_unverified; with too low a role it answers 403 with role_too_low and the required role in required.

GET /api/v1/team

Members with id, name, email, role, available and available_at, up to 200 sorted by address, plus total and capped. Also the open invitations with id, email, role, expires_at and created_at, and the seat status in seats.

Authentication
Signed in, confirmed address

POST /api/v1/team/invitations

Sends an invitation. Fields email (required, up to 190 characters) and role (viewer, editor or admin). Returns 201 with the invitation. Refused with 422 and validation.already_member or validation.invitation_open on the email field, with 402 and plan_limit_reached including limit (here seats), allowed, used, plan and plan_name, or with 503 and plan_limit_unmeasured. If the audit log entry cannot be written, the change does not take effect: 500 with not_logged.

Authentication
Signed in, Administration or higher
Rate limit
5 per minute per person

DELETE /api/v1/team/invitations/{id}

Withdraws an open invitation; the response has revoked set to true. If the invitation is no longer open, the service answers 404 with not_found. If the audit log entry cannot be written, the change does not take effect: 500 with not_logged.

Authentication
Signed in, Administration or higher

PATCH /api/v1/team/members/{id}

Sets a member's role, field role as for invitations; returns the member in member. Refused with 422 and not_self for yourself, 422 and owner_protected for the owner, or 404 and not_found if the person does not belong to this account. If the audit log entry cannot be written, the change does not take effect: 500 with not_logged.

Authentication
Signed in, Administration or higher

DELETE /api/v1/team/members/{id}

Removes a person from the account; if they are currently working in it, their sessions end. The response has removed set to true. Refusals as for changing the role. If the audit log entry cannot be written, the change does not take effect: 500 with not_logged.

Authentication
Signed in, Administration or higher

POST /api/v1/availability

Sets your own availability for handovers, field available with true or false; returns yourself in member. What it is for is described under Inbox and routing.

Authentication
Signed in, confirmed address

GET /api/v1/activity

The audit log, 25 entries per page, newest first. Parameters page (1 to 1000) and action (up to 80 characters). The response carries entries with id, time, action, who, who_kind, subject_type, subject_id and data, plus actions, total, page and pages. who is the email address of the person who acted or the name of an API key; who_kind states which with user or api_key and is null if there is neither.

Authentication
Signed in, confirmed address, Administration or higher

Accepting an invitation via team/invitations/accept and the public invitation endpoints are covered in Sign-in and access. Error format and rate limits are described in API basics and API limits, and the endpoints in context in Conversation and management endpoints.

Frequent questions

Why is the Send invitation button greyed out?

All seats on your plan are taken, and open invitations count towards them. Withdraw an open invitation or remove a person. A larger plan brings more seats, see Plans, quotas and billing. The button is also briefly disabled while an invitation is being sent.

How do I hand the Owner role to someone else?

Not on the Team page: the Owner is whoever created the account, and the role cannot be assigned or changed there. The highest role you can assign is Administration; what remains reserved for the owner is shown in the table under Roles.

The invitation did not arrive. What now?

Check the address under Open invitations; any suffix after “+” is dropped. Then withdraw the invitation and invite again. The new invitation carries a new link and is valid for another 7 days.

Why can I not change my own role?

Your own row has no selector, so that nobody accidentally removes the rights they would need to undo it. Another person with Administration, or the Owner, can change your role.

Why do I not see the Audit log item?

Audit log only appears in the sidebar from the Administration role upwards. If your email address is not confirmed yet, the item is shown but the page stays locked until it is.

Does an open invitation already take a seat?

Yes. Every open invitation takes a seat until it is accepted, expires or is withdrawn.

Something still unclear?

Tell us which page and which step you mean. We reply personally.

Enquiry in three steps

  1. 1. Topic
  2. 2. Your case
  3. 3. Contact

What is this about?

One click is enough, everything else is optional.

Tell us briefly about your case

Everything in this step is optional. It helps us reply with something concrete straight away instead of asking back.

Enquiries per month, roughly (optional)
When should it start? (optional)
How can we reach you?

Name and email address are enough. We reply personally.

We use your details to handle your enquiry. More on this in the privacy policy.