Home Administrator's First Steps
🌱

Administrator's First Steps

Ian Kraskoff
Tech
By Ian Kraskoff and 3 others
• 12 articles

How to Open a Proactive Ticket via Email and How to Send Emails / Communications

https://youtu.be/HtTgEQe0g4c In this article, you will understand how to open a proactive ticket for a client via email, which can be used to open an internal ticket or to carry out a campaign to send information to clients. For this to work, it is important that you have an email inbox set up. If you don't know how to do this, we have a FAQ about it here. It is possible to do this with an existing email inbox (used for other channels), but we recommend using a separate email inbox for better control. First, you need to select the contact for whom you want to open the ticket. To do this, go to the Contact option. Image After selecting the contact, click on the New Message button. Image Image Here, you can choose the email inbox and set the subject. Image It is also possible to add people in CC or BCC. Image Write your message and, if you want, use the templates (shortcuts) you have already created. To access the shortcuts, just press the "/" key. If you need to attach files, that is also possible. Image When you are ready, click on Send Message. Image To view the ticket you just opened, go to Conversations and click on the inbox. Image Image All the tickets you have sent will be available here. Image Image Image From there, you can respond to this ticket normally or wait for the client to respond. It is worth remembering that by sending a proactive ticket, you are opening a new ticket, which will have a new ticket number. If you do not want the ticket to be automatically responded to by ClaudIA if the client responds, it is best that it is sent to a specific inbox for proactive sends.

Last updated on Aug 09, 2025

Setting Up WhatsApp with Embedded Sign Up in Cloud Chat

In this tutorial, you'll learn how to create a new inbox using WhatsApp in Cloud Chat. :::error Migrating an existing number? Read the migration guide first — this is mandatory. If the number you want to connect is already active on another WhatsApp solution provider (BSP) or on the WhatsApp Business App, do not start the embedded signup flow before reading: Migrating WhatsApp to Cloud Chat from another support platform Skipping this step can result in: - Permanent loss of the WhatsApp number - Indefinite blocking of the number by Meta - Verification failures and stuck migrations - Inability to release the number from the previous provider - Having to redo the entire setup from scratch The migration guide walks you through every Meta prerequisite (WABA ownership, Two-Step Verification, Business Manager status, payment method, message history) that must be validated before the embedded signup is triggered. ::: Step 0: Before we begin, gather the following information: - The legal name of your company and your desired WhatsApp display name. - The full URL of your business website. - Your company's business email address. - Administrator permissions for your company's Meta Business Suite. - Access to the phone number that will be integrated. - Please ensure that the phone number can receive calls to complete Meta's verification. - Deactivate 2FA on your old WABA number. Link with Meta's migration tips for WABA https://developers.facebook.com/docs/whatsapp/solution-providers/support#migrating-business-customer-assets Step 1: Navigate to Settings. Step 2: Go to the Inboxes section. Step 3: Click Add Inbox: Step 4: Select WhatsApp: Step 5: On the WhatsApp Channel screen, choose Embedded Signup as provider, set your preferred Inbox Name, then click Sign in with WhatsApp to start the embedded flow: Step 6: In the Facebook pop-up, log in with your Meta developer/manager account: Step 7: After login, click Continue: Step 8: Select your Meta Business Portfolio and click Next: Step 9: Choose Create a WhatsApp Business Account and click Next: Step 10: Enter your desired WhatsApp Business Account Name, Display Name, and select a valid Category: Step 11: Add a new number by choosing Add a new number, then enter your business phone number and verify it. If it's a landline or digital number, verify via Phone call: Step 12: After successfully verifying your number, click Finish to complete your inbox setup. Note: If you haven't added a payment method to your business portfolio, click Add payment method to be redirected to billing settings. A valid payment method is required to send proactive WhatsApp messages. Step 13: Add agents to your new inbox: Step 14: After setting up the agents, click Add agents. Your inbox is now ready to send and receive WhatsApp messages! :::warning Usage limitation: Messages sent or received via WhatsApp Desktop (Windows) or WhatsApp on WearOS will not be reflected in Cloud Chat. Use WhatsApp Web or the official mobile app to ensure proper synchronization. ::: For more details, refer to Meta's official documentation: - Meta Developers — Embedded Signup: Onboarding Business App users (Linked devices)

Last updated on May 08, 2026

How to Build Integrations Between Systems Using Automations and Webhooks

:::info The most up-to-date documentation for the Cloud Humans APIs is at docs.cloudhumans.com/api-reference. If this article and the reference differ, the reference prevails. ::: Summary Cloud Chat has a "Send Webhook Event" feature. With it, we can build integrations with any system that can generate a Webhook. When the system does not have a structure for creating a Webhook, only an API, it is possible to use an intermediary (examples: n8n, Zapier, Make, Plugga...) to create a Webhook and build an integration flow with the target system, such as Hubspot, Jira, and others. - note: sometimes it is necessary to build a data "enrichment" flow for the data that came from the webhook using an API (for example - IMPORTANT: This type of integration is usually created for "one-way" integrations, that is, without updating a specific field. The complexity of a "two-way" integration is higher and will generally require heavy use of Webhook + Cloud Chat API + the target system's native API/integration There are two other ways to build these integrations, but they have a higher level of complexity and different goals: - Using our API to pull all conversation data every day and feed a datalake or database: The goal is usually analytical or for recording / consolidating information - Downside: Data will not be created in real time. So it can be bad for Operations to use (example: triage in N2 / tech) - Using the Controlled Flow instead of an intermediary like n8n, Zapier, or Make: It will work in a very similar way - Downside: It will only work for conversations that go through ClaudIA Details Payload sent by the Cloud Chat Webhook When an automation triggers a webhook, it makes an HTTP POST to the configured URL, sending a JSON with the following main information: Payload structure (JSON) - event - The type of event that triggered the webhook (e.g., message_created, conversation_created, etc.) - content - The message content - message_type - Message type (incoming, outgoing, etc.) - conversation - Object with conversation data, including id, status, etc. - sender - Object with sender (contact) data, including id, name, email, phone_number, etc. - account - Object with account data, including: - idinbox - Object with inbox/channel data - contact - Data of the associated contact Practical example (based on the code) As seen in the Rasa integration example: @app.route('/rasa', methods=['POST']) def rasa(): data = request.get_json() message_type = data['message_type'] message = data['content'] conversation = data['conversation']['id'] Summary of the typical JSON that arrives at your endpoint: { "event": "message_created", "message_type": "incoming", "content": "Olá, preciso de ajuda!", "id": 12345, "conversation": { "id": 678, "status": "open", "channel": "web_widget", "contact_inbox": { ... } }, "sender": { "id": 90, "name": "JoĂŁo Silva", "email": "[email protected]", "phone_number": "+5511999999999" }, "account": { "id": 1 }, "inbox": { "id": 10, "name": "Website Widget" } } What to do if the Webhook does not contain the data you need In this situation, you will need to use the generated "id"s (e.g., inbox.id, conversation.id, sender.id) to make an API call to Cloud Chat and collect that information so you can send it to the other system. :::info The conversation.id that arrives in the webhook is the ticket number shown in the interface (e.g., #678) — the same number you use in the conversation API URLs. ::: In summary: The webhook sends a POST with JSON containing the data of the event, the conversation, the contact/sender, the account, and the inbox, along with the message content and the message type. This allows the external system (which receives the webhook) to know exactly what happened and take the appropriate action.

Last updated on Oct 02, 2026

Snooze automations with a deadline

When to use - You want an automation to put the conversation into Snoozed state and reopen it on its own after some time. - You want to choose how long the conversation stays snoozed (1 hour, until tomorrow, 1 month, custom time). - You are building a follow-up flow and need the ticket to come back at the right moment. - You ran into the most common problem: the Snooze automation keeps re-snoozing the conversation every time the customer replies ("loop"). What the action does The Snooze Conversation automation action puts the conversation into the Snoozed state. You can now choose when it should reopen: | Option | What it does | | --- | --- | | Until the next user message | Snoozes with no deadline: reopens when the customer replies | | In 1 hour | Reopens 1h after the rule runs | | Until tomorrow | Reopens tomorrow morning (9 AM) | | Until next week | Reopens next Monday (9 AM) | | For 1 month | Reopens at the start of next month (9 AM) | | Custom time | You set the duration (number + hours/days/weeks) | The deadline is always relative to the moment the rule fires (e.g., "in 1 hour" = 1h from now), never a fixed date. How each deadline is calculated Always counting from the moment the rule fires: | Option | Reopens at… | | --- | --- | | Until the next user message | No fixed time — only reopens when the customer replies | | In 1 hour | Exactly 1 hour after firing (fired at 2:37 PM → reopens at 3:37 PM) | | Until tomorrow | The next day, at 9 AM | | Until next week | Next Monday, at 9 AM | | For 1 month | The first Monday of the following month, at 9 AM | | Custom time | Now + the chosen duration (number × hours/days/weeks), capped at 1 year | :::info Details that avoid surprises: - The "until tomorrow / next week / 1 month" options always land at 9 AM (start of business hours), not at the exact time the rule ran. - "For 1 month" is not "30 calendar days" nor "the same day next month": it is the first Monday of the next month, so the ticket comes back at the beginning of a business week. - "In 1 hour" keeps the minutes of the firing time (it does not round up to the top of the hour). - These rules are identical to manual snooze — the automation simply reuses the same logic. ::: How a snoozed conversation reopens There are two paths for a snoozed conversation to reopen: 1. The customer replies — any snoozed conversation reopens automatically when it receives a new customer message (default Cloud Chat behavior, regardless of the deadline). 2. The deadline is reached — if you snoozed with a deadline, it reopens on its own when the deadline arrives. Watch out: the re-snooze "loop" This is the behavior that causes the most confusion. If you create a Snooze automation on the Conversation Updated event with a condition that stays true (e.g., a tag that remains on the conversation), it will re-snooze the conversation every time the customer replies. :::warning Why: when the customer replies, the conversation reopens. That reopening counts as an "update" to the conversation → the rule fires again → and, since the condition (the tag) is still there, it snoozes it once more. It becomes a cycle. ::: This is not a bug — it is the natural behavior of event-driven automations. The fix is to design the rule so it does not repeat. Best practices: how to avoid the loop The core idea: make the rule "consume" whatever triggered it, so the trigger only counts once. Option A — Remove the tag that triggered the rule (simplest) In the same rule, add two actions: - Snooze Conversation → (the desired period) - Remove label → the trigger tag That way, when the conversation reopens on the customer's reply, the condition (tag = X) is already false → the rule does not re-snooze. Option B — Use a custom attribute as a "step/flag" Instead of a tag, use a custom attribute (e.g., followup_step) and advance/clear it at each step. Useful when you want to control how many times the automation runs. Choose the right event - Conversation Created → fires only when the ticket is born (does not re-fire on replies). Ideal for "snooze every new ticket from a given inbox". Note: tag-based conditions usually do not work here, because tags are typically applied after creation. - Conversation Updated → required for triggers based on tag/attribute (applied after creation). Here, always use the consume the tag pattern (Option A/B) to avoid repeating. Practical example: a follow-up flow Goal: "conversation tagged follow-up → wait X, send a message, wait again, and close if the customer does not reply". - Rule 1 — Start - Event: Conversation Updated · Condition: has the tag follow-up - Actions: Snooze (e.g., for 1 day) + Remove label follow-up + Add label followup-1 - Rule 2 — Follow-up - Event: Conversation Updated · Condition: has the tag followup-1 - Actions: Send message (follow-up) + Snooze (e.g., for 1 day) + Remove followup-1 + Add followup-2 - Rule 3 — Close - Event: Conversation Updated · Condition: has the tag followup-2 - Actions: Send final message + Resolve + Remove followup-2 Each rule removes its own tag and passes the next one along — that is why there is no loop, and the sequence moves forward in a controlled way. If the customer replies in the middle, the conversation reopens and a human agent takes over normally. Notes Do's & don'ts: - ✅ Every Snooze-by-tag rule must remove the tag that triggered it (or use an attribute as a step). - ✅ To snooze new tickets, prefer the Conversation Created event. - ✅ Use the deadline when you want it to reopen on its own after some time; use "until the next message" when you want it to reopen only on the customer's reply. - ❌ Do not leave a Snooze rule on Conversation Updated with a condition that never stops being true — it will re-snooze on every reply.

Last updated on Jul 20, 2026

Attribute Permissions: who sees each custom field in the conversation

By default, every custom field is visible to all agents. Attribute Permissions is where you create exceptions: which fields are hidden and for whom. Where to find it Settings → Data → Attribute Permissions The screen is restricted to Administrator and CX Engineer profiles. If the item does not appear in the menu, the feature is enabled in your account by the Cloud Humans team — open a request with us. The Conversation and Contact tabs separate conversation fields from contact fields. The rule that explains everything: without a rule, the field appears No account starts with restrictions. As long as a field has no rule, it remains Visible to everyone. You only configure restrictions where needed — the rest remains open. Configuring a field Click on the field to open the panel. It has two parts: - Field Access — the default, applying to everyone not covered by an exception. Options: Visible or Hidden. - Exceptions — rules for specific audiences. Each exception is a phrase: audience + operator + target → access. | Audience Type | Operators | Example | |---|---|---| | All | — | All → Hidden | | Agent Type | is / is not | Agent type is Supervisor → Visible | | Team | is member of / is not member of | Agent is not a member of Fraud → Hidden | | Agent | is / is not | Agent is Maria Silva → Visible | The negative operator (is not, is not a member of) solves the most common case in one go: "everyone who is not on the Fraud team" is one rule, and it continues to apply to new teams. Precedence: who wins when two rules apply 1. The most specific wins. Order: All → Agent Type → Team → Agent. A rule for a specific agent wins over a team rule, which wins over an agent type rule. 2. At the same level, the most restrictive wins — and the interface marks this as a conflict, never deciding silently. Two teams of the same agent requesting different things: Hidden prevails, with the warning "Two rules of the same type contradict each other. The most restrictive rule wins." Use Simulate View to see the conversation sidebar exactly as a specific agent (or a combination of agent type + teams) would see it before saving. Subfields inherit from the parent field Fields that only appear based on another field's value ("appears when Reason = Billing") form a hierarchy. Here, only one rule applies: a subfield is never more permissive than its parent. Implications seen on the screen: - inherits from parent — the subfield has no own rule and shows the inherited effect. - locked by parent — the parent is hidden, so the subfield also remains hidden, even with its own Visible rule. - rule has no effect — you allowed an audience that a higher-level field hides. The rule remains, but has no effect; open the field to review. There is no "inherit" key: a subfield without its own rule simply follows the parent. Mandatory fields cannot be hidden Those who cannot see the field cannot fill it out, and the conversation cannot close without it. Therefore, the combination of mandatory + hidden is blocked. If a field appears marked as to be corrected, it is exactly this case — the mandatory setting was enabled after the permission rule. Two options: remove the permission setting (restores visibility) or disable the mandatory setting in Custom Attributes. Meanwhile, an agent who cannot see a mandatory field is not blocked: they can complete the conversation normally. The system does not require a field that the person cannot see. Shortcuts for many fields - Apply to multiple — select several fields and apply the same set of rules. Two options: Replace (overwrite existing rules) or Add (keep existing and add new). Mandatory fields are excluded from mass hiding, and the modal lists which and why. - Apply from this level down — configure the field and reset the configuration of all subfields to follow this. Not available if a mandatory subfield would be hidden by the parent’s lock. How to read the list of fields | Marker | Means | |---|---| | no rules | appears for everyone | | restricted | has a configured exception | | hidden / inherits from parent | effect comes from an upper field | | conflict | two rules of the same level contradict; the most restrictive wins | | to be corrected | mandatory and hidden — prohibited combination | The filters Configured, With conflict, and To be corrected help review a large account without scrolling through the entire list. What permission does not do - Does not prevent AI filling. A field can be hidden from everyone and still be filled by ClaudIA — this is an intentional use, for data that no one needs to edit manually. The interface itself warns when no profile can see the field. - Does not change who creates or edits the field definition. Creating, renaming, and deleting fields remains in Custom Attributes. Quick questions I set a rule for an agent and it never applies. If the person has left the account, the interface warns that the rule will never apply. Remove it. How to reset a field to normal? Remove configuration. Without rules, the field reappears for everyone — and a subfield follows the parent again. Do I need to save to see the effect? No. The Result block within the field panel calculates who can see the field with unsaved rules, using the same calculation as in the conversation.

Last updated on Aug 28, 2026

Tags & Attributes: AI-powered Attribute Filling

ClaudIA reads the entire interaction and automatically fills in the custom attributes for the conversation and contact. Instead of the agent typing the reason for contact, category, and similar details at the end of the interaction, the AI extracts this information from the conversation itself. Where to find it Settings → AI → Tags & Attributes — screen restricted to Administrator profile. If the item does not appear in the menu, enabling this feature on your account is handled by the Cloud Humans team — contact us to request it. :::warning Tags: automatic tag application is under development. Currently, the screen fills custom attributes; tags will be added later. ::: The three-decision process For each field, you define what, how strictly, and — for the entire account — when. 1. What: the instruction Enabling a field requires writing an instruction: what ClaudIA should fill in that field and how to decide the value based on the interaction. Without an instruction, the field cannot be enabled. Two aids in the instruction modal: - Generate with AI — ClaudIA proposes an instruction based on the field's name, type, and description. Review before saving. - Analyze — evaluates the quality of the instruction and returns Excellent, Good, or Needs Improvement. If you edit after analysis, the screen warns that the result is outdated. A good instruction indicates where to look and how to choose. Compare: - ❌ "Reason for contact." - ✅ "Fill with the main reason for contact, choosing the most specific category based on what the customer reported. If the customer mentioned multiple topics, use the one that triggered the opening of the interaction." 2. How strictly: minimum confidence Each field has a minimum confidence to fill, adjustable in 5% increments. The default is 70%. The AI returns, alongside the value, how confident it is in that reading. Below the minimum, the value is not saved — but it is recorded with the reason for auditing. Increasing the number makes the AI more cautious (fewer fields filled, higher accuracy); decreasing does the opposite. 3. When: triggers Triggers apply to all enabled fields, not per field: | Trigger | When it fires | Default | |---|---|---| | Resolution | when the conversation is resolved | on | | Transfer to human | when ClaudIA hands over the conversation to a person | off | | Manual | when an agent triggers on demand | off | With the Manual trigger enabled, a Fill with AI link appears at the top of the conversation's attributes section. The filling runs in the background; the result appears in the conversation automatically, without needing to reload. Limit of enabled fields Your account has a limit on the number of fields enabled simultaneously, shown at the top of the screen (Enabled fields 3 of 5). The default is 5 fields. When reaching the limit, you must disable one to enable another. If your operation requires more, the limit can be adjusted by the Cloud Humans team. What happens in the conversation The most important rule: AI only fills empty fields. Values entered by an agent are never overwritten — even if the person types while AI is thinking, manual input wins. Each execution leaves a card in the conversation timeline, summarizing (“ClaudIA filled 3 fields”), the trigger that fired, and who triggered it (System for resolution and transfer, or the agent's name for manual). Opening the card, field by field: - Filled or Not filled - Confidence obtained and required (needs 70%) - Reason — AI's reasoning for that value When a field is not filled, the card explains why: | Result | What happened | |---|---| | Low confidence | AI found a value, but below the minimum | | Already filled | the field had a value; AI does not overwrite | | Abstention | conversation lacked evidence to decide | | Hierarchy conflict | response contradicts the level above in the list hierarchy | | Invalid | value does not match the field's type or options | In other words: even when AI does not record anything, you see what it suggested and the reason — enough data to calibrate the instruction or confidence minimum. Chain fields (nested lists) Fields linked by value — "appears when Reason = Charge" — form a chain. Enabling the root field covers the entire chain: AI responds to all levels in a single reading, and the most specific answer fills the higher levels. Disabling the root silences the entire chain. Best practices - Start small. Enable two or three high-value fields, monitor the cards for a few days, then expand. - Calibrate based on evidence, not intuition. Many “Low confidence” suggestions are correct? Lower the minimum. Wrong recorded values? Raise the minimum or make the instruction more specific. - Instruction per field, not per process. Each instruction should refer to only one field, with explicit decision criteria. - Leverage field structure. In lists, mention options or selection criteria in the instruction — AI decides better when you tell it how to choose. - Review after changing the field. New options in a list require reviewing the instruction and re-analyzing quality. Quick questions Will AI delete or change something my team entered? No. Only empty fields are filled. I enabled the field but nothing happened. Check three things: is a trigger linked; did the conversation pass through this trigger after enabling (executions are not retroactive); and was the field empty. The conversation card shows what happened at each execution. Can I fill a field no one sees in the conversation? Yes. AI filling is independent of Attribute Permissions — a hidden field for everyone still gets filled. Does this work for conversations on any channel? It works for native CloudChat interactions. Conversations mirrored from external systems do not go through filling. Where can I see the history? In the card of each execution, within the conversation. All decisions are recorded — both those saved and those discarded.

Last updated on Aug 28, 2026

Does the website chat open on its own when the agent replies?

Does the website chat pop up on its own when the agent replies? Yes — this is the default behavior of the Web Widget. What happens in practice When the agent (or ClaudIA) replies and the customer has the chat closed: 1. The widget opens an unread message pop-up above the bubble, with a preview of the reply. 2. The bubble gets an unread indicator. 3. A notification sound plays. Clicking the pop-up opens the chat on the conversation and marks the messages as read. If the customer already has the chat open, there is no pop-up: the message appears directly in the conversation. :::info This applies both to replies from a human agent and from ClaudIA — any outgoing message visible to the customer. ::: How to turn it off or back on The pop-up is controlled in the widget installation script on your website, through the showUnreadMessagesDialog key. The default is on; to turn it off, set that key to false in the widget settings inside the script. With the pop-up turned off, the customer still gets the unread indicator on the bubble — only the preview no longer appears. :::warning This setting lives in your website's code, not in the Cloud Chat panel. You need the team that maintains the website to change it. ::: To open the full chat, not just the pop-up This is not a panel option. To open the full window automatically, the website needs to listen to the widget's new message event (cloudchat:on-message) and call the function that opens the chat (window.$cloudchat.toggle). This is an implementation on the website, done by the development team. :::warning Opening the full window over the customer's screen without them asking is intrusive and usually makes the experience worse. The pop-up with a preview exists to get attention without hijacking their browsing. :::

Last updated on Aug 31, 2026

Where to register a webhook in Cloud Chat (Integrations vs. Automation)

:::info The most up-to-date documentation for the Cloud Humans APIs is at docs.cloudhumans.com/api-reference. If this article and the reference disagree, the reference prevails. ::: When to use this - You want to register a URL to receive Cloud Chat events - You registered a webhook and nothing arrives at your endpoint There are two different paths Picking the wrong path is the most common reason a webhook never fires. 1. Integration webhook (the standard registration) Configurações (Settings) > Integrações (Integrations) > Webhooks > Adicionar novo Webhook (Add new Webhook) You provide: - URL do Webhook (Webhook URL) — the endpoint that will receive the POST - Eventos (Events) — which ones to subscribe to: conversation created, conversation updated, conversation status changed, message created, message updated, contact created, contact updated, chat widget opened by the user You can register several webhooks in the same account, each with its own URL and its own list of events. :::info This registration requires the Administrator profile. If the Integrations menu does not appear, it is a permissions issue. ::: 2. Automation that fires a webhook Configurações (Settings) > Automação (Automation) > Adicionar regra de automação (Add automation rule) Here you are not registering a webhook: you create a rule with conditions and choose the Enviar Evento Webhook (Send Webhook Event) action, pasting the URL into the action's field. Which one should you use? | You want to... | Use | | --- | --- | | Receive every event of a type (e.g., every message created) | Integrations > Webhooks | | Receive them only in specific cases (e.g., only when the conversation has a tag) | Automation with the Send Webhook Event action | :::info You can tell the two apart at your endpoint by the payload's event field: the Integrations webhook sends the event name (e.g., message_created); automation sends it with a prefix (e.g., automation_event.message_created). ::: :::warning An Integrations webhook with "Mensagem criada" (Message created) fires on all messages in the account — including outgoing ones and those from every channel. If the volume is high, prefer automation with conditions. :::

Last updated on Oct 02, 2026

How to set up Single Sign-On (SSO) for your company in CloudChat

How to set up Single Sign-On (SSO) for your company in CloudChat Single Sign-On (SSO) lets your team access CloudChat with the same corporate credentials they already use in Google Workspace or Microsoft Entra ID (Azure AD) — no separate password needed. You set it up yourself, in just a few minutes, through our wizard. Step-by-step video (wizard setup): Open the video on Loom Before you start You'll need: - To be an administrator of your CloudChat account. - Permission to register/configure applications in your identity provider (Google Workspace or Microsoft Entra ID). Depending on your organization's policy, this may require an administrator — or it may already be available to you. - To know your team's corporate email domain (e.g. yourcompany.com). ⚠️ Important — SSO does not create users. Single Sign-On only connects a person who already has access to CloudChat to their corporate identity. If someone on your team hasn't been added to your CloudChat account yet, they must be added normally before they can sign in with SSO. SSO authenticates; it does not grant new access on its own. Step by step 1. Open the SSO wizard In your account's admin panel, go to Settings → Corporate SSO. 2. Choose your provider Select Google or Microsoft, depending on your company's identity provider. 3. Configure it on your provider The wizard shows the details you need to register on your identity provider (such as the redirect / callback URL). Copy those and: - Google Workspace: create the OAuth credentials in the Google Cloud Console and authorize the redirect URL provided. - Microsoft Entra ID: register the enterprise application and add the redirect URL provided. Then bring back to the wizard the values your provider generated (client ID and secret, or the federation details). 4. Prove domain ownership Enter your company's email domain. SSO can only be enabled for a domain you prove belongs to your organization — this ensures no one configures login for a domain that isn't theirs. 5. Test the login Run a test login with a corporate account that already exists in CloudChat. A successful sign-in confirms everything is set up correctly. 6. Enable it for your team Pick the activation mode and finish. From then on, your team can sign in through the corporate login button. Frequently asked questions Does my team's password pass through CloudHumans? No. Authentication happens at your provider (Google/Microsoft); CloudChat only receives the identity confirmation. Can I use Google and Microsoft at the same time? Yes. You can configure both providers for the same domain. Can a brand-new user sign in directly via SSO? No. They must first be added to the CloudChat account. After that, SSO login works normally. Does password login keep working? Yes. Enabling SSO doesn't remove password login. I misconfigured something — what now? You can reopen the wizard and redo the steps at any time. If in doubt, contact our support. Need help? Contact CloudHumans support.

Last updated on Sep 02, 2026