Knowledge Base

Search for the articles here or browse the categories below.

Browse by topic

Find guides, tutorials, and answers organised by category.

Popular articles

What other people are reading right now.

šŸ“š Customer Support Learnings

Benefits of CRM Automation for Small Businesses

Emeka had always dreamed of running his own business. What started as a side hustle—selling handmade leather bags online—quickly turned into a full-time job. Orders increased, customer inquiries piled up, and suddenly, Emeka found himself spending more time answering messages than actually growing his business. He knew he needed help, but hiring more staff wasn’t an option. That’s when he discovered Ruut —a game-changer for small businesses like his. 1. Time Saved, Efficiency Boosted Before Ruut, Emeka was spending hours every day replying to the same customer questions: šŸ›ļø "Do you have this bag in black?" šŸ“¦ "Where’s my order?" šŸ’³ "I need a refund!" With Ruut Smart Macros, he automated responses to these common inquiries. Now, customers got instant replies without him lifting a finger. What used to take hours now took seconds, freeing him up to focus on growing his brand. 2. Faster Customer Support = More Sales In the past, slow response times meant lost customers. If Emeka didn’t reply fast enough, shoppers moved on to competitors. But with RUUT’s AI-Powered Ticketing, messages were automatically categorized and prioritized. Urgent issues—like payment failures or delivery complaints—got flagged immediately, ensuring no customer was left waiting. The result? Response times dropped by 70%, and customer satisfaction skyrocketed. Faster replies meant happier customers—and happier customers meant more repeat sales. 3. No More Missed Opportunities Running a small business means wearing multiple hats, and sometimes, customer messages slip through the cracks. But with Ruut Multi-Channel Integration, Emeka never missed a message. Whether customers reached out via email, WhatsApp, or social media, everything was managed in one place. No more lost DMs, no more unanswered emails—just seamless, stress-free communication. 4. Smart Data for Smarter Business Decisions As a small business owner, Emeka needed to understand what his customers wanted. Ruut Analytics Dashboard gave him real-time insights into: šŸ“Š Most common customer questions (so he could update product descriptions) šŸ“¦ Frequent refund requests (helping him improve product quality) ā³ Response time trends (allowing him to optimize customer support) Instead of guessing what worked, Emeka now made data-driven decisions that helped his business grow faster. 5. Scaling Without Stress The best part? Ruut grew with him. As orders increased, he didn’t need to hire a large support team—automation took care of the heavy lifting. With the right tools in place, Emeka was able to expand his business without burning out. Why RUUT CRM is a Must-Have for Small Businesses Africa’s entrepreneurs are building the future, and customer experience is what separates thriving businesses from struggling ones. Ruut helps small businesses scale without stress, offering: āœ… Automated Responses to handle repetitive inquiries āœ… AI-Powered Ticketing to prioritize urgent requests āœ… Multi-Channel Support for seamless communication āœ… Analytics & Insights for smarter business growth For small businesses looking to save time, improve customer experience, and scale effortlessly, Ruut isn’t just an option—it’s a necessity. Ready to automate and grow? Ruut is here to help. šŸš€

šŸ’¬ Product Knowledge

Connect Ruut to your Website / Web applications

If you need to use live chat on a website, web application, or even a mobile application, you will need to create a website workspace. You can create as many website workspaces as you wish, and they will all be linked to one Ruut dashboard. Here is an integration guide on how to set up the website workspace on Ruut: Step 1: Connect from Dashboard On the dashboard, as a new user, you will see an option to set up your workspace. Click on it, and it will take you directly to the workspace section, where you will find a list of channels you can set up in your workspace. Step 2: Create a New Workspace From the workspace section on Ruut, you need to create a new workspace. Select the website workspace, and it will open up its requirements. Follow the steps provided. Step 3: Enter Necessary Information When you click on the website channel to connect to your workspace, you will need to submit several items: - Website Name: This is the name that will show on the Chat Widget. - Website Domain: This is the domain or web URL of the website or application you are integrating. - Blog URL: If you have a blog and want your users to read it directly from the chat widget, provide the link. The view will be rendered, allowing users to interact with it from the chat widget. - Widget Color: Set your company’s primary color as the widget color to match your brand and business. - Welcome Heading: This is the first text presented to your users when the chat widget is launched, e.g., "Welcome to Ruut Chat" or "Glad to have you join us here." - Welcome Tagline: This tagline accompanies the welcome heading, e.g., "Ask us anything." - Enable Greeting: If you want automated greetings when users first visit the chat widget, enable channel greeting. This will present another field where you can add a message for the greetings. After inputting all the necessary fields, click "Create Inbox" to save your details. Once saved, proceed to the next step. Step 4: Add Your Agent Once your website channel has been connected, add your support staff to that workspace. Once that’s done, you are ready to use your website channel with any application you wish. Step 5: Use Your Website Channel Now that your website channel is created, you will be presented with a view like the image below. For some applications you will be integrating with, you need to copy the entire script tag to the JavaScript section of your application. For mobile, WordPress, or other platforms, you will be required to copy the value of the Website token, which allows you to interact directly with the application. For Developers Identify a User (Set User Details) Once Ruut is ready, you can identify a user using the setUser method. This is optional but strongly recommended if your users are logged in. <script> window.addEventListener("ruut:ready", function () { window.$ruut.setUser("USER_ID", { email: "[email protected]", name: "John Doe", avatar_url: "https://example.com/avatar.png", phone_number: "+2348012345678", identifier_hash: "SECURE_HASH", description: "Premium customer", country_code: "NG", city: "Lagos", company_name: "Ruut Inc", social_profiles: { twitter: "johndoe", linkedin: "john-doe", facebook: "john.doe", github: "johndoe" } }); }); </script> Required vs Optional Fields Required - USER_ID A unique identifier for the user in your system (string). Common Optional Fields - email - name - avatar_url - phone_number Advanced / Optional Fields - identifier_hash (recommended for security) - description - country_code - city - company_name - social_profiles You can pass as many or as few fields as you need. Secure User Identity with identifier_hash For security-sensitive applications, Ruut supports identity verification using an identifier_hash. This hash should be generated on your server using your Ruut secret key and the user’s ID. It prevents impersonation and ensures user data integrity. If you don’t need this, you can safely omit it. Open the Chat Programmatically (Optional) If you want to open the chat automatically once Ruut is ready: <script> window.addEventListener("ruut:ready", function () { window.$ruut.toggle("open"); }); </script> Updating or Resetting a User Update Custom Attributes <script> window.$ruut.setCustomAttributes({ plan: "pro", last_login: "2026-01-10" }); </script> Remove a Custom Attribute <script> window.$ruut.deleteCustomAttribute("plan"); </script> Reset User Session <script> window.$ruut.reset(); </script> This is useful when a user logs out. Need more help with setting up your live chat workspace, speak to your account manager directly. Or reach us at [email protected]

šŸ“š Customer Support Learnings

Automation will save you, Here's how

Automation in Customer Support: Enhancing Operational Efficiency and Customer Experience In the realm of customer support, automation refers to the strategic use of technology to streamline processes and improve service delivery. It leverages advanced software solutions, artificial intelligence, and machine learning to handle repetitive tasks, optimize workflows, and enhance overall efficiency. Here's how automation is reshaping customer support: 1. Efficiency and Speed: Automation tools such as chatbots and automated ticketing systems enable organizations to respond to customer inquiries promptly and accurately, reducing waiting times and increasing productivity. 2. 24/7 Availability: Automated systems ensure continuous customer service availability, providing instant responses and support outside traditional business hours, which is crucial in a globalized market where customers expect round-the-clock assistance. 3. Personalization at Scale: Through data analytics and AI-driven insights, automation enables personalized customer interactions by analyzing customer behavior and preferences. This allows businesses to offer tailored recommendations and solutions, enhancing customer satisfaction. 4. Workflow Optimization: Automated workflows streamline routine tasks like ticket routing, issue categorization, and response generation. By automating these processes, support teams can focus more on complex problem-solving and proactive customer engagement. 5. Data-Driven Decision Making: Automation platforms gather and analyze vast amounts of customer data in real-time. This data provides actionable insights into customer trends, pain points, and satisfaction levels, empowering businesses to make informed decisions and continuously improve service strategies. 6. Cost Efficiency: By reducing the need for manual intervention in routine tasks, automation lowers operational costs associated with customer support operations. This cost efficiency allows organizations to allocate resources more strategically and invest in higher-value customer initiatives. In conclusion, automation in customer support isn't just about replacing human interaction; it's about optimizing processes to deliver faster, more personalized, and efficient service experiences. Embracing automation empowers organizations to meet the evolving expectations of customers while driving operational excellence and fostering long-term customer loyalty.

šŸ˜‡ Channels

How to setup an API inbox on Ruut

How to create an API channel inbox in Ruut Chat The API channel in Ruut Chat is designed for various integration use cases. If you want to build your own custom chat interface that connects directly to Ruut, the API channel is the perfect solution for that. Similarly, if you want to connect our Mobile SDK to Ruut, the API channel is also the best use case for that integration. For SDK users: If you are using the SDK, you just need to create the API channel - no need to add other configurations. After creating the channel, go to your inbox/workspace settings, then under Configuration you would see the workspace inbox identifier that you'll need for your SDK integration. Setup the API channel Step 1. Go to Settings → Workspace → "Add Workspace". Step 2. Click on the "API" icon. - Channel Name: API Support Channel - Callback URL: https://your-app.com/webhooks/ruut-callback Step 4. "Add agents" to your API inbox. The inbox setup is complete. For Mobile Integrations go to the settings of your newly created workspace and check for the configuration and copy the inbox identifier. Send messages to the API channel To send messages to the API channel, ensure you understand the following models and nomenclature used in Ruut Chat. Channel: Channel defines the type of source of conversations. E.g., Facebook, Twitter, API, etc. Inbox: You can create multiple sources of conversations of the same channel type. E.g., You can have more than one Facebook page connected to a Ruut Chat account. Each page is called the inbox in Ruut Chat. Conversation: A Conversation is a collection of messages. Contact: Each conversation has a real-life person associated with it, called a contact. Contact Inboxes: This is the session for each contact in an inbox. A contact can have multiple sessions and multiple conversations in the same inbox. How to send a message in an API Channel? To send a message in an API channel, create a contact, initiate a conversation, and finally send the message. APIs require api_access_token in the request header. You can get this token by visiting your Profile settings → Access Token. 1. Create a contact Ref: API documentation Pass the inbox ID of the API channel along with other params specified. This would create a session for you automatically. A sample response would look like the one below. { "email": "string", "name": "string", "phone_number": "string", "thumbnail": "string", "additional_attributes": {}, "contact_inboxes": [ { "source_id": "string", "inbox": { "id": 0, "name": "string", "website_url": "string", "channel_type": "string", "avatar_url": "string", "widget_color": "string", "website_token": "string", "enable_auto_assignment": true, "web_widget_script": "string", "welcome_title": "string", "welcome_tagline": "string", "greeting_enabled": true, "greeting_message": "string" } } ], "id": 0, "availability_status": "string" } As you can see in the payload, you will be able to see the contact_inboxes and each contact_inbox will have a source_id. Source ID can be seen as the session identifier. You will use this source_id to create a new conversation as defined below. 2. Create a conversation Use the source_id received in the previous API call. You will receive a conversation ID which can be used to create a message. { "id": 0 } 3. Create a new message Ref: API documentation There are 2 types of messages. Incoming: Messages sent by the end user is classified as an incoming message. Outgoing: Messages sent by the agent is classified as an outgoing message. If you call the API with the correct content, you will receive a payload similar to this one: { "id": 0, "content": "This is a incoming message from API Channel", "inbox_id": 0, "conversation_id": 0, "message_type": 0, "content_type": null, "content_attributes": {}, "created_at": 0, "private": false, "sender": { "id": 0, "name": "Pranav", "type": "contact" } } If everything is successful, you will see the conversation on the dashboard as follows. You will be notified when a new message is created on the URL specified while creating the API channel. You can read about the message payload here. Receive messages using callback URL When a new message is created in the API channel, you will get a POST request to the Callback URL specified while creating the API channel. The payload would look like this. Find the full list of events supported by the webhook here. Event type: message_created { "id": 0, "content": "This is a incoming message from API Channel", "created_at": "2025-06-24T15:43:04.000Z", "message_type": "incoming", "content_type": null, "content_attributes": {}, "source_id": null, "sender": { "id": 0, "name": "contact-name", "avatar": "", "type": "contact" }, "inbox": { "id": 0, "name": "API Channel" }, "conversation": { "additional_attributes": null, "channel": "Channel::Api", "id": 0, "inbox_id": 0, "status": "open", "agent_last_seen_at": 0, "contact_last_seen_at": 0, "timestamp": 0 }, "account": { "id": 1, "name": "API testing" }, "event": "message_created" } Create Interfaces using client APIs Client APIs available for the API channel will help you build customer-facing interfaces for Ruut Chat. These APIs are useful for cases like the ones listed below. - Use a custom chat interface instead of the Ruut Chat widget. - Build conversational interfaces into your mobile apps. - Add Ruut Chat to other platforms for which Ruut Chat doesn't have an official SDK. Creating customer objects You can create and retrieve customer data objects using the inbox_identifier and customer_identifier. Inbox Identifier You can obtain the inbox_identifier from your API channel → Settings → Configuration. Customer Identifier The customer_identifier or the source_id can be obtained when creating the customer using the create API. You will need to store this identifier on your client-side to make further requests on behalf of the customer. This can be done in cookies, local storage etc. Available APIs The Available Client APIs are documented here. Some of the things you can do with the APIs are: - Create, View and Update Contact - Create and List Conversations - Create, List and Update Messages HMAC Authentication The Client APIs also support HMAC Authentication. The HMAC token for the Channel can be obtained via running the following on your rails console. # replace api_inbox_id with your inbox id Inbox.find(api_inbox_id).channel.hmac_token Connecting to the Ruut Chat WebSockets To get real-time updates from the agent dashboard, connect to Ruut Chat WebSockets using the following URL. <your installation url>/cable Authenticating your WebSocket connection After subscribing using the customer's pubsub_token, you will receive events directed toward your customer object. The pubsub_token is provided during the customer creation API call. Example const connection = new WebSocket('ws://localhost:3000/cable'); connection.send(JSON.stringify({ command: "subscribe", identifier: "{\"channel\":\"RoomChannel\",\"pubsub_token\":\"" + customer_pubsub_token + "\"}" })); Find the full list of events supported by WebSockets here.

šŸ“« Account Setups

Revolutionize Your Business Communication with Ruut WhatsApp Integration

RUUT WhatsApp Integration allows your businesses to connect their WhatsApp accounts directly to the RUUT platform, mimicking the ease of WhatsApp Web but with added business-focused functionalities. This innovation is designed to help businesses manage customer interactions efficiently, all from one platform. How to Get Started 1. Accessing RUUT WhatsApp Integration - Click "Add Workspace" on the Ruut platform and select "WhatsApp." - Choose "Ruut" to link your mobile phone to the workspace, similar to setting up WhatsApp Web. 2. Setting Up Your Workspace - Assign a unique workspace name, such as "Tiles WhatsApp." - Enter your phone number, ensuring it includes your country code for accurate connection. 3. Leveraging Key Features - Reopen Conversations: Choose whether previous chats should automatically reopen for continuity. - Import Contacts and Messages: Bring in your WhatsApp contact list and historical messages effortlessly. - QR Code Connection: Simply scan the QR code generated by RUUT to link your WhatsApp account securely. 4. Customizing the Experience - Enable Greeting Messages to send automated responses to customers instantly. - Set Business Hours to automate replies for messages received outside working times. Business Benefits: •⁠ ⁠Centralizes communication by integrating WhatsApp into your business platform. •⁠ ⁠Enhances customer interaction with automated greetings and business hour messages. •⁠ ⁠Provides flexibility in managing customer conversations and importing data.

šŸ› ļø Integrations

Integrating Ruut to your Wordpress site. Here's how.

If you're using WordPress for your website, you can easily integrate live chat support for your visitors with Ruut. By adding the Ruut live chat widget to your WordPress site, you can connect with your customers in real-time, answering their questions and addressing their concerns without the hassle of manual back-and-forth communication. Here's how you can get started in 4 simple steps: Step 1. Download the Ruut Plugin. Download the Zip file of the latest Ruut WordPress plugin from here Step 2. Upload the plugin to your WordPress website Log in to your WordPress account. Navigate to the Admin Panel and click ā€œPluginsā€ from the sidebar. You will be able to see the "Add New" button. You will see an option to upload the plugin, as shown in the screenshot below. Click ā€œBrowseā€ and select the Zip file downloaded in step 1. Step 3. Activate the plugin Once the plugin is uploaded, you will see a Success screen with the "Activate Plugin" option, as shown below. Click the "Activate Pluginā€ button. Congrats! The plugin is now installed, you would see a Ruut Plugin view as shown below. To complete the configuration, you must add your Ruut app credentials. Step 4. Configure the plugin Now, you will be able to see ā€œRuut Settingsā€ under your "Settings" menu. Click on that to update the live-chat configuration. You will be presented with the Settings screen as shown below. Configure your Ruut plugin here to make it work. You need to create a Website inbox on your Ruut installation. Please refer to thisĀ guideĀ to create a website channel inbox. Once you have your inbox channel created. copy the website token from the website channel setting and include it below in the field called Ruut Website Token. Once you complete the form, click the "Save changes" button. ** Step 5. Verify that the plugin is working correctly** Visit your website and see if the widget appears on the website!