# Welcome

SaleAssist is an all-in-one SaaS platform to enable Live Video Commerce.

<figure><img src="/files/XqlVwdqLWYi1x7zvBCiz" alt=""><figcaption><p>Live Video Commerce</p></figcaption></figure>

{% hint style="info" %}
Watch SaleAssist - <mark style="background-color:red;">Live Video Commerce intro video</mark> [here.](https://youtu.be/WfDBjkjmCFU)&#x20;
{% endhint %}

**Live Video Commerce**

<table data-view="cards"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td></td><td>Live Shopping (1:1)</td><td></td><td><a href="/pages/xdOkg4LCzfyFhDY2JKsp">/pages/xdOkg4LCzfyFhDY2JKsp</a></td></tr><tr><td></td><td>Live Stream Selling (1:Many)</td><td></td><td><a href="/pages/7vtUqUbtby88zhu2hCmI">/pages/7vtUqUbtby88zhu2hCmI</a></td></tr><tr><td></td><td>Shoppable Videos</td><td></td><td><a href="/pages/ZdGg3TKfWZ0kbpr0q3c2">/pages/ZdGg3TKfWZ0kbpr0q3c2</a></td></tr><tr><td>Schedule Video Call</td><td></td><td></td><td><a href="/pages/RxsLDzWfk9F3tc28lgp3">/pages/RxsLDzWfk9F3tc28lgp3</a></td></tr><tr><td>AI Videos</td><td></td><td></td><td><a href="/pages/qHf776jnwwK2IdkGW19C">/pages/qHf776jnwwK2IdkGW19C</a></td></tr><tr><td>Video FAQs</td><td></td><td></td><td><a href="/pages/fjoedYod6vTtjM7yiX3X">/pages/fjoedYod6vTtjM7yiX3X</a></td></tr></tbody></table>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Introduction

SaleAssist.ai enables live video customer engagement and live video selling to boost sales conversions and improve customer experience.

**FEATURES:-**

* <mark style="background-color:yellow;">**1:1 Video Shopping**</mark> : One click video shopping enablement at your website with site visitors. Highly engaging & personalized shopping experience
* <mark style="background-color:yellow;">**Personalized Shopping Slot Scheduler**</mark> : Allow site visitors to invite their friends and family and book group shopping time easily
* <mark style="background-color:yellow;">**Live Streaming Selling**</mark> : Go live and do selling events at your website & social channels together. Enable Buy / Book / Bid as CTAs.
* <mark style="background-color:yellow;">**Shoppable Video Links :**</mark>  Use our video links for marketing on social media & generate leads at scale
* <mark style="background-color:yellow;">**Video Tiles**</mark> : Embed short form videos as carousels, frame or tiles to give an immersive experience about your products.
* <mark style="background-color:yellow;">**AI Videos**</mark> - Create AI Videos easily by selecting an AI model, pass on text speech and choose background. AI Video content gets ready in a matter of minutes
* <mark style="background-color:yellow;">**Video Feedbacks**</mark> : Capture Video testimonials of your customers easily and use them for branding/marketing.
* <mark style="background-color:yellow;">**Video Emails**</mark> : Email with Video content enabled in them along with video shopping CTAs for higher open & click rates.
* <mark style="background-color:yellow;">**Video FAQs**</mark> : Generate Video FAQs using AI and let customer gets their basic queries answered with Video FAQs

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Onboarding Steps

Below are the steps to onboard any client

**Step 1:**  [Get started](/admin-account-creation-guide) by registering for an admin account at [https://my.saleassist.ai ](https://my.saleassist.ai)

**Step 2**: Select the Feature/Service to start with from below catalog&#x20;

* [ ] [1:1 Live shopping](/features-overview/live-video-calling)&#x20;
* [ ] [1:Many Live stream selling](/features-overview/live-stream-selling)
* [ ] [Shoppable Videos and Dynamic tagging](/features-overview/shoppable-videos-tiles)
* [ ] [Schedule calls](/features-overview/live-video-calling/outbound-calls/schedule-video-meets)
* [ ] [API Integration](/integration-guide/api-integration)
* [ ] Video Feedbacks
* [ ] [AI Videos](/features-overview/strike/ai-videos)
* [ ] [Video Emails](/addons/video-emails)
* [ ] [Inbound meetings](/features-overview/live-video-calling/inbound-calls)
* [ ] [Outbound meetings](/features-overview/live-video-calling/outbound-calls)
* [ ] [Outbound phone calls](/addons/outbound-phone-calling)
* [ ] [Video FAQs](/addons/video-faqs)

**Step 3:** Determine Call Routing Structure and check whether they have **centralized team** that handles all customer interactions, or if they have **multiple stores** that each manage their own calls.\
\
**Step 4:** Do you have separate websites for desktop and mobile, or is your site responsive?\
\
**Step 5**: Which one is the ecommerce tech stack being used in your website

Shopify, wordpress, Magento etc.&#x20;

**Step 6**: CRM Integration with our webhook events by following below documentation.

[Webhook documentation](broken://pages/Dqx9JqCQFOExVx39hmLb)

**Step 7**: Add and invite all of your agents by following the [Agent mapping document ](/integration-guide/agent-mapping)

**Step 8**: Whitelabeling can be done by adding your [Custom Domain and SMTP](/organization-settings/custom-domain) details to the dashboard.

**Step 9**: Download and login to our Mobile Apps (for both Android and IOS ) for Agents

Here is the Download links for both&#x20;

[Android App](https://play.google.com/store/apps/details?id=ai.saleassist.android\&hl=en\&gl=US\&pli=1)&#x20;

[IOS App](https://apps.apple.com/app/id1665439385)

**Step 10:** Onboard your own WhatsApp number to send alerts and notifications to your customers for any live call / schedule call etc. Follow steps here to request for [WhatsApp onboarding](/addons/whatsapp-onboarding-steps).


# 🚀 SaleAssist Onboarding Guide

Welcome to SaleAssist! This onboarding plan is structured across the next few days to ensure a smooth setup, seamless integration, and proper enablement of your entire team.

📅 **Onboarding Timeline Overview**

| Day   | Pre-requisites                                                                                                                                                         | Focus Area                                                                                                                                                                                                                                                              | Next Steps                                                                                                                                                                                                        | Duration     |
| ----- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| Day 0 | <ol><li>Need Admin or Sub Admins in the call</li></ol>                                                                                                                 | <ol><li>Selection/Finalization of Features</li><li>Quick Admin dashboard overview</li><li><a href="https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F">Best UI/UX practice/recommendations</a></li></ol> | <ol><li>Provide necessary information - <a href="https://drive.google.com/drive/folders/19DNGhPU_LFYpYMdljLaVNb9sVcc-h_6R?usp=sharing">download sheet and share</a></li><li>Get internal steps executed</li></ol> | \~30 minutes |
| Day 1 | <ol><li>Web integration SPOC</li><li>Agent Lead / SPOC</li><li>Have provided necessary information as requested</li><li>Internal steps executed as requested</li></ol> | <ol><li>Integration of selected features</li><li>Agent (Live/AIVA) onboarding and Mock Calls</li></ol>                                                                                                                                                                  | <ol><li>Form Slack/WA group</li><li>Provide information on CRM webhook, SMTP, WABA etc</li></ol>                                                                                                                  | \~45 minutes |
| Day 2 | <ol><li>CRM API details , SMTP , WABA details.</li></ol>                                                                                                               | CRM + Whitelabel + Marketing Setup                                                                                                                                                                                                                                      |                                                                                                                                                                                                                   | As required  |

## **🟣 Day 0 — Kickoff & Admin Setup (15 minutes)**

This is a short introductory call focused on initial setup and understanding your requirements.

#### ✅ **Agenda**

<mark style="color:orange;">**Session Pre-requisites**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">:</mark>-  <mark style="color:orange;">This session involves Admin or Sub-admins from brand side.</mark>

* [**Admin account creation**](/admin-account-creation-guide) (2 mins)&#x20;
* **Extend Admin Access** to the SaleAssist Team (1 min)
* **High-level dashboard walkthrough** (10 mins)
* **Knowledgebase resources shared**
  * Setup guides
  * Videos
  * Best practices\ <mark style="background-color:blue;">These can also be forwarded to all Agents before the Day 1 call.</mark>
* **Define immediate** [**next steps**](/saleassist-onboarding-guide)

## **🟡 Day 1 — Integration & Agent Onboarding (\~45 minutes)**

<mark style="color:orange;">**Session Pre-requisites**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">:</mark>- <mark style="color:orange;">This session involves both your</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**tech team (Dev)**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">and</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**customer-facing team (Agents)**</mark><mark style="color:orange;">.</mark>

#### 🔧 **Technical Integration (Dev Team)**

* Integration code will be shared during the call for the respective feature like VidSell / Reels / Strike.
* Dev team can begin integration immediately as per our guidance.
* Our team will answer integration-related queries live during the session.

#### 👥 **Agent Onboarding**

* All agents will be invited and onboarded on the SaleAssist dashboard - [reference doc](/agent-onboarding-guide)
* Mobile app links will be provided
  * Agents install the app
  * Login to their assigned accounts
* **Training on complete call workflows**:
  * Live Video Call
  * Scheduled Calls
  * Lead handling
  * Notifications
  * Follow ups and Lead dispositions / Sale Conversion tracking
* **Q\&A session** with agents
* Sharing of:
  * Agent best practices
  * Training videos
  * Quick reference guides

## **🔵 Day 7 — CRM, Whitelabeling & Marketing Setup**

This call focuses on **advanced setup and automation**.

#### 📌 **Areas covered:**

* **CRM Integration**
  * Lead sync
  * Status updates
  * Two-way data flow (if applicable)
* **Whitelabeled Setup**
  * SMTP configuration
  * Domain mapping
  * Whatsapp integrations
  * Custom branding assets
* **Marketing Enablement**
  * Campaign ideas (video shopping, WhatsApp flows, Strike, Reels)
  * Recommended best-performing setups
  * Support for first campaign launch

## 🎯 **Outcome of the Onboarding**

By the end of this onboarding cycle, your teams will be fully enabled to:

* Use SaleAssist for daily operations
* Manage live & scheduled video calls
* Use the dashboard effectively
* Track leads and conversions
* Run integrated marketing campaigns
* Operate a fully whitelabeled solution


# 🌟SaleAssist Onboarding – Implementation Plan

Welcome to SaleAssist.ai  To ensure a smooth and structured go-live, we follow a 3-day onboarding plan with focused sessions for setup, integrations, and customization.

### 📅 Day 0 – Kickoff & Setup (15–20 minutes)

**Objective:** Get your admin account ready and align on feature requirements.

During this short call, we will:

1. **Create your Admin Account**
   * Help you log in and set up your primary admin profile.
2. **Extend Admin Access to the SaleAssist Team**
   * Temporarily grant our onboarding team admin access so we can configure widgets, features, and mappings on your behalf.
3. **Capture Feature-wise Preferences**
   * Collect your preferences for all below features in excel sheet to proceed with the setup :

<table data-view="cards"><thead><tr><th></th><th data-type="content-ref"></th><th data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><ol><li><strong>VIDSELL</strong></li></ol></td><td><a href="https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F">https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F</a></td><td></td><td><a href="/files/7vSeGurd2YNhsx22Qsma">/files/7vSeGurd2YNhsx22Qsma</a></td></tr><tr><td><ol start="2"><li><strong>STRIKE</strong></li></ol></td><td><a href="https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F">https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F</a></td><td></td><td><a href="/files/BxqUXmXE0SwhPdGBIc7d">/files/BxqUXmXE0SwhPdGBIc7d</a></td></tr><tr><td><ol start="3"><li><strong>REELS</strong></li></ol></td><td><a href="https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F">https://v0.app/chat/best-practice-7-KWaIC3tlbqn?b=v0-preview-b_AP2r2T4wCnZ&#x26;ref=BRVVYJ&#x26;f=1&#x26;path=%2F</a></td><td></td><td><a href="/files/8kzEhvrAFss827FKL4KH">/files/8kzEhvrAFss827FKL4KH</a></td></tr></tbody></table>

* You can fill these details in the **feature configuration sheets** shared with you (or via the links below in the Day 1 section).

### 📅 Day 1 – Integration & Agent Onboarding (≈ 45 minutes)

**Objective:** Connect SaleAssist to your website/app and onboard your team.

In this session, we will:

* Work with your **tech/dev team** to:
  * Implement the SaleAssist widget on your website / PDPs / landing pages
  * Validate events, CTAs, and widget behavior in staging/production
* Conduct an **Agent Onboarding Session**:
  * Help agents log in to the web + mobile apps
  * Map agents to widgets
  * Explain best practices for handling calls & leads

**Feature Configuration – Choose Your Setup**

For each feature, please share your configuration preferences using the templates:

> You can design this as **3 small boxes/cards on the page**, like this:

**\[Section: “Configure Your Experience”]**

* **Box 1 – VidSell (Video Tiles)**\
  Short desc: “Define where video tiles will show, CTAs, and lead capture behavior.”
  * 🔗 **Download VidSell Config Sheet**
  * or
  * 🔗 **Open VidSell Sheet (Online)**
* **Box 2 – Strike (Auto Nudge)**\
  Short desc: “Set triggers, targeting rules, and nudge messages to re-engage visitors.”
  * 🔗 **Download Strike Config Sheet**
  * or
  * 🔗 **Open Strike Sheet (Online)**
* **Box 3 – Reels (Short-Form Video Experiences)**\
  Short desc: “Select pages, categories, and CTAs for Reels-style video experiences.”
  * 🔗 **Download Reels Config Sheet**
  * or
  * 🔗 **Open Reels Sheet (Online)**


# SaleAssist.ai – Client Onboarding Guide

Welcome to SaleAssist.ai — your all-in-one platform for video commerce, live engagement, and AI-assisted customer interactions. We’re excited to help you get started!

This guide outlines the **exact steps** your team needs to follow to successfully onboard and start using SaleAssist.

### **Step 1: Create Your Admin Account**&#x20;

Your journey begins with creating the **Admin Account**, which serves as the primary control panel for your organization.

&#x20;👉 **Create Admin Account:** [Get started](/admin-account-creation-guide) by registering for an admin account at [https://my.saleassist.ai ](https://my.saleassist.ai)

The admin can:

* Add or invite more Admins
* Add or invite Agents
* Configure widgets and features
* Manage roles & permissions
* View analytics & reports

📘 For a step-by-step walkthrough, please refer to our guide:  [Admin Account Creation](/admin-account-creation-guide)

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FMvC3p1yKTNt7PFRDrDmx%2FAccount%20setup.mp4?alt=media&token=e64b7999-0f09-4e55-962f-c7e28bb276a0>" %}

### **Step 2: Initial Configuration (Done With Your CSM / Tech Team)**&#x20;

Once your admin account is active, our team will assist you with setup and activation of the required features.

#### **What We Configure Together**

* Platform access & roles
* Feature enablement (Reels, Strike, AIVA, Click-to-Call, WhatsApp, etc.)
* API keys / domain whitelisting (if applicable)
* Widget creation & customization
* Lead routing and call-flow settings
* Integration checks:
  * Shopify / WooCommerce / Custom JS
  * Website widget placement
  * CRM integrations (if required)

### Step 3: Widget Creation: Required Inputs From Your Team

To create a fully customized widget for your website/app, please share the following:

#### **Brand Assets (Optional but Recommended)**

* Company logo
* Welcome / Intro video

#### **Widget Configuration Inputs**

* Preferred Call-to-Action (CTA):
  * 📹 Video Call
  * 🎧 Audio Call
  * ✉️ “Leave a Message / Schedule Meeting”
* Business hours & operational days
* Lead form fields:
  * Name
  * Mobile number
  * Email
  * Any custom fields (optional)

#### **Agent Availability & Assignment**

* List of agents to assign to the widget
* Escalation flow (optional)

### Step 4: Agent Onboarding

Each agent attending calls/leads must have their own SaleAssist login.

**Account Setup and Invite Agents/Users to your account.**&#x20;

<mark style="color:orange;">Go to Settings -> Users and Roles -> Invite</mark>

<figure><img src="/files/bK1FfRleXsEKyP1SUXgd" alt=""><figcaption></figcaption></figure>

Add and invite all of your agents by following the [Agent mapping document ](/integration-guide/agent-mapping) or Watch here :

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FSfyIR2S0gmd3x8XTVtIj%2FAccount%20Setup%20and%20user%20invitation%20(1).mp4?alt=media&token=840c1638-19f1-4a76-8f14-a73bc55329aa>" %}

#### Share [<mark style="color:blue;">AGENT ONBOARDING DOC</mark>](/agent-onboarding-guide) to your agents once you finish inviting them with above steps.

#### **Please share the following details for each agent:**

* Agent name
* Agent email ID
* Role (Agent / Admin)

Once shared, we will:

* Create & map agents to your widgets
* Configure call routing logic
* Provide training links or live demo (if required)

<mark style="color:orange;">Once your account is set up, please grant our team admin access at</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**<karishma@saleassist.ai>**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">and</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**<venus@saleassist.ai>**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">so they can assist you with the initial setup and configuration.</mark>

### **Step 5**: Mobile App Setup for Agents

Agents can instantly respond to leads via the SaleAssist Mobile App.

👉 **Download SaleAssist Mobile Apps**

* [Android App](https://play.google.com/store/apps/details?id=ai.saleassist.android\&hl=en\&gl=US\&pli=1)&#x20;
* [IOS App](https://apps.apple.com/app/id1665439385)

These apps allow agents to receive:

* Incoming video/audio calls
* Schedule calls
* WhatsApp chats
* Notifications for missed calls or new leads

### Step 6: Training & Product Walkthrough

We provide complete onboarding support, including:

* Live training session for Admins & Agents
* Video tutorials
* Best practices for maximum conversions - [Refer Doc Here ](https://v0.app/chat/best-practice-loFzUIovoLf?utm_source=neepu507studio-6401\&utm_medium=referral\&utm_campaign=share_chat\&ref=0I6NGR\&b=v0-preview-b_3YR8l5mYOMc\&f=1\&path=%2F)
* Documentation for advanced features (Reels, Strike, WhatsApp AI Chat, AIVA, etc.)

If your team needs additional sessions, our CSM Team will schedule them as needed or you can reach out to us.

### Step 7: Go Live 🚀

Once everything is set:

#### **We will:**

* Embed the widget code on your website / app
* Best practices for features integration - [refer doc here ](https://v0.app/chat/best-practice-loFzUIovoLf?utm_source=neepu507studio-6401\&utm_medium=referral\&utm_campaign=share_chat\&ref=0I6NGR\&b=v0-preview-b_3YR8l5mYOMc\&f=1\&path=%2F)
* Test all call and lead flows
* Validate UI/UX and performance
* Confirm agent readiness
* Provide Agent Best Practices Doc for agents to follow on daily basis
* Push your account into **production/live mode - Account Sanitization to be done**
* Setup Monthly review meeting
* **Go live Post on Social media** (after your approval)

#### **You will start receiving:**

* Live video/audio calls
* WhatsApp inquiries
* Reels/Strike engagement
* Leads in your dashboard
* Real-time notifications
* Daily / Weekly / Monthly Usage emails

### Step 8: Post-Go-Live Support & Optimization

To ensure continuous success, our team will:

* Monitor call and lead performance
* Share weekly insights & recommendations
* Provide guidance to improve conversions
* Introduce new features as they launch
* Support with regular updates & integrations

### Step 9 : Admin Best Practices

As an Admin, you are responsible for ensuring smooth operations, high conversion rates, and disciplined agent performance.\
These best practices will help you effectively manage your team and maintain consistently high service levels.

#### **1. Agent Readiness & Performance Monitoring**

#### **✔ Ensure all agents complete onboarding**

* Confirm agents have registered on the portal
* Ensure they have **accepted the organization invitation**
* Ensure they have installed and logged into the **mobile app**
* Check that they have enabled notifications, camera, and microphone permissions

#### **✔ Monitor agent online/offline status**

* Check if agents are active during business hours
* Track login activity and ensure availability

***

#### **2. Track Live Calls, Missed Calls & Response Times**

#### **✔ Use the dashboard to monitor:**

* Real-time calls
* Missed calls
* Declined calls
* Average response times
* Total calls answered per agent

#### **✔ Follow up with agents who:**

* Frequently miss calls
* Stay offline during working hours
* Experience repeated call drops
* Have unusually low call volumes

***

#### **3. Lead Management Oversight**

#### **✔ Review leads regularly**

* Ensure all new leads are being contacted promptly
* Check if follow-ups are logged correctly
* Monitor lead statuses (New → In Progress → Closed)

#### **✔ Identify gaps**

* Leads assigned but not contacted
* Poor or incomplete lead notes
* Leads stuck in the same stage for too long

#### **✔ Encourage agents to:**

* Add detailed notes
* Mark follow-ups with reminders
* Update statuses during and after customer conversations

***

***

#### **5. Training & Quality Assurance**

#### **✔ Conduct periodic training**

* Product knowledge refreshers
* Communication / video call etiquette
* Handling objections & upselling

#### **✔ Review call recordings (if enabled)**

* Identify improvement areas
* Share feedback immediately
* Highlight good calls as examples

***

#### **6. Performance Optimization**

#### **✔ Track KPIs**

* Conversion rates
* Call-to-lead conversion
* First response time
* Agent uptime
* Follow-up efficiency

#### **✔ Conduct weekly reviews**

* Discuss challenges
* Set small targets
* Celebrate improvements

***

## **8. System Hygiene & Access Management**

#### **✔ Regularly review**

* Agent list and access roles
* Inactive or resigned agents

***

#### **9. Weekly Checklist for Admins**

Here’s a quick weekly snapshot of tasks:

* ☑ Check agent activity & availability
* ☑ Review missed calls and follow-ups
* ☑ Audit 5–10 random calls
* ☑ Check lead funnel performance
* ☑ Update widget settings if needed
* ☑ Ensure new agents are properly mapped
* ☑ Share weekly performance reports with your management

***

#### **10. When to Contact SaleAssist Support**

Admins should reach out to SaleAssist support if they notice:

* Multiple agents unable to receive calls
* Persistent high missed-call percentages
* Dashboard not updating or syncing
* Lead assignment issues
* Integration issues (Shopify, website widget, CRM, etc.)

👉 **<support@saleassist.ai>**

## **Need Help?**

Your dedicated Customer Success Manager (CSM) is always available to assist.\
Feel free to reach us at **<support@saleassist.ai>** or contact your CSM directly.


# Admin Account Creation Guide

Your Admin Account is the central hub from where you manage your organization, team members, widgets, and all customer engagement features.  Follow this simple guide to set up your Admin Account.

### Step 1 : What is an Admin Account?

An **Admin Account** is the primary control access for your organization on SaleAssist.ai.\
Admins can:

* Create and manage widgets
* Invite and manage Admins & Agents
* Configure business hours and call/lead routing
* Access analytics, reports, and account settings
* Enable features such as Video Calls, Reels, Strike, AIVA, and more

Every company must have at least one Admin to manage operations efficiently.

### Step 2: How to Create Your Admin Account

Follow these steps to set up your account:

1. **Open the  Admin Registration Page**&#x20;

&#x20;     Click the link shared with you by our onboarding team or visit:&#x20;

&#x20;     👉 <https://my.saleassist.ai/>

2. &#x20;**Register with Your Official Email**

* Enter your **Name** and **Work Email ID**
* Set a strong **Password**
* Click **Create Account**

<mark style="color:orange;">You will receive a confirmation email.</mark>&#x20;

<figure><img src="/files/Op76SpqvfM2z7wLThvg5" alt=""><figcaption></figcaption></figure>

***

<figure><img src="/files/tEMaNW4VKkTtmE5kZ6U9" alt=""><figcaption></figcaption></figure>

3. Now you will receive a verification mail to your email with which you have registered yourself. You need to click on the link shared in the verification email to verify.

<figure><img src="/files/pjhUITh9z5TECBVkRBup" alt=""><figcaption></figcaption></figure>

4. After verification, **Login** to the account.

<figure><img src="/files/JNWAcpbFW22nAJRNLlRL" alt=""><figcaption></figcaption></figure>

&#x20;                                               &#x20;

&#x20;                                                     **Watch Admin Account Creation tutorial below** :thumbsup:

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FMvC3p1yKTNt7PFRDrDmx%2FAccount%20setup.mp4?alt=media&token=e64b7999-0f09-4e55-962f-c7e28bb276a0>" %}

### **What You Can Configure as an Admin**

Once your Admin Account is active, you can:

**✔ Create Widgets**

Customize CTAs, agent mappings, branding, videos, and lead forms.

**✔ Manage Agents**

Invite, remove, or assign agents to different widgets and campaigns.

**✔ Control Availability**

Set business hours and routing rules for incoming calls and leads.

**✔ Access Data & Reports**

View call history, lead details, conversion performance, and usage analytics.

**✔ Manage Account Settings**

Update your company profile, security settings, roles, and more.

***

**Need Support?**

If you face any difficulty while creating or accessing your account:

📧 Email: **<support@saleassist.ai>**\
🎧 Or reach out to your onboarding manager

Our team is always ready to assist.


# Agent Onboarding Guide

As an Agent, you will handle customer calls, chats, and leads assigned to you by your Admin. Please follow the steps below to complete your setup.

### Step **1:  Accept the Invitation Sent by Your Admin**

Your Admin will first invite you via the SaleAssist dashboard.

* You will receive an **invitation email** from SaleAssist.ai.
* This email confirms that an Agent account has been created for you.

👉 **If you do not see the email:**\
Check your Spam / Promotions folder.

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FlTsJD8zj79JeCjQYRGb8%2FInvitation%20and%20Account%20Setup%20Guide.mp4?alt=media&token=3302c689-9286-406d-ae6c-2f0eb03cb089>" %}

### Step 2: **Register Your Account**

Once you receive the invitation:

1. Visit: [**https://my.saleassist.ai**](https://my.saleassist.ai)
2. Click **“Register”**
3. Sign up using the **same email ID** where you received the invitation
4. After logging in, you will see a message asking you to **Accept Organization Invitation**
5. Click **Accept**

### **Step 3:** Switch to Your Assigned Organization

After accepting the invitation:

1. Go to **Profile → Switch Organization**
2. Select the organization that your Admin added you to
3. Your dashboard will now show all widgets, leads, and calls assigned to you

#### Step 4: Install the SaleAssist Mobile App Setup <a href="#step-5-mobile-app-setup-for-agents" id="step-5-mobile-app-setup-for-agents"></a>

Agents can instantly respond to leads via the SaleAssist Mobile App.

👉 **Download SaleAssist Mobile Apps**

* [Android App](https://play.google.com/store/apps/details?id=ai.saleassist.android\&hl=en\&gl=US\&pli=1)
* [IOS App](https://apps.apple.com/app/id1665439385)

#### **Login Instructions**

* Open the app
* Login using the **same email & password** you used on the web portal
* Allow notifications (important for receiving calls and leads)
* Enable camera & microphone permissions

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FO4l9BZTT1dhQ5Hf3ljqU%2FSaleAssist%20Mobile%20App%20walkthorugh.mp4?alt=media&token=bf980416-e13f-4191-983f-de374d10b84c>" %}

These apps allow agents to receive:

* Incoming video/audio calls
* Schedule calls
* WhatsApp chats
* Notifications for missed calls or new leads

### Step 5: Confirm Setup With Your Admin

Once done with the setup:

* Inform your Admin that you have:
  * ✔️ Registered your account
  * ✔️ Accepted the invitation
  * ✔️ Switched your organization
  * ✔️ Installed the mobile app
  * ✔️ Logged in successfully

Your Admin will then map you to the required widget(s) and assign leads/calls.

### Step 6: Agent Best Practices for High Performance

To ensure the best customer experience and maximize conversions, all agents should follow these recommended best practices:

<figure><img src="/files/bEXcMCXdOrBmgW224FBp" alt=""><figcaption></figcaption></figure>

***

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2F7uwjUntAQcfgj66avAlc%2FWhatsApp%20Video%202025-11-25%20at%2016.59.34.mp4?alt=media&token=bcff4934-f4e6-42e9-9609-ac2afe20225d>" %}

### **⏱️ Responsiveness & Availability**

* Keep the mobile app logged-in at all times
* Enable notifications and do not force-close the app
* Stay active during your assigned business hours
* Respond to calls & leads **within seconds**
* Mark yourself available/unavailable based on your shift

***

### **🎥 Call Quality Standards**

* Ensure good lighting and a clean background
* Keep your device camera clean for a clear video experience
* Use earphones/headsets for better audio
* Maintain stable internet connectivity (Wi-Fi recommended)

***

### **🗣️ Communication Excellence**

* Be polite, professional, and clear in all interactions
* Introduce yourself and your brand at the start of the call
* Listen actively and understand the customer’s query before responding
* Avoid long silences; keep the conversation engaging
* Always ask before placing the customer on hold

***

### **📄 Documentation & Lead Handling**

* Add notes immediately after each interaction
* Lead Dispositions - Update lead statuses (New, In-progress, Follow-up Needed, Closed)
* Mark Sale Conversion if done with relavant details
* Maintain consistency across follow-ups

***

### **📞 Follow-Up Discipline**

* Follow internal SLAs for callback timelines
* Maintain a structured follow-up schedule
* Document every action inside the system

***

### **🔒 Security & Compliance**

* Never share sensitive internal information
* Access the platform only from authorized devices
* Keep passwords confidential and secure
* Logout only when your shift ends

***

### **⭐ Customer Experience Guidelines**

* Be empathetic and solution-oriented
* Understand the product/service you are supporting
* Provide accurate information
* Always thank the customer before ending the call
* Share promotions, offers, or relevant upsell options if applicable

### **You’re All Set! 🚀**

Once mapped, you will start receiving:

* Live video / Audio calls
* Scheduled calls
* Chat messages
* Lead notifications

If you face any issues during onboarding, please reach out to your Admin or email us at **<support@saleassist.ai>**.


# Best Practices / Recommendations

Maximize conversions with VidSell, Reels & Strike

This guide outlines **recommended placements, CTAs, and configurations** for SaleAssist features so you can get the **highest engagement and lead conversion** from your website.

We brought these recommendations on basis of our current customer's feedback.

**CASE STUDIES** - <https://saleassist.ai/case-studies>

### 1. VidSell – Live Video Shop / Consultation

**Goal:** Make “Talk to an Expert / Live Video Shop” visible and accessible anywhere a user feels confused or ready to buy.

#### 1.1 Floating Side Button (Site-wide)

**Best For:** Overall website, especially high-intent pages (home, category, PDP, pricing, plans).

**Recommended Labels (examples):**

* *Live Video Shop*
* *Live Consultation*
* *Live Demo*
* *Book Video Shop*
* *Live Shop with an Expert*

### **Placement Guidelines:**

* #### **Desktop:**

  * Right-hand side, vertically centered
  * Always visible (sticky) as the user scrolls
  * PDP page - Add CTA near Add to cart button as Live Video Shop / Video Shop

  <figure><img src="/files/CVIrL4lNJrTgmsAqEKYP" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/qMPJIPYRVNs4ea17E20G" alt=""><figcaption></figcaption></figure>

* #### **Mobile:**

  * <mark style="background-color:$success;">Sticky Footer CTA - Live Video Shop</mark>

  ![](/files/z9OnupJ0CEn5vAt9ZWmT)

  * <mark style="background-color:$success;">Right or left edge (small pill button)</mark>

  ![](/files/6foyMPHgzCVbVJplOghA)&#x20;

* <mark style="background-color:$success;">Avoid overlapping chat widgets or core navigation</mark>

#### **Best Practices:**

* Use **bright but on-brand colors** so the button stands out.
* Keep text short (2–3 words) and action-oriented.
* Ensure button appears **within the first few seconds** of the user landing.


# Getting Started

Get started with enabling Live Video Commerce on your website/platform in minutes.

**Dashboard Walkthrough**

<figure><img src="/files/vZ0qLjy4NjpKsNTBV2tT" alt=""><figcaption><p>Dashboard view after login.</p></figcaption></figure>

**Pre-installation requirements:**&#x20;

1\. [Register to SaleAssist Dashboard](https://my.saleassist.ai)

2\. Make sure you have access to your website's admin panel.

&#x20;

The SaleAssist Dashboard helps you to interact with your clients, show them the products on live call and Live stream.

&#x20;

1. **Header Section: -**

&#x20;

<figure><img src="/files/7GiJzFssaSjPfbpx6MfG" alt=""><figcaption></figcaption></figure>

**Home:-** This is to go to Dashboard.

**Leads:-** This is to go to the Leads section where you can see all new and old leads and their conversations that happened in the past.

**Assets:-** This button is to go to all backend settings for Widgets, Products, Media and Orders.

**Reports:-** This button shows all the reports like New Leads, and Missed Call Analysis. In this, you can analyze the user journey.

**Strike:-** This button is a reverse trigger to nudge the customer to connect.

**Video Emails:-** This button is to send videos through email to the customers.

**Notifications:-** This is for all the alerts in your account.

**Availability Status:-** This is to set your status to Online OR Offline.

&#x20;

<figure><img src="/files/dWu0LusLzPhqf0CDyvyi" alt="" width="371"><figcaption></figcaption></figure>

&#x20;

**Settings:-** Above is the reference for the settings section where you can see Organization Settings, change password, Switch Organization (if you are part of multiple organizations), Resources for learning more about SaleAssist.

**Password:-** User want to change the SaleAssist so they can change their SaleAssist password as well.

**Logout:-** Logout from SaleAssist.ai dashboard.

2. Let's go briefly over the Dashboard’s tabs. Starting with the Meetings section:&#x20;

<figure><img src="/files/fJTJrShCTKTSLfVwGGhg" alt=""><figcaption><p>Outbound call options.</p></figcaption></figure>

&#x20;

**New Meetings :-** Create instant meetings like google meet or any other meeting platform to connect with anyone like customer or team member. Also, you can click the checkbox of auto record, this will help to auto-record your meeting.

<figure><img src="/files/O8byiLkwRPoUIwPj5gEd" alt=""><figcaption></figcaption></figure>

&#x20;

**Schedule Meetings :-** Schedule meetings with your customers.

<figure><img src="/files/97auwKntm130qneOR4JT" alt=""><figcaption></figcaption></figure>

**Live Stream :-** Go Live by creating a live stream and same stream can go live on multiple social channels at the same time.

<figure><img src="/files/hVACMaGgGUJ6Kwqwt0sN" alt=""><figcaption><p>You can go live and showcase your products to the customers</p></figcaption></figure>

<div align="center"><figure><img src="/files/Sw6Yys6MFzK24mqVtZl8" alt="" width="284"><figcaption><p>Add the title and the description</p></figcaption></figure></div>

<figure><img src="/files/tPBSRDmkqBp3GEsTLtxA" alt="" width="200"><figcaption><p>Add Participants</p></figcaption></figure>

<figure><img src="/files/gAN2pWBEdoXu7T1BlXsI" alt="" width="375"><figcaption><p>List Products</p></figcaption></figure>

<figure><img src="/files/3P9eR1aObfOHVr18OxVT" alt="" width="375"><figcaption></figcaption></figure>

**Refer:-** Refer meeting URLs with anyone to whom you want to join the same call.

**Leads/Streams/Users:-**

<figure><img src="/files/uhxnDjCqZbCykaeyB9ww" alt=""><figcaption></figcaption></figure>

&#x20;

Above is the section where you can select options from Leads, Streams OR Users.

Users are the Agents invited to your organization or your team members.

Leads are the captured leads in your account.

Streams is the section where you can see the public chat coming during live streaming show.

3. **Past Meetings:**

In Past Meetings, **ADMINS** can view all the meetings that have already taken place.

* You'll find the customer's name, along with their mobile number or email ID."
* The scheduled time of the meeting.
* The name of the widget used.
* The number of people who attended the call, along with the duration.
* &#x20;Admins can view the recordings as well.

<figure><img src="/files/9lY88fp9UlsBhPezKXJK" alt=""><figcaption></figcaption></figure>

![](/files/gv2HAvNvRwAEkp1SfHoT) When you click the **eye button**, you will be able to view all the details.

<figure><img src="/files/pFP9xHJuhdh6Sa5MeMdS" alt=""><figcaption></figcaption></figure>

In status, you can see how many attendees joined the call and how many missed it.

![](/files/vNcKVKXhWSR6EpnxKbM6)  When you click on the recording button, you will get access to the recordings.

**Transcription and Summary:**

In this section, you will have access to the transcripts of the conversation between the agent and the customer. You can view the sentiment analysis and download the transcription summary.

<figure><img src="/files/YogofKbFKxf93SXV59T8" alt=""><figcaption></figcaption></figure>

4. **Scheduled Meetings:**

ADMINS can see all the scheduled meetings which are scheduled during the selected period of time in the Scheduled Meetings and there status.

<figure><img src="/files/fTyJtm5e35Wyuj16s2ro" alt=""><figcaption></figcaption></figure>

You can also download the scheduled meeting data.

![](/files/QhN4jfvbGm8ogc1AcTz5) After clicking on the eye button, all the details are displayed.&#x20;

<figure><img src="/files/BFgoAzMGhfUN3cq34MXq" alt=""><figcaption></figcaption></figure>

If the agent with whom the call is scheduled is not available, then you can assigned that to call to another agent by clicking on the edit button - ![](/files/zDVJYUenYr1neu9n23gm)

Here, you can change the agent by clicking on 'Moderator' and selecting a new agent. Click on ‘Save Livecall’ button.

<figure><img src="/files/spZ6KfhJQbuLLmUTKkSm" alt=""><figcaption></figcaption></figure>

5. **Team Manager**

In Team Manager, you can see the agent's status. You can select the widget and the duration and click on **show report**. Here you will see 4 options - Online, Offline, Away and Busy. You can see the last login time etc.<br>

<figure><img src="/files/LR0pv9dHirXJG4ioXKCC" alt=""><figcaption></figcaption></figure>

6. **Team Calls**

In team calls, the admin can see all the upcoming calls of their team and download the day calendar.&#x20;

<figure><img src="/files/iLP0LSL1AFeXI1lIspcO" alt="" width="267"><figcaption></figcaption></figure>

By clicking on the arrow, the admins can view the details and edit the agent details if the assigned agent is not available.

<figure><img src="/files/mXcmr6ZhT7EeaMgjbM3q" alt=""><figcaption></figcaption></figure>

7. **Missed Calls:**

In this section, you can view the missed calls along with details such as the call type, ring duration, and the person who missed the call.&#x20;

<figure><img src="/files/HHFKDbooSA7z81yCcQRa" alt=""><figcaption></figcaption></figure>

![](/files/mWkIOGsVHDV8MtQqilWB) By using the follow-up button, you can check if a follow-up was made for the missed call, and if so, you will be able to see who completed the follow-up.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Live Video Calling

The live video calling feature helps you connect with your clients or website visitors by enabling a widget on your website.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Outbound Calls

Outbound calling features help your agents initiate a call from the dashboard to the lead or website visitor.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Schedule Video Meets

Your clients can book times for video calls with the help of a schedule video meeting. You can integrate it in a button form too.

ollow the steps to create a schedule video meet.

1. Go to Home.
2. Select schedule meeting option from the dashboard.<br>

   <figure><img src="/files/jqlWN3d9qrgw1vNGY9ED" alt=""><figcaption></figcaption></figure>
3. Now add meeting name, description, set date and time etc.

<figure><img src="/files/J5D7vJVGbH4PGuSGI6aw" alt=""><figcaption></figcaption></figure>

4. You can also add moderators, participants, choose your logo, and enable a registration form.

<figure><img src="/files/z4RsM7olLhl4xSVCCGEv" alt=""><figcaption></figcaption></figure>

5. **Once all done click on schedule call button at the end.**

<figure><img src="/files/quCj4H62KiRR3UJZZAPI" alt=""><figcaption></figcaption></figure>

6. Once done scheduling the call, you will find the same call in your dashboard which you can start accordingly.

**NOTE:- You will also get reminder email/Messages for the same.**

<div data-full-width="true"><figure><img src="/files/phtpPRF5KC9ELSNJbpNl" alt="" width="245"><figcaption></figcaption></figure></div>

7. Once you click on start, your meeting will get started.&#x20;

<figure><img src="/files/kZzrwLBifitg8PZD5Gt2" alt=""><figcaption></figcaption></figure>

8. You also get different options while being on the call.

9. Using in-call message, you can converse with the other person on your call as well.

   <figure><img src="/files/uDIWrwgEMrUzUAj2TiAM" alt=""><figcaption></figcaption></figure>

10. You may adjust your background, record a call, hold a call, and more by clicking on the three options.

<figure><img src="/files/oyRxy3wBswdzXkTYf91S" alt="" width="322"><figcaption></figcaption></figure>

11. Click the three dots, select Virtual Background, then adjust the background as needed.

<figure><img src="/files/XExSByJHdXQzG8ObusCx" alt="" width="239"><figcaption></figcaption></figure>

<figure><img src="/files/PkPsOc2KQjpRhzcdQG2O" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Instant Video Meets

Agents can have  quick video meetings from the saleassist's dashboard.

Follow the below given steps for the same.

1. Go to Home page of the dashboard.
2. Now click on new meetings.

<figure><img src="/files/xgJZn4BBd5SCtIoP6gfn" alt=""><figcaption></figcaption></figure>

3. Now you can change the Conference name and  description of the meeting.

<figure><img src="/files/0HbGUJgAZJOPRx0XrxhV" alt=""><figcaption></figcaption></figure>

4. You can also add moderators, participants, choose your logo, and enable a registration form.

<figure><img src="/files/7gQCRKoQNZUalqxfGYA3" alt=""><figcaption></figcaption></figure>

5. Now click on Start conference button and your meeting will get started.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Inbound Calls

Inbound calling helps you answer calls from the website initiated by customers.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# How to use ?

Once you are done with the integration part you can do the configurations in the widget as given below.

<mark style="color:yellow;">**Widget configuration:-**</mark>

<mark style="color:yellow;">You can make changes in your widget like changing the welcome video, theme, logo, CTAs etc from  here.</mark>

Go to the widget tab and you will see the options to make changes in your widget.&#x20;

<figure><img src="/files/iF75N7vgNjA4lKE3Cc6o" alt=""><figcaption></figcaption></figure>

**Now if you scroll down you will see two modes**&#x20;

* Live agent interaction&#x20;
* Offline agent interaction.

<figure><img src="/files/zYnlqmpROeiT1NFa4g85" alt=""><figcaption><p><em><strong>Channels</strong></em></p></figcaption></figure>

If you click on any channel a dropdown will appear using which you can change your channels or mode of communication.

**Auto Record:-** You may additionally, you can turn on auto record, which will allow every call to be recorded.

Now at last you can change the queue type, widget position and widget type from the drop down.

***Now simply save the changes you have made.***

<mark style="color:yellow;">**User experience:-**</mark>

This is the lead capturing form where you can allow trigger messages or make alterations to time. You can also recast the welcome message from here.

**Allow pop up video**

Enabling this option will increase the widget size. This will make your widget more attractive to website visitors.

<figure><img src="/files/L7XpfGqzzSyt9ImbL1AZ" alt="" width="186"><figcaption><p><em><strong>Normal View</strong></em></p></figcaption></figure>

<figure><img src="/files/qAlNrXelLYRK77sROS1R" alt="" width="175"><figcaption><p><em><strong>Pop up View</strong></em></p></figcaption></figure>

Trigger Messages :- You can also indulge the content of your message and duration of message from here.

<figure><img src="https://lh7-us.googleusercontent.com/k81UeJ6TKzJsHP9i9VgoPg50UUsnu7OZldcsRP2-3XDskMyAjnkkqbSzQKdw1EgCEudxmLHGgMU3dzdx9zTldq7tW2FTmKMMYzl2u_uJSW4u1YIDycyuP3m77nKZ6G60EoWiW9CzgxGIuflLKliDGw" alt=""><figcaption></figcaption></figure>

*<mark style="color:yellow;">Trigger Messages will pop up with the welcome video.</mark>*

<figure><img src="https://lh7-us.googleusercontent.com/mOTp3jvveiRE_vUvwUt3HfOVTzfAvr29VViGM3nYqpS4IEDOkfFs9DXPvo-tITYNlsB1fxdLOvEjRnXzj6bjUElaAfDqrhh5ucwYWuwp3d8yZme3bA82R_lm5yAC94_LPkQrxwl6ampouCv3xwMF1g" alt=""><figcaption><p><em><strong>Trigger Messages Sample</strong></em></p></figcaption></figure>

**Welcome Salutation/ Welcome Message:-** These are the messages that will come along your welcome video.

<figure><img src="https://lh7-us.googleusercontent.com/7PuabVOJJhvnIrswGsRe2EfcX1LmubLd3mTYKhBiw3g7cqO2afUdexioigvYvF0VjYphyhwUEON2mFuhat91sbn_aeENtQ8AuLECcOAFbjherGRpbS6ygvPuKtr5b70OxSCIKtZa2Xz6" alt=""><figcaption><p><em>Welcome Messages Sample</em></p></figcaption></figure>

\
You  can modify your messages from here

<figure><img src="https://lh7-us.googleusercontent.com/gP_FuninXUa1bYAsKDK6jcB2xFxIEAZfIORQn-soHhpweRlBcw4kX3f7VNOCeE_ATGIzuDrEm1-823GWHh3fNP0Ib78HT0AXpgsZ8pSSBqsvbEgH42vyt8yC7bNi1SFxMNJ9CoRxwuIt" alt=""><figcaption></figcaption></figure>

<br>

**Wait Message:-** If your agents are busy and there is some delay while answering the call, your customers will be able to see this wait message which you can  modify according to your preference.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/GLXBjZkUtOvrcGYHBQTTyeGenE_Cnyjwgnxdrh1URovqzQa_zgnpNtvR9u6z-lWSEewnlfwU30J8_pLGwpeps56BKsKWhNqwfbH4VC0dBEPhe7Uqpf2WWuKa6u1kpgav5dKt-xYDM58s" alt=""><figcaption><p><em><strong>Type your wait message here</strong></em></p></figcaption></figure>

<br>

**Call Timeout Message:-** If there is non availability of your agent to answer the call, a timeout message will pop out.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/qvzeEWq0xjQZb_KI9yBMxqHriKW5n_5vbSdFfjClQtxtbjCCLjNX5HXTycXRQ8gK0SrMGQeAFLQbzvi3v-0fVSeNKU4nKqAth1Dj-3RShSb9s7TXZhlETJPL7HHmEoOyHfgFfjgwShFN" alt=""><figcaption><p><em><strong>Type your call timeout  message here</strong></em></p></figcaption></figure>

<br>

**Missed Call Message :-** This is  the missed call message which you can customise from your end.

<figure><img src="https://lh7-us.googleusercontent.com/zhXzzWvS3k78UOdnggcHquRT2Q129ydZ-qHxMauu3gQHdDu4KrcPF1f9D3dgSqhroHXLp_oADm5oUN5927hNY0Z02jvHf2zw9gLCqbGoNw2f2UjtZLTbWDZ8y2w6qNXJYLfZVii2SMhu" alt=""><figcaption><p><em><strong>Type your missed call message here</strong></em></p></figcaption></figure>

<br>

**Thank you Message:-** Once a call is done , a thank you message will be reflected on your screen which can be modified anytime.

<figure><img src="https://lh7-us.googleusercontent.com/hYAOX_4riAWDAxIupq3xEPYXpa40Znlu57nSAjuW2GB0TgQ-MOK8S4zMtN2CHCPebv6Iu0LVAuD4R4TjifqSOh0vvE65eVcEjrhn_rPH9glrxWNYgFlJk4djLgQ9ai6y_5o_4xTBnNml" alt=""><figcaption><p><em><strong>Type your thank you message here</strong></em></p></figcaption></figure>

\ <br>

**Capture Form**&#x20;

This segment includes a lead capturing form which inquires your client or website visitors to fill in some certain details before being admitted to a call.

You can effortlessly modify the form by dragging and dropping from the right hand side of your dashboard.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/Oh9dgj5NJay-t5QufbmDXyrZkejSEFuxY4o3ma1AqHACgTRP85swmDXgBmNi37Adq6Pp3abOtJARNnGo8N0sqhWizXWTm7rJS4bXzngW7Bti51tcuHRXCA-q90TbubF0fg7orVMr5PxzW_GyQwNZuw" alt=""><figcaption><p><em><strong>Modify your form from here</strong></em></p></figcaption></figure>

<br>

You can also collect the data of your customer by authorising different options.

<figure><img src="https://lh7-us.googleusercontent.com/iCVdZgYVm8--m5kRNv5YzfQbbncTlisyqJ2kc3JlNtfAEg-sqGU5Iye6987rspKHa0U3nw3EWAK-UqfIF-MyLUQV2F__-Jl7RCYR120zPFWBz_27QDgH3GvCKWBT0b-D5fHoofA0gEg_QCZmo1MswQ" alt=""><figcaption></figcaption></figure>

<mark style="color:yellow;">**Agent mapping:-**</mark>&#x20;

Your working hours, working days, and break times can all be changed from here. You must invite agents to your organization before adding any to the call-answering team.

**Steps for adding agents to your organization.**

1\.  Go to settings icon.

<figure><img src="https://lh7-us.googleusercontent.com/IInNiYnS5pzlx1tbxLBE9CCoI1JBfZnkc__ktVOFLFGeXUCVsJCorzwhyIY7UpGpJaultog_oSnk6FCFTyibHti_g3mYZuRyHB57BM-eyp7twWbje53EJA4fjI2YSMQP5zqNqDOdFPA7" alt=""><figcaption></figcaption></figure>

2\. Select Users and roles tab.

<figure><img src="https://lh7-us.googleusercontent.com/MPuM4mt9GtLBwubU0xbAwsO2IDgKrRQs0ttW4_vdk5bjTkWXa90P24A1DCkbR5ZPhFBWjKtZsAeqUBFw_l92rX3NIxa6xAz8Ljw_EMeskBXewDowHFF6o-kjdfqrd-hIZFwZK5RSoZRGfJzQ0-IITg" alt=""><figcaption></figcaption></figure>

3.Click on Invite tab.

<figure><img src="https://lh7-us.googleusercontent.com/J6g6oJjfim6rJmNZhIB-DZmcqw-U-wgIlvSDJoBpX28Ctj2YzWOuytqo5wMlDvcA0eIClfFyQFw-Ml_aChgA-e0KFLvFEzVKVbTmCwVzMqIPET8qwHHbB0XiIXw52lvsIB6WSwQ9E4sDoMUECJpPbQ" alt=""><figcaption></figcaption></figure>

4\. Now you need to add your agent’s email address and assign roles as agent/admin to them.

<figure><img src="https://lh7-us.googleusercontent.com/gltSKeJZ7pP4TvYGuSn-b5UBitYuzPOaaTxu4p_8GE2b21RoXEbonQ9smjvUb9GZWw1M5NCD69EtI5Jh4jDJ_xytxL6I5wdR7SIZpvZCp82rL8YAIfuEz7YipnK56Gzp7ICZf2Ui3iTY" alt=""><figcaption></figcaption></figure>

\
*<mark style="color:yellow;">**Once executed, click on the invite button.**</mark>*

\
**Steps for Agent/Salesperson :**

Once an admin invites any agent/salesperson, the agent/salesperson needs to create their account on [my.saleassist.ai](http://my.saleassist.ai) using the same email address which has been invited by their organization.

*<mark style="color:yellow;">**\~ How to create an account with SaleAssist? Follow the steps mentioned below**</mark>*

1.Go to [my.saleassist.ai](http://my.saleassist.ai).

2.Using the sign up now option or sign in with google, you need to create  your account.

<figure><img src="https://lh7-us.googleusercontent.com/df-RmrqwqffaRqCbI_KCIdItXTrgmqyXa1oTf5QZYCJVoX0QsqwdR-1lXBj7KTVPv-sFLLFvTxn_gKfuehWAMABWnY7Bx06anT3dcyzFNllx4uURXR-J7Y7UsRqNKyXDbPdvMu4pZ37IVt6qBqmpO8g" alt=""><figcaption></figcaption></figure>

3\. Once you add your email address and set a password you will receive one verification email on the same email address.

<figure><img src="https://lh7-us.googleusercontent.com/Rd_rH7dNkiHeoReJncW_Lsfi5fWLc6qKyYYhnBwfaVPZc9nOyfSvvNRdQy9H_sXscqwM6OOOQH6sveugM0_zI3zDxQMh79JW5NLaBfxw6oYYcyxPFNdk54SXWj_BJIisTSMzhriJIzGTB1dX2_Qk5_s" alt=""><figcaption></figcaption></figure>

*<mark style="color:yellow;">**Now, you need to click on the verification link and sign into your account!**</mark>*

Thereafter, they will receive one notification which they need to accept.

1. Click on the notification icon&#x20;
2. Tap on View all notifications.

<figure><img src="https://lh7-us.googleusercontent.com/URHNLVEv7NZEnns7WrAPy-Pw-MWdX8kz9RiL5TjjWMRUr6Xcu0P5KrK-WHeB7xqYE0VF1VLhmwHbOMtynhb4gFuM0rsRhMml9kS6V427hUkvMa8P1GjJPyViYnHLz7vdrzI7xnkjA3ZMet3Nh0QWMYY" alt=""><figcaption></figcaption></figure>

3. After all, click the accept button.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/NhMUXBx5KT7PABve3RN4aLnUzMj-0p9DAEvuN_5fyYr6UgV9yxWFUD9EU37_JR86zBB6ngObeLH5h3sy7JhCQPioxdNcVEQQNxkbtS2N-01r_--I8Fv-C5FkS8ZMX8c0SaSQzDZOpv7oMbYJFwCRik4" alt=""><figcaption></figcaption></figure>

<br>

***After completing above steps by Agent side, below steps to be followed  by\*\*\*\*&#x20;**<mark style="color:red;">**Admin**</mark>**&#x20;\*\*\*\*to map respective agent/salesperson.***

\
**Adding Agents:&#x20;**<mark style="color:yellow;">**For Admin.**</mark>

&#x20;You can  add your  default agents for answering calls from here .The list of agents you added in your organization will be shown up in the drop-down.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/RPF3SfB-dYo9-BPc5Jh6BJ369188i9Ey3m9hobBcLxdMUvVjQMnDnhiD4VmVIbIyPBtUsYzdrvOQ-kTSW3c7CPG1DhWRpFxwpX9-XUgt7aKroHU0h99VLk6CHrPm0kEFpVSVFO7-Rz10MRHvQf40OA" alt=""><figcaption></figcaption></figure>

<br>

**Form Based Routing:**

If you have multiple categories like  Sales/About us/Pricing etc. then as per the selection from customer the call can be routed to the specific set of people respectively. (The multiple options can be created in Lead capture form in “User Experience” widget settings)

<figure><img src="https://lh7-us.googleusercontent.com/TaKA3NHOn_xLiTUMM0NetqyQ7foCQRmtJN4szssFrQIHufJWZ4Oc_jv5En9V-nbjMCHDaYVUbSnZAMNfY9iWGI_aOENHPMyLHBtq4xk6ktj2m7gAfCzNlMqkgz9nQCgvI1hHRpB1TIVO" alt=""><figcaption></figcaption></figure>

<br>

**Location based routing:**

&#x20;You can mark a particular location on the map, and assign an agent to answer the call of the same location store by adding their Email address or phone number with country code.

<figure><img src="https://lh7-us.googleusercontent.com/xLziC9kwGeHBR2Rw46aUIKs7ECxtnQnztK0Xl6iNLOzn6XegRETrGomR_uViwZ82cIUENWpVrQQ468spqZNw2K-0DvNMGIenrtkObpDT-g3GpG9A9xz6QPhYF-ntQAvMjr0RPwHxfpHT" alt=""><figcaption></figcaption></figure>

<br>

**Scheduled calls routing:**

**Y**ou can adjust your call slots and days from here.

<figure><img src="https://lh7-us.googleusercontent.com/e4y9XVCLsOuTX7sLfKdLpNX2303qSijO1cNwyk5QwITA3lb7drZVi9AcsFisSyyw3N0oD4zWmIS3cBk91QMpKCm_1JhPz_IEy6_8zrxC34iZ2LXGIrGI-bDqKnUH2JpO4ZzYlcVXAmNgGfuveho3vw" alt=""><figcaption></figcaption></figure>

Availability:- You can set your working hours, break hours, working days and non working days from here.

<figure><img src="https://lh7-us.googleusercontent.com/tkIJvhQCfMcbET3cGeq-aY5PadCAa8z00Zhx3pJsrdyZRw6I55o9IUnAiQ7ZMGET81qiheZeW8ut1X3p9K1Bq2GQLGlpv0vg6YSfe9DXkxopnCNsgq_i7pvEL4-l2m583D2Vg047boOl" alt=""><figcaption></figcaption></figure>

<mark style="color:yellow;">**Agent Feedback:-**</mark>

&#x20;

***Note:- Always remember to save the modifications.***

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Integration

It will only take a few minutes to integrate the widget into your website.

**Pre-installation requirements:**

1\. [Register to SaleAssist Dashboard](https://my.saleassist.ai)

2\. Make sure you have access to your website's admin panel. You’ll need it to get the JS script code to integrate in your website HTML Header section.

**Installation steps:**

1. After you register, go to the "**Assets**" tab.

<figure><img src="/files/zrR0W8vkvAZTWr5Ineya" alt=""><figcaption></figcaption></figure>

2. Click on “**Widgets**” tab and then click on “**Add Source**” to add new widget as per your use case.

<figure><img src="/files/tg3JjBOrzvr4sLFndh4b" alt=""><figcaption></figcaption></figure>

3. Now here in the “**Integration**” tab, copy the script by clicking the “**Copy Code**” button for respective mode of integration as we have 2 modes like  Widget and Button.

&#x20;           &#x20;

<figure><img src="https://lh7-us.googleusercontent.com/CcrmYVnbhDWqMx8Z0456-1t5BtVi3BIr-TTNgtmVJ8IknuI5Eb36k3trnv0Y6-uh6ICOSIvdkaMz4RKsnoB8PsURGy1QbNRY9WjHQCJB2pvNk4qOBSTAXGN4H4D4wRteF77JpUsZ54Jg" alt=""><figcaption><p><em><strong>Widget View</strong></em></p></figcaption></figure>

<figure><img src="https://lh7-us.googleusercontent.com/EkzOe0g64pZX5-3kP_nAQGNZsPC3iCA2RKxHIEPvHE0Cs9M8B1ax0B-VtIcZmz7JCaa5NethKz-UAxevQj2QkPaYYtsPib6viUNPQHQLJE8gVoqjNSzcPAZJi-9XBmp_lS6NIyvR7QN-" alt=""><figcaption><p><em><strong>Button View</strong></em></p></figcaption></figure>

<figure><img src="https://lh7-us.googleusercontent.com/z53iGNwIM76t-lCua8N50UlRH1YV5exJgbvgIwYsKFcVelP5eaB2KMBkz11w4DDqZU7wdTwrB8D5LRgP1ZYWTjoQ1e97J3WBX3x74DvpNiW2_cQVVNbvvED7oF2yvEpGCXTfwHcUlLQ4TH4SvZBodQ" alt=""><figcaption><p><em><strong>Code Sample</strong></em></p></figcaption></figure>

**Code sample:-**&#x20;

```javascript
<script src="https://static.saleassist.ai/widgets/widget.js"></script>
<script>EmbeddableWidget.mount({source_key: "xxxx-xxxx-xxxxxxxxxx-xxxxxxx"});</script> 
```

4. &#x20;Paste the first line of the code into **\<head>** and next line of the code into **\</body>** of your website.
5. That’s it! We did say it was simple… Now check out your website to verify that everything's working properly :)

<br>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help:)<br>


# Desktop Call Management

SaleAssist Desktop Call Management features help how you can manage the inbound calls.

Steps to be follow:-

1. When a customer calls, the user receives a notification on the desktop, and click on attend call to connect with the customer.

<figure><img src="/files/FM9hMtOjsxOCuDuI6uRD" alt=""><figcaption></figcaption></figure>

2. This is the agent's screen, During the call, the user will see few control button in the bottom. With these control buttons user can turn off your camera and mic, flip the camera, chat with the customer, share the screen to the customer and end the call.

&#x20;       In Active Request Section, the user see all the details of the customer.&#x20;

<figure><img src="/files/eWrihMrC9hdQyNTBgpup" alt="" width="563"><figcaption><p>Agent is in call with the customer</p></figcaption></figure>

{% content-ref url="/spaces/2E1BRiNMSRbVYjk7d1Xu/pages/4iKR4b9busY8pT87llps" %}
[Features Overview](/features-overview/live-video-calling)
{% endcontent-ref %}

3. User can add the in-call notes as well, these notes will not be reflected to the customer

<figure><img src="/files/fF31JkYHcc5Aw4I9sLx8" alt="" width="563"><figcaption></figcaption></figure>

4. User can also record the call, put the call on hold, ask PIP mode,  add virtual background by clicking on the three dot button.

<figure><img src="/files/KN9YdnqqCOn2zdH3pcOk" alt="" width="375"><figcaption></figcaption></figure>

5. The user (agent) can transfer the call to the another agent by clicking on the call transfer button.

<figure><img src="/files/w9s5n2R3JH7jrAjpBBmC" alt="" width="375"><figcaption></figcaption></figure>

6. The user can share the link to the third user by click on the share button.

<figure><img src="/files/Zo4RlLbhJH35AaUj9xTr" alt="" width="375"><figcaption></figcaption></figure>

7. This is the feedback form for the agent, the agent can add the details as per the customer's requirement (it is customizable). You can customize the form according to your requirement

<figure><img src="/files/0vXsjmFFq2n6x99T9lBD" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/B3hBE91OVJrfAAOgPDil" alt="" width="375"><figcaption></figcaption></figure>

8. The user can end the call by click on the end button.

<figure><img src="/files/zXmMO9qJZbVkIq6GeXA4" alt="" width="375"><figcaption></figcaption></figure>


# Live Stream Selling

The SaleAssist Live Streaming Selling feature helps you to reach thousands of audiences at the same time via different social channels as well on your website.

Below are some prerequisites to Go Live on the SaleAssist Platform.

1. Add Products (which salesperson/influencer will showcase during the live stream)
2. Add Social Channels (where the stream will be published at the same time)&#x20;

**ADD PRODUCTS: -**&#x20;

To add products, login to the SaleAssist Dashboard here  <https://my.saleassist.ai> .

1. Click “Assets” tab on top header&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/j0JY2iSuw86_O7pej3dqmYuB0qPx2fyhCZT6u-S-uDXDhck_LRmx0L_phWZNFkOQrqhA2PbKiDAXAUdpz-3n5JWqlTBYRIX9w3LPfN29CFyluLPM7sIFyrrPM--DQ_mdXcuX9glUCXT1FqIdsITb7Q" alt=""><figcaption></figcaption></figure>

2. Click on the “Products” tab and then click “Add Product”.

<figure><img src="https://lh7-us.googleusercontent.com/qwos5dNoTs66lfwp3oEZ5aSp9r6jLxc3AjbqIWZKqr4N9tyuD4rZVjX6etcoSVcyYBXj-UU0hYLKunAbHBVzy99QV5f-ZW2tY2Wg7r9S0ntJSNWFz2D0BLuVVXmE8qSfVdjoP13QsG-ssU11waFk7w" alt=""><figcaption></figcaption></figure>

3. Add Product details here like below: -

a. Product Name

b. Product Images

c. URL to cart page to buy product&#x20;

d. Product Price details for Buy/Bid/Book modes during live shows so that customers can take relevant actions while watching streams.

e. Product description – to show more details about the products

<figure><img src="https://lh7-us.googleusercontent.com/H6d2RKMpRP5byPRRFNeN-akwj8jV4c4PC6NHmNIqPgyA4qDjPTA3VWXIBwehk5xPu9eKD181aqc3K4emgPjyz3VWHmLlLfTFVNXgyVY5tTHQ3rKEOC18Lq6hBskoABUBAverN805zwOraMCBWA7yuA" alt=""><figcaption><p><strong>Steps you need to follow</strong></p></figcaption></figure>

*<mark style="color:yellow;">**Save it after adding all details to it!**</mark>*

1. Go to “Settings” in profile icon and then click on “Integration” tab.

<figure><img src="https://lh7-us.googleusercontent.com/t2q9wj73s6O-djUAPJIyjgHxA6-14GUtL3O2N-2_0NoohHBDWMdtC9kEk6ZKS2HXLLzw4ppelrfVZNJrZ9To7D5PaGc2JAlZv77RMP7hT6no3f7ILWfm4oEf6zsG0li82ZYAFXJI3M2okdO8VFaawg" alt=""><figcaption></figcaption></figure>

2. Click on “Add channel”

<figure><img src="https://lh7-us.googleusercontent.com/IJGN6T21j3-azI4tfL9RdvwU668syCh9_OLT91VJ66_0Q7bHfbG6Yz2X7cVgJ9rn7EYvFY4z6jrOGJ9VlKlv_F1iRT9jxvjwS2NCjaFKD5w_fZjIPdcHO37aW9m-hEZyriLmRBHYgikPQLcB1YoMTA" alt=""><figcaption></figcaption></figure>

3. Add Channel RTMP URL and Stream key by following the steps mentioned in the document “Social Channel Settings”.

<figure><img src="https://lh7-us.googleusercontent.com/-ugA4vetqg9v_DWRGg9V5Bt_uYXTZEaARoQjurjbjWYuV3hx54h1QP-iV4r-2yBZNhnF4AnGRNddgkIqg7cRmfBB9M4Z7AWb2NGCPk6cXvElmx1yyNzh76wzmMfogF2DgjSCVEDsb0Q-QM_F_LbKeA" alt=""><figcaption></figcaption></figure>

***Note:- Always remember to save the modifications.***

<br>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# How to go Live?

Click on the livestream button on the home page.

<figure><img src="https://lh7-us.googleusercontent.com/SL9RhMJA8TDkYpUN-2Ft6vK8kE4brX3qDWvOcT6UN_1aVVJQOj9uanWcXtulyWzPPtu-ZqDZzDh__nc5ZQJdl0pVLOQW6MmgE_uF0PSJ-8nLKcClEqc8JKcUB5nzFWu8tBJXu6DUQq6rmrlMJxA_-wA" alt=""><figcaption></figcaption></figure>

Now, before getting started with your livestream you will get different options to endow.

**Enable Chat Moderation:-**&#x20;

Enable chat Moderation allows you to censor foul invective/insulting or abusive words.

1. Censor automatically - It will automatically censor the cuss words or URLs  and disable them.
2. Censor additional words - You can add some bad words or unwanted URLs you don't want in your live chat during a live stream.
3. Manually approve-  You can Manually approve the messages to publish during a live stream.

<figure><img src="https://lh7-us.googleusercontent.com/BC5Mu8lPkoCajwCf0g6W9rU188fQKCXtxQbhVNDcbPzJ-t7g-NBadMMkK3H_nyZMDVrpSDhkLP_OE_1b8dlVQBdu8UxaqGlbUeGRlpyQ0C00J2pJLdnveK7Vno5lDxxLCcfUx_MoffivYXeEAM09QyM" alt=""><figcaption></figcaption></figure>

**Registration Form:** If you want your customers to fill in some details before effecting an entrance into your live stream, you can facilitate this option.

*<mark style="color:yellow;">**You can also redesign your form by dragging and dropping from the right hand side of the dashboard.**</mark>*

<figure><img src="https://lh7-us.googleusercontent.com/xeddaZQuoo94mlpHoDqoVVM1-izOWXihdpSs3f3QxE4IOhPDG-Cq-OgBXW4Hv2N_9z3SkmRlcbirD8463yobrFI1xH59v62ahyJD4GvNOjSLKqOwxDGkLdxYcVu9NQoDNwEvNtKHQGg73DslBQyGGto" alt=""><figcaption></figcaption></figure>

**List Products:-**  This alternative helps you to add products in your live streaming.

**Select Product(s):-**  Now you can pick-out the products you have added in your product list.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/o83wGjMGv8hjS9ghwoP7ilDWTChhHwHOrP1wlon62ZcsRv4tDUUfxNtd1xaQGOtbJGKsqC0cPujePoneGlTLqyIfeIWr_6D-OBb2l-B8qe6WClcbGv_v2SaHczD5zafpqaGs4rLPqwb8gr06e1eji_s" alt=""><figcaption></figcaption></figure>

It encounters three modes to allow customers interact during live stream :-

1. Buy
2. Bid&#x20;
3. Book

<figure><img src="https://lh7-us.googleusercontent.com/kreKIzBpec7riNsGEsd9lZdNVZWS1VD3FpntaVH9Az6eS6ddeEZdI4mBrLiuqMToIeTQHmKKixn9CAXZ5g2soCUTiqFSgWy2KYYHMR-cvIAC5Am5q1BaAAAOtaB5UNJTNPODWQpeB6Xv_jOsw1j-1sE" alt=""><figcaption></figcaption></figure>

**Select Widgets:-** Select the widget, you desire to go live on. Like you can select the respective widget which is integrated on your website so that visitors coming to your website can see your live show.

**Select Channels:-** Now you can select the social media channels and/or Widget for the website where you need to publish the stream.

*<mark style="color:yellow;">**Hit “Start Livestreaming”. You are Live Now !**</mark>*

\ <br>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.

<br>


# Get RTMP and Stream Key from social channels.

Follow the steps mentioned below for any or every social media platform you want.

1. **YouTube:-**

To generate a Stream Key and URL:

* Log in to [YouTube.com](https://www.youtube.com/) on a web browser.&#x20;
* Click the camera icon in the top-right corner.
* Click Go Live in the dropdown menu.
* If the Go Live option is not available, visit <https://youtube.com/features> to enable live-streaming&#x20;
* On your account.
* Click Start next to the Later Date (i.e. pre-scheduled) option.
* Click Go next to the Streaming Software option.
* Click Schedule Stream in the top-right corner.&#x20;
* You will have the option to create an entirely new stream or to reuse the settings from a previous stream.
* Enter the stream details, including a title and description.
* Select the desired customization settings for the stream.
* Click on Done once all stream settings have been configured.
* You will be taken to a page with all the stream details.
* Click the toggle next to Auto-start under Additional Settings.
* Click Enable.
* This will give Switcher Studio the permission to start the live-stream.
* Click the toggle next to Auto-stop under Additional Settings.&#x20;
* Click Enable.
* This will give Switcher Studio the permission to stop the live-stream.
* &#x20;Leave this webpage open and continue the following steps in a new tab or window.
* This information will need to be accessed for the next steps.

Note: If you receive an error message about a duplicate stream key, click Reset to get a new stream key.

&#x20;    ![](https://lh7-us.googleusercontent.com/RIm9JCOLnVPgSpC0AnckKphH1cZ-34VC3cY-Pyi-5UtPPcFc5XHqwUVy8y2JzB37449brFxvYjZ7dCj0TpRHNqbuozJgWw5BJovcO1Eq_7CW7jWkPo6cpIvgVRV7JGwUce37L1_UztA_ODVqdu9ldQ)

\
\ <br>

2. **Facebook:-** &#x20;

a. Login to your Facebook account and go to  <https://www.facebook.com/live/create>

b. Create a new post and click on the Live Video option.

<figure><img src="https://lh7-us.googleusercontent.com/jDeImIZEgbkbrq94GOFoUanA8QXQIwgnzEWIPeW2nZtJJPc8SeUu2Wnv56yb7EJBCTDLv1pPdRyjjBxMAuYulaKMNBYs5mlP_fkf2r-OU0auvLjj3gcusA1hmb0c6mc3FcGPzOznPZEBEmB-H6Pvtg" alt=""><figcaption></figcaption></figure>

c. In the Go live section click Create Live Video.

d. If the Facebook Video Producer dialog opens, close it.

e. In the Select a video source section, click on Streaming Software. &#x20;

<figure><img src="https://lh7-us.googleusercontent.com/s_bV2D8XvZ5GpmGogdB-qUEXX6dg7nYVmpUldVBfeHwlMnxS2sUFU8Hdp995MiP8RtOiehECzB9VcsaLzwzGDHeU_LiQvpOfSLwVR79euDWhW1g1CFIxSfiZlsbCpRvle-0kdn1jmeVpjKGVyGEjUw" alt=""><figcaption></figcaption></figure>

f. Facebook will display a Stream Key.

g. Expand the Advanced Settings section to reveal the Server URL. The Stream Key and Server.URL will be used in the Live- module.

&#x20;     ![](https://lh7-us.googleusercontent.com/tA37EopjmTdXCwE9VXAlSu2gejeWV73Wh0kxRonSpOJGdwrzvTYIsn2g9KBIsjtgbf0tOMHIecqXqjsH6Ds8czCLgI0o6PBwhc2d9O4tWFByxXEovdomGt4JsFUO9BkzZW4jfVL7BSCNp7RX72y4Dw)

\
h. Copy the Server URL to the clipboard.

i. In the Live module, paste the Server URL into the RTMP Output URL field on the Control Room page.

j. Copy the Stream Key from Face-book to the clipboard.

<br>

&#x20; **3. INSTAGRAM:-**

1. Download and install [Yellow Duck](https://yellowduck.tv/).&#x20;
2. Start the Yellow Duck application on your device and log in with your Instagram credentials.

*<mark style="color:yellow;">**Note: If you have two-factor authentication enabled on Instagram, please disable it to be able to log in to Yellow Duck.**</mark>*

&#x20;              ![Login to Instagram with YellowDuck](https://lh7-us.googleusercontent.com/DXnkO1AV1CTlZjvFr58Y8zJ1PyXr9v9Yem7nFtwEf6Wu3Ppn-hVMYzNjVXRkmCTMXhMEL_Sjor7eYzJOKQ0_zz5XWHy5wc3mXNtI23CKRYHeNDptV6oU0YoFc1BGZvGDaZnjuGq5KNRBeyQPsP7ohA)

<br>

3. Copy your RTMP URL and stream key from Yellow Duck into the fields of your Custom RTMP channel and click Save.

&#x20;              ![Copy RTMP details from YellowDuck](https://lh7-us.googleusercontent.com/ebOqP2nvALaukUAS-7lvrphmjP4s7p-PFJ9Ix35qHqHpiCKafIsRu-IwJBIGRBXei26f349jG8fqRk4PI_cdOnDJ4De94t0e6O0X3-50J__7BIyof1F80bgFx27Zqt8dZEz6ktP8iqMa2EF7dkEu7g)

&#x20;                ![Custom RTMP Channel Details](https://lh7-us.googleusercontent.com/drJWarLuIw4SXrh6RGIakvWlq7igJQEEB2wnBRxqeqRXfI2Y3qaJKhpgUZE_wgSct5m8Zy5Zm_lJG2hoOGQJUQH_u6WdC4vfvnjlfQYKLaw7xrcbpHt10mWMWkVXCaXiERkt4aa5rojAtlq7YtPHKw)

4. Click on the "Start Broadcast" button on the Yellow Duck application.

<br>

**5. LinkedIn:-**

Refer LinkedIn official documentation: &#x20;

<https://www.linkedin.com/help/linkedin/answer/a564446/go-live-using-a-custom-stream-rtmp-?src=direct%2Fnone\\&veh=direct%2Fnone>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.<br>


# Shoppable Videos Tiles

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# How to use?

Pre-installation requirements:

1. Login to SaleAssist Dashboard.
2. Make sure you have access to your website's admin panel. You’ll need it to get the JS script code to integrate in your website HTML code.

&#x20;    Installation steps:

1. After you register, go to the "Assets" tab.

<figure><img src="/files/vkMJ9pbv0aUqz9Qsyem5" alt="" width="563"><figcaption></figcaption></figure>

2. Click on “Video Tiles” tab and then click on “Add Content” to add new video tile as per your use case:

<figure><img src="/files/DJuPn6IY4UbTm5NFPoRi" alt=""><figcaption></figcaption></figure>

3. Now follow below steps:&#x20;

&#x20;a) Upload your video from your device.&#x20;

&#x20;b) Add specific playlist name with required theme color.

<figure><img src="/files/tnS33H0LrnBSQneZBUfK" alt=""><figcaption></figcaption></figure>

4. Next steps is to Map your products or Add products. Here you can skip mapping product and add Custom CTA with respective PDP page link to it.

<figure><img src="/files/pKCpmHkfDG5YwcSa0Csx" alt=""><figcaption></figcaption></figure>

4. Now for the rest of the videos follow the same steps as mentioned above and that's it you have created a playlist.
5. To preview, the shorts select the preferred playlist from the drop-down.

<figure><img src="/files/bJWwII6bTS9gsvQsTmGS" alt=""><figcaption></figcaption></figure>

6. Select the particular playlist and you can preview it/get the code for integration.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.

### Shoppable Videos in 7 awesome styles

1. **Hero Banner Video** - Highlight the product which you wish to promote in immersive video built for your hero banner. Warning: May cause instant shopping sprees. Additional features are Embedded CTA, Auto Play, Responsive and Easy Embed.

Check out the Hero Banner Video format by clicking on this link - <https://client-static.saleassist.ai/f284ca03-de96-412d-9f21-670b1066d177/HeroBanner.mp4>

2. **Video Catalog for Social Sharing** - Generate multiple catalogs easily and share on social media, WhatsApp, email, easily. Additional features are Embedded CTA, In-built lead capture, Branded Catalog links and Reports & Analytics.

Check out the Video Catalog for Social Sharing format by clicking on this link - <https://client-static.saleassist.ai/f284ca03-de96-412d-9f21-670b1066d177/WhatsappMedia1.mp4>

3. **Digital Video Storefront** - Bring in-store experience online with always on digital storefront to showcase your products. Additional features are Al Enabled Chat, Lead Capture, Live / Pre-recorded option and Flexi Display.

Check out the Digital Video Storefront format by clicking on this link - <https://client-static.saleassist.ai/f284ca03-de96-412d-9f21-670b1066d177/DigitalStorefront.mp4>

4. **Shoppable Video Carousel** - Increase customer engagement by adding short video content as carousel and make it shoppable & interactive. Additional features are Create multiple playlist, Tag multiple products, Fast loading and Responsive for multiple devices.

Check out the Shoppable Video Carousel format by clicking on this link - <https://client-static.saleassist.ai/f284ca03-de96-412d-9f21-670b1066d177/CarouselTanntrim.mp4>

5. **Dynamic Product Tagged video** - Create a video story displaying collection of products and tag the product at specific time so consumer can easily identify the product and buy while watching. Additional features are Dynamic tagging, View collection, Embed Easily, Tag Pointers on Timeline.

Check out the Dynamic Product Tagged video format by clicking on this link - <https://client-static.saleassist.ai/f284ca03-de96-412d-9f21-670b1066d177/InteractiveVideo.mp4>

6. Floating Video - Engage audience with short product video matching the context of product page and increase add to cart ratio. Additional features are PDP page integration, PIP mode, Custom CTA and Inbuild lead capture.

Check out the Floating Video format by clicking on this link - <https://client-static.saleassist.ai/f284ca03-de96-412d-9f21-670b1066d177/Floatingvideo.mp4>

7. **AI Product Frames** - Engage. Educate. Empower. Enhance your online store with AI-powered shoppable video tiles, the future of interactive shopping. Additional features are Short Video FAQs, Chat with AI Expert, Multi lingual Chat and Shoppable CTA.

Check out the AI Product Frames format by clicking on this link -


# Integration

1. Select the playlist you want to integrate.
2. Click on Preview Shorts to review before integrating it.

<figure><img src="/files/Fomm8w0mp4VSph74CjxZ" alt=""><figcaption></figcaption></figure>

3. Click “Generate code” button to get the integration code.

<figure><img src="/files/1seuq5m492EW8s4qyrFD" alt=""><figcaption></figcaption></figure>

4. Here, you can select the mode (stories/tiles) for your videos and copy the script by clicking the “Copy Code” button.

*<mark style="color:yellow;">**Code Sample:-**</mark>*

<figure><img src="/files/FnezsG3uy2t6uxGo6CgA" alt=""><figcaption></figcaption></figure>

1.Paste the script into either the or the of your website. We recommend placing it in the \<head>\</head>\</body>

2\. And add Div section code to the place where you want to showcase these video tiles on your website.&#x20;

**For Floating Video -**&#x20;

1. Follow all the instructions mentioned above till last step.
2. To add video in the Product page, add the highlighted the code the product page where you want the video to be placed.

<figure><img src="/files/xwTnXBBVd05Hq5L6DwEl" alt=""><figcaption></figcaption></figure>

3. Once done, go to the playlist and select the video that you want to add in the product page.

<figure><img src="/files/Pza86Cml2uNxi5hPOFih" alt=""><figcaption></figcaption></figure>

4. Go to edit and the product page URL in the Source URL.

<figure><img src="/files/3oWXUKkPn0vppBizvkNq" alt=""><figcaption></figcaption></figure>

That’s it! We did say it was simple… Now check out your website to verify that everything's working properly :)

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Strike

It's a reverse trigger to nudge the customer to connect.

{% content-ref url="/spaces/2E1BRiNMSRbVYjk7d1Xu/pages/4iKR4b9busY8pT87llps" %}
[Features Overview](/features-overview/live-video-calling)
{% endcontent-ref %}

**How this feature works -**

When the customer meets the predefined criteria, a nudge will appear on their screen, prompting them to connect on a video call or chat for further assistance

**Trigger Criteria for Nudge:**

The nudge is triggered when any of the following conditions are met:

1\. If the user spends 30 seconds or more on the page.

2\. If the user visits the page 3 or more times.

3\. If we detect 3 or more reload or close attempts.

If any of these conditions are met, the user qualifies for the nudge.

The nudge criteria can be customized based on the specific needs. You can set the criteria based on priority, time spent on the page, repeated visits to the page, exit intent on the page, etc.

&#x20;

Nudge Customization:

The nudge can be customized in the following ways:

1\. Change the message: Adjust the text displayed in the nudge.

2\. Change the CTA: Customize the call-to-action button.

3\. Change the video/image: Personalize the media displayed with the nudge.

**Additional Filters:**

In addition to the primary criteria, there are several filters available to refine when the nudge is triggered:

1\. Location filter: Custom triggers based on user location.

2\. Pages filter: Specific pages where the nudge should appear.

3\. Timeout filter: Adjust based on time-related conditions.

**In Strike, we have two modes: manual mode and auto mode.**

**1.      Manual Mode**

&#x20;In Manual Mode, agents have the ability to monitor customers who are actively navigating the website and have met the predefined criteria. The agent's screen displays key details about the customer, such as: Page Visit Time, Duration of Stay, Mobile Number, State, City etc.

When the agent identifies a customer who might benefit from assistance, they can initiate a proactive nudge. The agent can click the 'Engage' button to offer live assistance.

<figure><img src="/files/qAz7fnCYXu0VTK5sS8GL" alt=""><figcaption></figcaption></figure>

**Manual Mode User Interaction:**

&#x20;Yes: On clicking "Yes," customer connect with the agent on video call.

No: If the user clicks "No," the popup closes.

<figure><img src="/files/VaoGAA7bOMDOnw3ymXT0" alt=""><figcaption></figcaption></figure>

**2.  Auto Mode**

&#x20;In Auto Mode, the Auto Nudge is triggered for customers who meet the predefined criteria. This process is fully automated, with no reliance on agents. the Auto Nudge handles customer interactions through the AI bot. However, if necessary, an agent can seamlessly take over the conversation at any point.

&#x20;

**Auto Mode User Interaction:**

&#x20;Yes: On clicking "Yes," WhatsApp opens. From here, the user can be directed to live agents or an AI-powered chat.

No: If the user clicks "No," the popup closes.

<figure><img src="/files/p3zV67R46I5EEwI9ysRm" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/bBzCzWvspIyBIcDnZgeP" alt=""><figcaption></figcaption></figure>


# AI Videos

AI videos can be generated within few minutes just by using the Saleassist dashboard. You just need to follow a few simple steps.

<figure><img src="/files/4d8VRunyCOM0x5JWQabH" alt=""><figcaption></figcaption></figure>

1. Go to the home page and click on the create AI video button.
2. Now add a title to the video.&#x20;

*<mark style="color:yellow;">**You will multiple options now to select the model, Background, voice, music etc.**</mark>*&#x20;

3. Click on the first image to select a model of your choice.

<figure><img src="/files/olAVCzWKAThPrIg2KaWF" alt=""><figcaption><p><em><strong>Select a model</strong></em></p></figcaption></figure>

4. For the background, jump yo the second image here you can add your own background also by clicking on the + icon.

<figure><img src="/files/VHGP8XuevxAIFI0kZayo" alt=""><figcaption><p><em><strong>Select a background</strong></em></p></figcaption></figure>

5. Choose the voice and language you wish to use. By selecting the music icon, you may also include music in your AI video.

<figure><img src="/files/wX1W0gtVRIXEshpGEL0Y" alt=""><figcaption></figcaption></figure>

6. Choosing the last symbol will allow you to add more than one scene to your video. To add your new scene, simply click the final icon.

<figure><img src="/files/jFvpQ9vZ9Lk0dTBdwf9L" alt=""><figcaption></figcaption></figure>

7. Now add the context you want your model to speak in the speech to text box and click on the initiate icon.

<figure><img src="/files/uZ8ijhrssyPuRUr5aomh" alt=""><figcaption></figcaption></figure>

*<mark style="color:yellow;">**Wait for 5-10 mins and your video will be ready.**</mark>*

Where to find the video you have created? Follow the steps.

1. Go to assets.
2. Click on the media tab and you will find your video there!

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Co-Browsing

Co-Browsing is a technology that allows two or more people to simultaneously browse the same website or web application together.

**Customer Side Instructions**

1. Customers can request the co-browse section by clicking on the 'Generate Co-browse Code' option in the footer section.

<figure><img src="/files/5z7850DmAYifSewpq8QJ" alt=""><figcaption></figcaption></figure>

2. After clicking the button, a pop-up appears on the customer's screen. The customer needs to provide the generated code to the agent. The code remains valid for 15 minutes.

<figure><img src="/files/ZorhG6lKTOtKs1Zu64xH" alt=""><figcaption></figcaption></figure>

**Agent Side Instructions**

1. The agent must click on the 'Co-browse' button to open the co-browse section.

<figure><img src="/files/96Q5bWx97OGdkiLFxVKj" alt=""><figcaption></figcaption></figure>

2. Enter the co-browse code provided by the customer and click on the 'Connect' button.

<figure><img src="/files/m11CHXTW1VFNoPpwFJhi" alt=""><figcaption></figcaption></figure>

3. A pop-up will appear on the customer's screen. The customer must click on 'Allow' to grant access.

<figure><img src="/files/ZOP7J9A9CM8LcBXA5Bfi" alt=""><figcaption></figcaption></figure>

4. Once the customer grants permission, the agent can view the customer's screen.

<figure><img src="/files/TxELpUBuegKhBbN6ApUF" alt=""><figcaption></figcaption></figure>

### Co-browse Tools and Features

1\.       **Highlight Tool**

&#x20;       Agents can use the highlight tool to point out important areas on the customer's screen.

<figure><img src="/files/jnnQTBddtuDQxovEBKqn" alt=""><figcaption></figcaption></figure>

2\.  **Drawing Tool**

Agents can draw on the screen using the drawing tool. These drawings will appear on the customer's screen in real-time.

&#x20;                   &#x20;

&#x20;            Agent’s Side                                                                                      Customers side

<figure><img src="/files/0joGXTnY3mfNcnGJt5EQ" alt=""><figcaption></figcaption></figure>

3. Disappearing Ink

Agents can highlight points that will automatically disappear after a few seconds.&#x20;

<figure><img src="/files/u7PsSzUdyBguDYWSZbrD" alt=""><figcaption></figcaption></figure>

**4.  Erase Tool**

&#x20;  To delete highlights or drawings, agents can click the '**Delete**' button.

<figure><img src="/files/yaLZns9CRNxiJoli1ucQ" alt=""><figcaption></figcaption></figure>

5. C**olor Customization**

Agents can change the color of the pen by clicking on the '**Color**' icon.

<figure><img src="/files/GUwKtDmJkiD58xdY3HNR" alt=""><figcaption></figcaption></figure>

6. **Remote Control**

If the agent needs access to the customer's screen:

o   The agent clicks on the '**Remote Control**' button.

o   The customer must click '**Allow**' to grant control.

o   Once access is granted, the agent can perform actions on behalf of the customer.

&#x20;

If agent wants to access the customer screen he needs to click on the remote control button. After agent accessed the customer needs to click on the allow to give access to the agents

<figure><img src="/files/54L5lt15DzCZlEwiiBql" alt=""><figcaption></figcaption></figure>

Now agents have the access he can click on the customer behalf

<figure><img src="/files/OYEHYu8apotDdLeWdnjF" alt=""><figcaption></figcaption></figure>

Ending the Co-browse Session

&#x20;

·       Agents can end the session by clicking on the 'End' button on the left side.

·       Customers can end the session by clicking the 'End' button on their screen's right side.

&#x20;

&#x20;                    Agent’s Screen                                                                   Customer Screen

<figure><img src="/files/i3oBD3740QGZQBuU2vjB" alt=""><figcaption></figcaption></figure>

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FELJSGLWKcoec1pzU5TGL%2Fcobrowsing-VEED.mp4?alt=media&token=e13acbb3-2ea8-4671-86eb-ee21ee610043>" %}
Click to Play
{% endembed %}

<mark style="background-color:yellow;">**Note:- During the co-browsing session with the customer, agent access to the checkout page will be restricted to ensure privacy and security.**</mark>&#x20;


# Mobile SDK integration


# Cobrowse - Flutter SDK

Flutter iOS and Android SDK

Run this command:

With Flutter:

```shell
 $ flutter pub add cobrowse_sdk_flutter
```

This will add a line like this to your package's pubspec.yaml (and run an implicit `flutter pub get`), If it is not added automatically, you can add the following package to your `pubspec.yaml`:

```dart
...
dependencies:
  ...
  cobrowse_sdk_flutter: ^1.0.0
...
```

Alternatively, your editor might support `flutter pub get`. Check the docs for your editor to learn more.

Add the following lines to your code which will register this device so you can connect to it. You could choose to do this on app startup, or when your users visits a support page in your application, or any other time.

```dart
import 'package:cobrowse_sdk_flutter/cobrowseio.dart';

CobrowseIO.instance.setLicense('put your license key here');
CobrowseIO.instance.start();
```

### Requirements <a href="#requirements" id="requirements"></a>

* iOS 12.0 or later
* Android API version 24 (7.0 Nougat) or later


# React Native SDK

This document assumes that you understand the basic terms of React Native App development

**Step 1** : Install react-native-video package

Using npm:

```
npm i react-native-video --save
```

Using yarn:

```
yarn add react-native-video
```

Documentation link:  &#x20;

{% embed url="<https://www.npmjs.com/package/react-native-video>" %}

**Step 2** : Add video tag to Main.js or App.js

Code Sample:

```
import React, {useEffect, useState} from 'react';
import Video from 'react-native-video';
import {
  SafeAreaView,
  Platform,
  StatusBar,
  StyleSheet,
  Text,
  useColorScheme,
  View,
} from 'react-native';

import {Colors} from 'react-native/Libraries/NewAppScreen';
function Main({navigation}) {
  const isDarkMode = useColorScheme() === 'dark';

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  const [isVisible, setIsVisible] = useState(false);

  useEffect(() => {
    const interval = setInterval(() => {
      setIsVisible(true);
      setTimeout(() => {
        setIsVisible(false);
      }, 5000);
    }, 10000);
    return () => clearInterval(interval);
  }, []);

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar
        barStyle={isDarkMode ? 'light-content' : 'dark-content'}
        backgroundColor={backgroundStyle.backgroundColor}
      />
      <View style={styles.container}>
        <View style={styles.content}>
          <Text>Content</Text>
        </View>
        <View style={styles.widgetContainer}>
          {isVisible && (
            <View style={styles.textContainer}>
              <Text style={styles.overlayText}>Tap to Navigate</Text>
            </View>
          )}
          <View
            style={styles.videoContainer}
            onStartShouldSetResponder={() => navigation.navigate('WebPage')}>
            <Video source={{
                uri: 'https://client-static.saleassist.ai/2953b7d7-fdf5-4cfd-b4e1-5808863a5f74/VAISHNAVIRAOEDIT-HV.mp4',
              }}
              ref={ref => {
                this.player = ref;
              }}
              muted={true}
              style={styles.video}
              onBuffer={this.onBuffer}
              onError={this.videoError}
              resizeMode={'cover'}
            />
          </View>
        </View>
      </View>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  container: {
    flexDirection: 'column',
    height: '100%',
  },
  content: {
    flex: 1,
    backgroundColor: 'white',
    justifyContent: 'center',
    alignItems: 'center',
  },
  videoContainer: {
    borderRadius: 100,
    height: 100,
    width: 100,
    backgroundColor: 'white',
    overflow: 'hidden',
    marginLeft: 'auto',
  },
  widgetContainer: {
    bottom: 10,
    right: 10,
    position: 'absolute',
    overflow: 'hidden',
  },
  video: {
    width: '100%',
    height: '100%',
  },
  overlayText: {
    fontSize: 11,
  },
  textContainer: {
    padding: 10,
    margin: 10,
    backgroundColor: 'white',
    borderRadius: 10,
    ...Platform.select({
      ios: {
        shadowColor: '#000',
        shadowOffset: {width: 0, height: 2},
        shadowOpacity: 0.5,
        shadowRadius: 4,
      },
      android: {
        elevation: 4,
      },
    }),
  },
});

export default Main;
```

**Step 3** : Install react-native-webview Package

Using npm:

```
npm i react-native-webview --save
```

Using yarn:

```
yarn add react-native-webview
```

Documentation link:&#x20;

{% embed url="<https://www.npmjs.com/package/react-native-webview>" %}

**Step 4** : Create WebPage.js

Code Sample:

```
import React from 'react';
import {WebView} from 'react-native-webview';
import {
  SafeAreaView,
  StatusBar,
  StyleSheet,
  useColorScheme,
  View,
} from 'react-native';

import {Colors} from 'react-native/Libraries/NewAppScreen';

function WebPage({navigation}) {
  const isDarkMode = useColorScheme() === 'dark';

  const backgroundStyle = {
    backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
  };

  return (
    <SafeAreaView style={backgroundStyle}>
      <StatusBar
        barStyle={isDarkMode ? 'light-content' : 'dark-content'}
        backgroundColor={backgroundStyle.backgroundColor}
      />
      <View style={styles.container}>
        <WebView
          source={{
            uri: 'https://jump-stg.saleassist.ai/source/1759ad2b-9059-4f74-ba1b-41c123493666?open=true',
          }}
          style={{flex: 1}}
        />
        </View>
    </SafeAreaView>
  );
}

const styles = StyleSheet.create({
  container: {
    flexDirection: 'column',
    height: '100%',
  },
});

export default WebPage;
```


# IOS SDK

This document assumes that you understand the basic terms of IOS app development

**Step 1**: Create a UIButton for the floating button

```
  let fabButton: UIButton = {
            let button = UIButton()
            button.setImage(UIImage(systemName: "plus.circle.fill"), for: .normal)
            button.tintColor = .white
            button.backgroundColor = .systemBlue
            button.layer.cornerRadius = 28 // Adjust the size as needed
            button.layer.shadowColor = UIColor.black.cgColor
            button.layer.shadowOffset = CGSize(width: 0, height: 3)
            button.layer.shadowRadius = 3
            button.layer.shadowOpacity = 0.7
            button.translatesAutoresizingMaskIntoConstraints = false
            return button
        }()
```

**Step 2**: Add the floating button to the view hierarchy and the FAB to the view controller's view

```
  override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationController?.setNavigationBarHidden(false, animated: false)
        let myURL = URL(string:"https://shorts-stg.saleassist.ai/source/e7a1dac1-56d1-445c-b1e3-bd6a487cda6b/")
        let myRequest = URLRequest(url: myURL!)
        webView.load(myRequest)
        
        // Add the floating button to the view hierarchy
        // Add the FAB to the view controller's view
                view.addSubview(fabButton)
                // Configure FAB constraints to position it at the bottom-right corner
                fabButton.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -16).isActive = true
                fabButton.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor, constant: -16).isActive = true
                fabButton.widthAnchor.constraint(equalToConstant: 56).isActive = true
                fabButton.heightAnchor.constraint(equalTo: 
                fabButton.widthAnchor).isActive = true
                // Add a tap action to the FAB
                fabButton.addTarget(self, action: #selector(fabTapped), for: .touchUpInside)
 
    }

    @objc func fabTapped() {
        
        let  newViewController:UIViewController = (self.storyboard?.instantiateViewController(withIdentifier:  "NewViewController") as? NewViewController)!
        self.navigationController?.pushViewController(newViewController, animated: true)
        
        }

```


# Android SDK

This document assumes that you understand the basic terms of Android app development in Kotlin language

## Part 1: To Add Floating Chat Icon:

* **Step 1** : Add a WebView in your layout file where you want to add your floating chat button

***

Code Sample

```
<androidx.cardview.widget.CardView
        android:id="@+id/fab"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="bottom|end"
        android:layout_margin="16dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        app:elevation="6dp"
        app:cardCornerRadius="40dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent">


        <WebView
            android:id="@+id/floatingWebView"
            android:layout_width="80dp"
            android:layout_height="80dp" />


        <View
            android:id="@+id/touchView"
            android:layout_width="80dp"
            android:layout_height="80dp"/>


    </androidx.cardview.widget.CardView>
```

* **Step 2**: Bind the webview to an activity in your code

```
floatingWebView = findViewById(R.id.floatingWebView)
// Configure WebView settings
val webSettingsFloating: WebSettings = floatingWebView.settings
webSettingsFloating.javaScriptEnabled = true // Enable JavaScript (optional)

```

// Load a URL in the WebView

```
floatingWebView.loadUrl("URL From Sales Assist Dashboard")
floatingWebView.webViewClient = object : WebViewClient() {
    override fun onPageFinished(view: WebView?, url: String?) {
        super.onPageFinished(view, url)

        val cssCode = "video::-webkit-media-controls-play-button, video::-webkit-media-controls-start-playback-button { display: none !important; }"
        floatingWebView.loadUrl("javascript:(function() { var style = document.createElement('style'); style.innerHTML = '$cssCode'; document.head.appendChild(style); })();")
    }
}
```

With This, you will see a floating chat icon in your app

Now we need to open the chat window with the click of the floating chat icon.

but before that, we need to create a web view for the opening window

* **Step 3**: Create A new Activity and layout with webview

```
<WebView
        android:id="@+id/webViewNext"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.webkit.WebSettings
import android.webkit.WebView

class NextWebViewActivity : AppCompatActivity() {
    private lateinit var webViewNext: WebView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_next_web_view)

        // Find the WebView by its ID
        webViewNext = findViewById(R.id.webViewNext)

        // Configure WebView settings
        val webSettings: WebSettings = webViewNext.settings
        webSettings.javaScriptEnabled = true // Enable JavaScript (optional)

        // Load a URL in the WebView
        webViewNext.loadUrl("your URL from sale assist dashboard")

    }
}

```

* **Step4**: Setup Touch Event with the floating chat icon

```
val touchView: View = findViewById(R.id.touchView)
        touchView.setOnClickListener {
            // Add your action here
            // For example, navigate to another activity
             val intent = Intent(this, NextWebViewActivity::class.java)
             startActivity(intent)
        }
```

## Part 2: Adding Slider View

* **Step 1** : Add a Webview in your layout file

```
<WebView
        android:id="@+id/webView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="48dp"
        android:layout_marginTop="16dp"
        android:layout_marginEnd="48dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        app:layout_constraintBottom_toBottomOf="@+id/webView"
        app:layout_constraintEnd_toEndOf="@+id/webView"
        app:layout_constraintStart_toStartOf="@+id/webView"
        app:layout_constraintTop_toTopOf="@+id/webView" />
```

* **Step 2** : Connect webview to Activity and load the URL in it

```
webView = findViewById(R.id.webView)
progressBar = findViewById(R.id.progressBar)
val webSettings: WebSettings = webView.settings


webSettings.javaScriptEnabled = true // Enable JavaScript (optional)


webView.webViewClient = object : WebViewClient() {
            @SuppressLint("NewApi")
            override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
                super.onPageStarted(view, url, favicon)
                progressBar.visibility = View.VISIBLE
            }


            @SuppressLint("NewApi")
            override fun onPageFinished(view: WebView?, url: String?) {
                super.onPageFinished(view, url)
                progressBar.visibility = View.GONE
            }
        }
webView.loadUrl("URL From Sales Assist Dashboard")
```

\
\ <br>


# How to delete my account?

Below are the steps to explain if someone wants to delete their account on SaleAssist App.

**Step 1:** Login to App with the login creds

![](/files/rA2JEJCTlG8lb2fqP4iA)

**Step 2:**   Click on "More Options" as shown in image below&#x20;

![](/files/qp9IURuw6R4NuIoRZwkm)

**Step 3:**  Now click on the profile section as shown below&#x20;

![](/files/iRIusYl017DU57l8Pwso)

**Step 4 :**  Click on "Delete profile" button to proceed further

![](/files/f7XNbZ6LwUIbYWoaLAWt)

**Step 5:**  Confirm account deletion by Accepting it .

<mark style="background-color:red;">Note: -  Once the account is deleted, all of its data will be deleted automatically and can not be recovered further.</mark>

![](/files/Kbj0zITsUdY8irOFiMiU)

**By following above steps, your account will be completely removed from SaleAssist.**

Thanks !!!


# Cobrowse - Android SDK

Cobrowse - Android Native SDK

## Installation

{% code title="build.gradle" %}

```java
dependencies {
    // ... other dependencies ...
    implementation 'io.cobrowse:cobrowse-sdk-android:2.+'
}
```

{% endcode %}

Add the following lines to your code which will register this device with the SaleAssist Cobrowse servers so you can connect to it. You could choose to do this on app startup, or when your users visits a support page in your application, or any other time.

```java
import io.cobrowse.CobrowseIO;
...

CobrowseIO.instance().license("put your license key here");
CobrowseIO.instance().start(this);
```

#### Registering on startup

If you would like your devices to register as soon as your app starts, we recommend doing this in your custom Application subclass `onCreate` method. For example:

```java
package com.example;

import android.app.Application;
import io.cobrowse.CobrowseIO;

public class MainApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        CobrowseIO.instance().license("put your license key here");
        CobrowseIO.instance().start(this);
    }
}
```

If you do not have a custom Application subclass in your app yet, you will also need to modify your application manifest:

{% code title="AndroidManifest.xml" %}

```xml
<application
    android:name=".MainApplication"
    <!-- ... -->
</application>
```

{% endcode %}

You may also start Cobrowse in your MainActivity or other Activity if necessary. In that case, the SDK will continue to function even as new Activities are being created and destroyed.

### Identify your devices

[Read here](/integration-guide/mobile-sdk-integration/identify-your-devices-for-cobrowse) for Identifying your devices to cobrowse.&#x20;

### Add your license key

Please send an email to **<support@saleassist.ai>** and get your free License Key.

This will associate sessions from your mobile app with your SaleAssist account.


# Cobrowse - IOS SDK

iOS SDK

## Installation

The SaleAssist Cobrowse SDK for iOS is available for installation via several dependency managers, or as frameworks to integrate directly into your project:

{% tabs %}
{% tab title="SPM" %}

<pre><code><strong>https://github.com/cobrowseio/cobrowse-sdk-ios-binary.git
</strong></code></pre>

Add the `CobrowseIO` package dependency to **your app targe**
{% endtab %}

{% tab title="Pod" %}

```ruby
pod 'CobrowseIO', '~>2'
```

*Don't forget to run `pod repo update` then `pod install` after you've edited your Podfile.*

*Make sure you are on the latest stable version of Pods. Run `pod --version` to check!*

**Note:** Depending on your project, you may also need `use_frameworks!` in your Podfile.
{% endtab %}

{% tab title="Carthage" %}

```
binary "https://raw.githubusercontent.com/cobrowseio/cobrowse-sdk-ios-binary/master/cobrowse-sdk-ios-binary.json" ~> 2.0
```

{% hint style="info" %}
Remember to run `carthage update` after modifying your Cartfile.
{% endhint %}

*More information about Carthage at* [*https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos*](https://github.com/Carthage/Carthage#if-youre-building-for-ios-tvos-or-watchos)*.*

Link the `CobrowseIO.framework` to your main app target that can be found at `./Carthage/Build/iOS`.
{% endtab %}

{% tab title="Manual" %}
Frameworks are available for manual integration into your Xcode projects from:

```
https://github.com/cobrowseio/cobrowse-sdk-ios-binary/releases
```

{% endtab %}
{% endtabs %}

Add the following lines to your code which will register this device with the SaleAssist Cobrowse servers so you can connect to it. You could choose to do this on app startup, or when your users visits a support page in your application, or any other time.

{% tabs %}
{% tab title="Swift" %}

```javascript
import CobrowseIO
...

CobrowseIO.instance().license = "put your license key here"
CobrowseIO.instance().start()
```

{% endtab %}

{% tab title="Objective-C" %}

```javascript
@import CobrowseIO;
...

CobrowseIO.instance.license = @"put your license key here";
[CobrowseIO.instance start];
```

{% endtab %}
{% endtabs %}

#### Registering on startup

If you would like your devices to register as soon as your app starts, we recommend doing this in your app delegate `application:didFinishLaunchingWithOptions:` method. For example:

{% tabs %}
{% tab title="Swift" %}

```javascript
import CobrowseIO

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
{
    CobrowseIO.instance().license = "put your license key here"
    CobrowseIO.instance().start()
    return true
}
```

{% endtab %}

{% tab title="Objective-C" %}

```java
@import CobrowseIO;

- (BOOL)application:(UIApplication*) application didFinishLaunchingWithOptions:(NSDictionary*) launchOptions
{
    CobrowseIO.instance.license = @"put your license key here";
    [CobrowseIO.instance start];
    return YES;
}
```

{% endtab %}
{% endtabs %}

### Identify your devices

[Read here](/integration-guide/mobile-sdk-integration/identify-your-devices-for-cobrowse) for Identifying your devices to cobrowse.&#x20;

### Add your License Key

Please register an email at **<support@saleassist.ai>** to get your  License Key.

This will associate sessions from your mobile app with your  SaleAssist Cobrowse account.

## Requirements

* iOS 11.0 or later


# Identify your devices for Cobrowse

Effortlessly identify, search, and filter devices on your dashboard by specifying custom key/value pairs as metadata.

To help you identify, search, and filter devices in your SaleAssist dashboard, it's helpful to specify any meaningful metadata.

You may add any custom key/value pairs you'd like, and they will all be searchable and filterable in your online dashboard. We've added a few placeholders for convenience only - all fields are optional.

{% tabs %}
{% tab title="Web" %}

```markup
CobrowseIO.customData = {
    user_id: "<your_user_id>",
    user_name: "<your_user_name>",
    user_email: "<your_user_email>",
    device_id: "<your_device_id>",
    device_name: "<your_device_name>"
};
```

{% endtab %}

{% tab title="iOS/ MacOs" %}

**Swift**

```swift
CobrowseIO.instance().customData = [
    kCBIOUserIdKey: "<your_user_id>" as NSObject,
    kCBIOUserNameKey: "<your_user_name>" as NSObject,
    kCBIOUserEmailKey: "<your_user_email>" as NSObject,
    kCBIODeviceIdKey: "<your_device_id>" as NSObject,
    kCBIODeviceNameKey: "<your_device_name>" as NSObject
]
```

**Objective-C**

```objectivec
CobrowseIO.instance.customData = @{
    kCBIOUserIdKey: @"<your_user_id>",
    kCBIOUserNameKey: @"<your_user_name>",
    kCBIOUserEmailKey: @"<your_user_email>",
    kCBIODeviceIdKey: @"<your_device_id>",
    kCBIODeviceNameKey: @"<your_device_name>"
};
```

{% endtab %}

{% tab title="Android" %}

```
HashMap<String, Object> customData = new HashMap<>();
customData.put("user_id", "<your_user_id>");
customData.put("user_name", "<your_user_name>");
customData.put("user_email", "<your_user_email>");
customData.put("device_id", "<your_device_id>");
customData.put("device_name", "<your_device_name>");
CobrowseIO.instance().customData(customData);
```

{% endtab %}

{% tab title="React Native" %}

```
CobrowseIO.customData = {
    user_id: "<your_user_id>",
    user_name: "<your_user_name>",
    user_email: "<your_user_email>",
    device_id: "<your_device_id>",
    device_name: "<your_device_name>"
};
```

{% endtab %}

{% tab title="Xamarin" %}

```
CobrowseIO.Instance.CustomData = new Dictionary<string, object>
{
    { CobrowseIO.UserIdKey, "<your_user_id>" },
    { CobrowseIO.UserNameKey, "<your_user_name>" },
    { CobrowseIO.UserEmailKey, "<your_user_email>" },
    { CobrowseIO.DeviceIdKey, "<your_device_id>" },
    { CobrowseIO.DeviceNameKey, "<your_device_name>" }
};
```

{% endtab %}

{% tab title="Windows" %}

```markup
CobrowseIO.Instance.CustomData = new Dictionary<string, object>()
{
    { CobrowseIO.UserIdKey, "<your_user_id>" },
    { CobrowseIO.UserNameKey, "<your_user_name>" },
    { CobrowseIO.UserEmailKey, "<your_user_email>" },
    { CobrowseIO.DeviceIdKey, "<your_device_id>" },
    { CobrowseIO.DeviceNameKey, "<your_device_name>" }
};
```

{% endtab %}
{% endtabs %}


# Use 6-digit codes

Cobrowse does not require any visible UI presented to the user but there is the option to present a UI that generates a 6-digit code. Learn more.

By default, Cobrowse does not require any visible UI presented to the user. It will exist in the background of your app, and only activate when agents initiate a new session.

You may optionally present a UI in your app that enables users to generate 6-digit codes. Users may then read a code over the phone or in chat, and agents can use the 6-digit code to initiate the Cobrowse session.

<mark style="background-color:purple;">**Important**</mark><mark style="background-color:purple;">: 6-digit codes expire after approximately 20 minutes, so it's best practice to generate a code only when a user wants to start a session.</mark>

To generate a 6-digit code in your integration you can use the following APIs. Once you have generated the code you can display it to the user in your own UI. You should only generate a code when a user needs it as they expire shortly after creation.

{% tabs %}
{% tab title="Web" %}

```javascript
// ensure Cobrowse is loaded
CobrowseIO.client().then(function() {
    // create a code a display it to the user using your own UI
    // ONLY GENERATE CODE WHEN NEEDED. DO NOT GENERATE CODE ON PAGE LOAD.
    CobrowseIO.createSessionCode().then(function(code) {
       console.log('your code is', code);
    });
});
```

{% endtab %}

{% tab title="iOS/ MacOs" %}

```
[CobrowseIO.instance createSession:^(NSError * err, CBIOSession * session) {
    if (err) NSLog(@"Failed to create code")
    else NSLog(@"%@", session.code);
}];
```

**Objective-C**

```objectivec
CobrowseIO.instance.customData = @{
    kCBIOUserIdKey: @"<your_user_id>",
    kCBIOUserNameKey: @"<your_user_name>",
    kCBIOUserEmailKey: @"<your_user_email>",
    kCBIODeviceIdKey: @"<your_device_id>",
    kCBIODeviceNameKey: @"<your_device_name>"
};
```

{% endtab %}

{% tab title="Android" %}

```javascript
CobrowseIO.instance().createSession((err, session) -> {
    if (err != null) Log.w("App", "Failed to create code");
    else if (session != null) Log.i("App", "Session code " + session.code());
});
```

{% endtab %}

{% tab title="React Native" %}

```javascript
CobrowseIO.instance().createSession((err, session) -> {
    if (err != null) Log.w("App", "Failed to create code");
    else if (session != null) Log.i("App", "Session code " + session.code());
});Session session = await CobrowseIO.instance.createSession();
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
Session session = await CobrowseIO.instance.createSession();
log('Your session code: ${session.code}');
```

{% endtab %}

{% tab title="Xamarin" %}

```javascript
CobrowseIO.Instance.CreateSession((Exception err, ISession session) => {
    if (err != null) Debug.WriteLine("Failed to create a code");
    else if (session != null) Debug.WriteLine("Session code " + session.Code);
});
```

{% endtab %}

{% tab title="Windows" %}

```javascript
Session session = await CobrowseIO.Instance.CreateSession();
Console.WriteLine("Code: {0}", session.Code);
```

{% endtab %}
{% endtabs %}

If you are **only** using 6 digit codes to start Cobrowse sessions in your implementation, you can prevent the SDK registering in your Cobrowse account until a screen sharing session is required. See the documentation on preventing automatic registration.

#### [Start and Stopping Cobrowsing](/integration-guide/mobile-sdk-integration/start-and-stop-cobrowsing)

#### Default 6-digit code UI <a href="#default-6-digit-code-ui" id="default-6-digit-code-ui"></a>

We provide a very simple default plug-and-play UI that provides the 6-digit code display functionality. We also provide a set of public methods if you prefer to build a custom UI (see above). Learn more at [Customize the interface.](https://docs.cobrowse.io/sdk-features/customize-the-interface)

Web

The Cobrowse.io SDK for web does not provide a default UI for generating 6 digit codes.

iOS

1. Add the appropriate code below into a view controller in your app.
2. Hook up a trigger for the action (or call it programatically if you prefer).

**Swift**

```
import CobrowseIO

class ExampleViewController: UIViewController {
    var sessionController: CBIOViewController!

    @IBAction func startCobrowse(sender: UIBarButtonItem) {
        self.sessionController = CBIOViewController()
        self.navigationController?.pushViewController(self.sessionController, animated: true)
    }

    // ... the rest of your view controller
}
```

For a full example written in Swift, see our Listr sample app at: <https://github.com/cobrowseio/Listr>

**Objective C**

Copy

```
@import CobrowseIO;

@implementation ExampleViewController {
    CBIOViewController* sessionController;
}

-(IBAction) startCobrowse:(id)sender {
    sessionController = [[CBIOViewController alloc] init];
    [self.navigationController pushViewController:sessionController animated:YES];
}

// ... the rest of your view controller

@end
```

{% code title="Android" %}

```
import io.cobrowse.ui.CobrowseActivity;

public class YourActivity extends Activity {

    // the rest of your Activity

    public void startCobrowse(View view) {
        Intent intent = new Intent(this, CobrowseActivity.class);
        startActivity(intent);
    }
}
```

{% endcode %}

React Native

We've provided a view that will do all the session creation and management for you. All you need to do is include this somewhere in your react native view hierarchy. It's not a requirement to use this UI, you can easily build your own if you like!

Copy

```
import { CobrowseView } from 'cobrowse-sdk-react-native';

export default class App extends Component {
    render() {
        return (
            <View>
                <CobrowseView />
            </View>
        );
    }
}
```

Flutter

The Cobrowse.io SDK for Flutter does not provide a default UI for generating 6 digit codes, but you can show the default UI shipped in the native SDKs using [Flutter platform channel](https://docs.flutter.dev/platform-integration/platform-channels). It's not a requirement to use this UI, you can easily build your own if you like!

**iOS implementation**

Copy

```
@import CobrowseIO;

UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController;
CBIOViewController *sessionController = [[CBIOViewController alloc] init];
[rootViewController presentViewController:sessionController animated:YES completion:nil];
```

**Android implementation**

Copy

```
import io.cobrowse.ui.CobrowseActivity;

Intent intent = new Intent(activity, CobrowseActivity.class);
activity.startActivity(intent);


```

**Xamarin.iOS implementation**

1. Add the appropriate code below into a view controller in your app.
2. Hook up a trigger for the action (or call it programatically if you prefer).

Copy

```
using Xamarin.CobrowseIO;

namespace SampleApp.iOS
{
    public partial class ViewController : UIViewController
    {
        private void StartCobrowse(object sender, EventArgs e)
        {
            NavigationController.PushViewController(new CobrowseViewController(), animated: true);
        }
    }
}
```

For a full example written in C#, see our sample app at: <https://github.com/cobrowseio/cobrowse-sdk-xamarin>

**Xamarin.Android implementation**

We have provided some default UI to make things easier to get started:

Copy

```
using Xamarin.CobrowseIO;
using Xamarin.CobrowseIO.UI;

namespace SampleApp.Android
{
    [Activity]
    public class MainActivity : AppCompatActivity
    {
        private void StartCobrowse(object sender, EventArgs e)
        {
            var intent = new Intent(this, typeof(CobrowseActivity));
            StartActivity(intent);
        }
    }
}
```

**Xamarin.Forms implementation**

The Cobrowse.io Xamarin SDK provides a convenient way to open the default 6 digit code UI. In your **cross-platform** project:

Copy

```
using Xamarin.CobrowseIO.Abstractions;

namespace YourAppNamespace.Forms
{
    public partial class YourPage : Xamarin.Forms.Page
    {
        public void StartCobrowse()
        {
            CobrowseIO.Instance.OpenCobrowseUI();
        }
    }
}
```

**.NET Mobile implementation**

Copy

```
using Cobrowse.IO;

public partial class MainPage : Microsoft.Maui.Controls.ContentPage
{
    public void StartCobrowse()
    {
        CobrowseIO.Instance.OpenCobrowseUI();
    }
}
```

**MacOS**

The Cobrowse.io SDK for MacOS does not provide a default UI for generating 6 digit codes.

**Windows**

The Cobrowse.io SDK for Windows does not provide a default UI for generating 6 digit codes, instead you can generate a code for your UI by using the `CreateSession` API.


# Redact sensitive data

Ensure secure remote screen viewing using the redaction API to automatically block sensitive data such as credit card details, social security numbers and more.

When remotely viewing a user's screen, there may be certain sensitive data that should not be viewable by the agent.

For this purpose, we provide a redaction API that automatically blocks out on device all sensitive data sources such as credit cards, social security numbers, etc. When certain data is redacted, it will never leave the user's device.

SaleAssist Cobrowse provides two methods for redacting sensitive data in your applications:

**1. Define the redacted views in your app source code (recommended)**

This is the recommended method as it will make sure your redactions are tied to application or websites code version.

{% tabs %}
{% tab title="Web" %}
Redactions are defined as CSS selectors, passed as an array to the SaleAssist Cobrowse SDK. We recommend using a simple css class to signify redaction where possible, although more complex selectors will also work.

```javascript
CobrowseIO.redactedViews = ['.redacted', ...some other selectors...]
```

Our web SDK also supports an un-redaction mechanism, where by you can define sub-elements inside of a redacted element that should be visible to the agent. You can specify un-redaction selectors like this:

```javascript
CobrowseIO.unredactedViews = ['.unredacted', ...some other selectors...]
```

{% endtab %}

{% tab title="iOS" %}
Implement the `CobrowseIORedacted` protocol on any `UIViewController` that contains sensitive views. This protocol contains one method:

```objectivec
// From this method you should return a list of the views you want
// Cobrowse to redact, for example:
- (NSArray*) redactedViews {
    return @[ redactedTextView ];
}
```

If making changes to your `UIViewController` subclasses isn't an option, we also support a [delegate style](broken://pages/uB1fg1hsEsQb9NocP8od) method to allow you to supply this information in one place. Implement `cobrowseRedactedViewsForViewController` in your `CobrowseIODelegate` class, then you can pass redacted views for a specific `UIViewController` in a single method:

```objc
-(NSArray<UIView*>*) cobrowseRedactedViewsForViewController:(UIViewController*) vc {
    NSMutableArray<UIView*>* redacted = [[NSMutableArray alloc] init];
    // Return a list of redacted views for a provided UIViewController
    return redacted;
}
```

**Redaction by default**

Sometimes you may want to redact everything on the screen, then selectively "unredact" only the parts your support agents should be able to see. This is particularly useful on applications that require a higher privacy standard or where only specific sections of the App should be visible to the agent.

To achieve this, you'll need to follow the delegate implementation and ensure you pass the all your applications root views to the Cobrowse redaction delegate method:

```objc
-(NSArray<UIView*>*) cobrowseRedactedViewsForViewController:(UIViewController*) vc {
    return @[self.window.rootViewController.view];
}
```

Once you've done this, your application root views will be redacted by default and you'll be able to un-redact child components to make them visible to the agents by implementing `cobrowseUnredactedViewsForViewController` in your `CobrowseIODelegate` class:

```objc
-(NSArray<UIView*>*) cobrowseUnredactedViewsForViewController:(UIViewController *) vc {
    UIView *unredacted = [self findViewByAccessibilityLabel:self.window:@"viewToBeUnredacted"];
    if (unredacted) {
        return @[unredacted];
    }
    return @[];
}
```

Alternatively, you can implement `CobrowseIOUnredacted` protocol in your `UIViewController` subclasses:

```objc
-(NSArray*) unredactedViews {
    return @[viewToBeUnredacted];
}
```

**Redaction of WebView content**

Your app may show web content that contains elements that you wish to redact. This can be achieved by setting the `webviewRedactedViews` property to an array of CSS selectors that identify the elements to be redacted.

```objc
CobrowseIO.instance.webviewRedactedViews = @[ @".redacted", ...some other selectors... ];
```

{% endtab %}

{% tab title="Android" %}
Implement the `CobrowseIO.Redacted` interface on any Activity that contains sensitive views. This interface contains one method:

```java
// From this method you should return a list of the views you want
// Cobrowse to redact, for example:
public List<View> redactedViews() {
    List<View> redacted = new ArrayList<>();
    redacted.add(findViewById(R.id.redact_me));
    return redacted;
}
```

If making changes to your `Activity` classes isn't an option, we also support a delegate style method to allow you to supply this information in one place. Implement `CobrowseIO.RedactionDelegate` interface in your `CobrowseIO.Delegate` class, then you can pass redacted views for a specific `Activity` in a single method:

```java
@Override
public List<View> redactedViews(@NonNull Activity activity) {
    List<View> redacted = new ArrayList<>();
    // Return a list of redacted views for a provided activity
    return redacted;
}
```

**Redaction by default**

Sometimes you may want to redact everything on the screen, then selectively "unredact" only the parts your support agents should be able to see. This is particularly useful on applications that require a higher privacy standard or where only specific sections of the App should be visible to the agent.

To achieve this, you'll need to follow the delegate implementation and ensure you pass the all your applications root views to the Cobrowse redaction delegate method:

```java
@Override
public List<View> redactedViews(@NonNull Activity activity) {
    return new ArrayList<View>() {{
        add(activity.getWindow().getDecorView());
    }};
}
```

Once you've done this, your application root views will be redacted by default and you'll be able to un-redact child components to make them visible to the agents by implementing `CobrowseIO.UnredactionDelegate` in your `CobrowseIO.Delegate` class:

```java
@Override
public List<View> unredactedViews(@NonNull Activity activity) {
    return new ArrayList<View>(){{
        if (findViewById(R.id.view_to_be_unredacted) != null)
            add(findViewById(R.id.view_to_be_unredacted));
    }};
}
```

Alternatively, you can implement `CobrowseIO.Unredacted` interface in your `Activity` subclasses:

```java
@Override
public List<View> unredactedViews() {
    return new ArrayList<View>(){{
        if (findViewById(R.id.view_to_be_unredacted) != null)
            add(findViewById(R.id.view_to_be_unredacted));
    }};
}
```

**Redaction of WebView content**

Your app may show web content that contains elements that you wish to redact. This can be achieved by setting the `webviewRedactedViews` property to an array of CSS selectors that identify the elements to be redacted.

```java
CobrowseIO.instance().webviewRedactedViews(new String[] { ".redacted",  ...some other selectors... });A
```

{% endtab %}

{% tab title="React Native" %}
To redact an element in your RN application you can wrap it in a tag provided by the Cobrowse module:

```javascript
import { Redacted } from 'cobrowse-sdk-react-native';

// ...
<View style={styles.container}>
    <Redacted>
        <Text style={styles.instructions}>This text should be secret</Text>
    </Redacted>
</View>
```

**Redaction by default**

Sometimes you may want to redact everything on the screen, then selectively "unredact" only the parts your support agents should be able to see. This is particularly useful on applications that require a higher privacy standard or where only specific sections of the App should be visible to the agent.

Once you've done this, your application root views will be redacted by default and you'll be able to un-redact child components to make them visible to the agents:

```javascript
import { Unredacted } from 'cobrowse-sdk-react-native';
// ...

<View style={styles.container}>
    <Text>This text should be secret due to the redaction by default implementation</Text>
    <Unredacted>
        <Text>This text will be visible to the agents because it's wrapped with an Unredacted component</Text>
        <Redacted>
            <Text>You can also nest redacted elements inside unredacted ones. This text will be hidden to the agents.</Text>
        </Redacted>
    </Unredacted>
</View>
```

**Redaction of WebView content**

Your app may show web content that contains elements that you wish to redact. This can be achieved by setting the `webviewRedactedViews` property to an array of CSS selectors that identify the elements to be redacted.

```javascript
CobrowseIO.webviewRedactedViews = [ '.redacted', ...some other selectors... ];
```

**Redacting views outside React Native**

Finally, within React Native some packages will render in new Windows/Root Views. You can follow the same [delegate implementation](broken://pages/uB1fg1hsEsQb9NocP8od#session-updated-events) to identify this views and redact or unredact them by default as required. You can check the provided examples for [iOS](https://github.com/cobrowseio/cobrowse-sdk-react-native/blob/master/Example/ios/Example/AppDelegate.m) and [Android](https://github.com/cobrowseio/cobrowse-sdk-react-native/blob/master/Example/android/app/src/main/java/com/example/MainApplication.java) which redact by default the React Native Dev menu keeping one of the options unredacted to illustrate the technique.
{% endtab %}

{% tab title="Xamarin" %}
**Xamarin.iOS implementation**

Implement the `ICobrowseIORedacted` interface on any `UIViewController` that contains sensitive views. This interface contains one `RedactedViews` property:

```csharp
public partial class ViewController : UIViewController, ICobrowseIORedacted
{
    // From this property you should return a list of the views you want Cobrowse to redact, for example:
    public UIView[] RedactedViews
        => new[] { redactedTextView };
}
```

**Xamarin.Android implementation**

Implement the `CobrowseIO.IRedacted` interface on any `Activity` that contains sensitive views. This interface contains one method:

```csharp
[Activity]
public class MainActivity : AppCompatActivity, CobrowseIO.IRedacted
{
    // From this method you should return a list of the views you want Cobrowse to redact, for example:
    public IList<View> RedactedViews()
    {
        return new[]
        {
            FindViewById(Resource.Id.redact_me)
        }
    }
}
```

**Xamarin.Forms implementation**

While it is not possible to access platform-specific UI code directly from a cross-platform project, you can easily achieve it using [Effects](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/effects/introduction) and [Custom Renderers](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/).

In your **cross-platform** project declare a new `Effect` for marking Xamarin.Forms UI elements as *redacted*:

```csharp
using Xamarin.Forms;

namespace YourAppNamespace.Forms
{
    /// <summary>
    /// A Xamarin.Forms effect that helps to redact Xamarin.Forms view in Cobrowse.io.
    /// </summary>
    public class CobrowseRedactedViewEffect : RoutingEffect
    {
        public bool IsRedacted { get; set; } = true;

        public CobrowseRedactedViewEffect()
            : base("YourAppName" + "." + nameof(CobrowseRedactedViewEffect))
        {
        }
    }
}
```

**iOS-specific** platform Effect would look like this:

```csharp
using System.Collections.Generic;
using UIKit;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ResolutionGroupName("YourAppName")]
[assembly: ExportEffect(typeof(YourAppNamespace.iOS.PlatformCobrowseRedactedViewEffect), "CobrowseRedactedViewEffect")]
namespace YourAppNamespace.iOS
{
    public class PlatformCobrowseRedactedViewEffect : PlatformEffect
    {
        private static readonly List<UIView> sRedacted = new List<UIView>();

        public static UIView[] RedactedViews => sRedacted.ToArray();

        public PlatformCobrowseRedactedViewEffect()
        {
        }

        protected override void OnAttached()
        {
            // We have to always use 'Container' and never 'Control'
            // because 'Control' is null in 'OnDetached', at least in Xamarin.Forms 4.5.0.356
            AddToRedacted(Container);
        }

        protected override void OnDetached()
        {
            RemoveFromRedacted(Container);
        }

        private static void AddToRedacted(UIView view)
        {
            if (view == null)
            {
                return;
            }
            sRedacted.Add(view);
        }

        private static void RemoveFromRedacted(UIView view)
        {
            if (view == null)
            {
                return;
            }
            if (sRedacted.Contains(view))
            {
                sRedacted.Remove(view);
            }
        }
    }
}
```

Then create a new default `Xamarin.Forms.Page` renderer which would implement `ICobrowseIORedacted` interface:

```csharp
using UIKit;
using Xamarin.CobrowseIO;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly: ExportRenderer(typeof(ContentPage), typeof(YourAppNamespace.iOS.CobrowseRedactedPageRenderer))]
namespace YourAppNamespace.iOS
{
    public class CobrowseRedactedPageRenderer : PageRenderer, ICobrowseIORedacted
    {
        public UIView[] RedactedViews => PlatformCobrowseRedactedViewEffect.RedactedViews;
    }
}
```

**Android-specific** platform Effect would look like this:

```csharp
using System.Collections.Generic;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using AView = Android.Views.View;

[assembly: ResolutionGroupName("YourAppName")]
[assembly: ExportEffect(typeof(YourAppNamespace.Android.PlatformCobrowseRedactedViewEffect), "CobrowseRedactedViewEffect")]
namespace YourAppNamespace.Android
{
    public class PlatformCobrowseRedactedViewEffect : PlatformEffect
    {
        private static readonly List<AView> sRedacted = new List<AView>();

        public static IList<AView> RedactedViews => sRedacted;

        protected override void OnAttached()
        {
            AddToRedacted(Control ?? Container);
        }

        protected override void OnDetached()
        {
            RemoveFromRedacted(Control ?? Container);
        }

        private static void AddToRedacted(AView view)
        {
            if (view == null)
            {
                return;
            }
            sRedacted.Add(view);
        }

        private static void RemoveFromRedacted(AView view)
        {
            if (view == null)
            {
                return;
            }
            if (sRedacted.Contains(view))
            {
                sRedacted.Remove(view);
            }
        }
    }
}
```

Then implement `CobrowseIO.IRedacted` interface in your Forms activity:

```csharp
using System.Collections.Generic;
using Android.App;
using Xamarin.CobrowseIO;
using AView = Android.Views.View;

namespace YourAppNamespace.Android
{
    [Activity]
    public class MainActivity
        : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity,
        CobrowseIO.IRedacted
    {
        public IList<AView> RedactedViews()
        {
            return PlatformCobrowseRedactedViewEffect.RedactedViews;
        }
    }
}
```

**Redaction of WebView content**

Your app may show web content that contains elements that you wish to redact. This can be achieved by setting the `WebViewRedactedViews` property to an array of CSS selectors that identify the elements to be redacted.

```csharp
CobrowseIO.Instance.WebViewRedactedViews = new string[] { ".redacted", ...some other selectors... };
```

{% endtab %}
{% endtabs %}

**For any support write us at <support@saleassist.ai>**


# Start and Stop Cobrowsing

Starting the SaleAssist Cobrowse SDK is often done early in your application. However, you have the ability to delay the start of the SDK or programmatically stop the SDK so that it runs only when needed.

#### Starting the SDK <a href="#starting-the-sdk" id="starting-the-sdk"></a>

{% tabs %}
{% tab title="Web" %}

```
await CobrowseIO.client();
await CobrowseIO.start();
```

{% endtab %}

{% tab title="iOS" %}
**Swift**

```java
CobrowseIO.instance().start()
```

**Objective-C**

```java
[CobrowseIO.instance start];
```

{% endtab %}

{% tab title="Android" %}

{% endtab %}

{% tab title="React Native" %}

{% endtab %}

{% tab title="Flutter" %}

```xml
await CobrowseIO.client();
await CobrowseIO.start();
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
If you do decide to delay or lazy load the SDK it is important to check if there is a currently active session and if so load and start the SDK right away. Without this check sessions would not continue between navigation or page refreshes as the SDK won't be loaded.

// On page load check if we should start the Cobrowse SDK right away&#x20;

if (CobrowseIO.currrentSession) {&#x20;

await CobrowseIO.client();&#x20;

await CobrowseIO.start();&#x20;

}
{% endhint %}

#### Automatic registration <a href="#automatic-registration" id="automatic-registration"></a>

By default, when the SDK starts it will register the device to your account and share its connectivity state. This provides the dashboard with a list of devices which are online and ready to connect.

If you don't need to see a list of devices in your dashboard, e.g. your sessions start only using 6-digit codes, then you can stop the SDK from registering the device and its connectivity status by setting the registration option with a value of `false`.

{% tabs %}
{% tab title="Web" %}

```java
CobrowseIO.registration = false;
```

{% endtab %}

{% tab title="iOS" %}
CobrowseIO.instance.registration = NO;
{% endtab %}

{% tab title="Android" %}

```
CobrowseIO.instance().registration(false);
```

{% endtab %}

{% tab title="Flutter" %}
CobrowseIO.instance.setRegistration(false);
{% endtab %}
{% endtabs %}

#### Stopping the SDK <a href="#stopping-the-sdk" id="stopping-the-sdk"></a>

Calling `stop()` will stop Cobrowsing completely and you won't be able to Cobrowse again until you call `start()`. If you only wish to end a session please use `end()` method on the `Session` object.

{% tabs %}
{% tab title="Web" %}
await CobrowseIO.stop();
{% endtab %}

{% tab title="iOS" %}
**Swift**

```java
CobrowseIO.instance().stop()
```

**Objective-C**

```
[CobrowseIO.instance stop];
```

{% endtab %}

{% tab title="Android" %}
CobrowseIO.instance().stop();
{% endtab %}

{% tab title="Flutter" %}
CobrowseIO.instance.stop();
{% endtab %}

{% tab title="React Native" %}
CobrowseIO.stop();
{% endtab %}
{% endtabs %}


# Listening for events

Learn how to listen to the various events that the Cobrowse SDKs exposes to hook in to the lifecycle of a Cobrowse session.

The Cobrowse SDKs offer a range of events that you can use to hook in to the lifecycle of a Cobrowse session. The lifecycle of a Cobrowse session is based on the following states:

**pending** - The session has been created, but an agent or device has not yet joined

**authorizing** - The session is waiting to start, but confirmation from the user is required

**active** - The screen share session is in progress, frames are streaming

**ended** - The session is finished and can no longer be used or updated

The typical transition between states of a Cobrowse session is: `pending` ( -> `authorizing`) -> `active` -> `ended`. If session authorization is disabled (i.e. no user consent is required), the authorizing step will be skipped.

## **Session Lifecycle Events**

You can get insight into the state of the session using the following lifecycle events:

**Session Loaded Events**

When a Cobrowse session is requested, either by the agent via a push channel, or via a 6 digit code, an event is triggered in the device-side SDKs. The loaded event signifies that a session is initialising, this event is a good opportunity to any one-time setup for the session. To listen to this event:

WebiOS / MacOSAndroidReact NativeFlutterXamarin / .NETCopy

```
CobrowseIO.instance.sessionDidLoad.listen((session) {
    log('Session did load: $session');
});
```


# User Experience

This is the lead capturing form where you can allow trigger messages or make alterations to  time. You can also recast the welcome message from here.

**Allow pop up video**

Enabling this option will increase the widget size. This will make your widget more attractive to website visitors.

<figure><img src="/files/L7XpfGqzzSyt9ImbL1AZ" alt="" width="186"><figcaption><p><em><strong>Normal View</strong></em></p></figcaption></figure>

<figure><img src="/files/qAlNrXelLYRK77sROS1R" alt="" width="175"><figcaption><p><em><strong>Pop up View</strong></em></p></figcaption></figure>

Trigger Messages :- You can also indulge the content of your message and duration of message from here.

<figure><img src="https://lh7-us.googleusercontent.com/k81UeJ6TKzJsHP9i9VgoPg50UUsnu7OZldcsRP2-3XDskMyAjnkkqbSzQKdw1EgCEudxmLHGgMU3dzdx9zTldq7tW2FTmKMMYzl2u_uJSW4u1YIDycyuP3m77nKZ6G60EoWiW9CzgxGIuflLKliDGw" alt=""><figcaption></figcaption></figure>

*<mark style="color:yellow;">Trigger Messages will pop up with the welcome video.</mark>*

<figure><img src="https://lh7-us.googleusercontent.com/mOTp3jvveiRE_vUvwUt3HfOVTzfAvr29VViGM3nYqpS4IEDOkfFs9DXPvo-tITYNlsB1fxdLOvEjRnXzj6bjUElaAfDqrhh5ucwYWuwp3d8yZme3bA82R_lm5yAC94_LPkQrxwl6ampouCv3xwMF1g" alt=""><figcaption><p><em><strong>Trigger Messages Sample</strong></em></p></figcaption></figure>

**Welcome Salutation/ Welcome Message:-** These are the messages that will come along your welcome video.

<figure><img src="https://lh7-us.googleusercontent.com/7PuabVOJJhvnIrswGsRe2EfcX1LmubLd3mTYKhBiw3g7cqO2afUdexioigvYvF0VjYphyhwUEON2mFuhat91sbn_aeENtQ8AuLECcOAFbjherGRpbS6ygvPuKtr5b70OxSCIKtZa2Xz6" alt=""><figcaption><p><em>Welcome Messages Sample</em></p></figcaption></figure>

\
You  can modify your messages from here

<figure><img src="https://lh7-us.googleusercontent.com/gP_FuninXUa1bYAsKDK6jcB2xFxIEAZfIORQn-soHhpweRlBcw4kX3f7VNOCeE_ATGIzuDrEm1-823GWHh3fNP0Ib78HT0AXpgsZ8pSSBqsvbEgH42vyt8yC7bNi1SFxMNJ9CoRxwuIt" alt=""><figcaption></figcaption></figure>

<br>

**Wait Message:-** If your agents are busy and there is some delay while answering the call, your customers will be able to see this wait message which you can  modify according to your preference.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/GLXBjZkUtOvrcGYHBQTTyeGenE_Cnyjwgnxdrh1URovqzQa_zgnpNtvR9u6z-lWSEewnlfwU30J8_pLGwpeps56BKsKWhNqwfbH4VC0dBEPhe7Uqpf2WWuKa6u1kpgav5dKt-xYDM58s" alt=""><figcaption><p><em><strong>Type your wait message here</strong></em></p></figcaption></figure>

<br>

**Call Timeout Message:-** If there is non availability of your agent to answer the call, a timeout message will pop out.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/qvzeEWq0xjQZb_KI9yBMxqHriKW5n_5vbSdFfjClQtxtbjCCLjNX5HXTycXRQ8gK0SrMGQeAFLQbzvi3v-0fVSeNKU4nKqAth1Dj-3RShSb9s7TXZhlETJPL7HHmEoOyHfgFfjgwShFN" alt=""><figcaption><p><em><strong>Type your call timeout  message here</strong></em></p></figcaption></figure>

<br>

**Missed Call Message :-** This is  the missed call message which you can customise from your end.

<figure><img src="https://lh7-us.googleusercontent.com/zhXzzWvS3k78UOdnggcHquRT2Q129ydZ-qHxMauu3gQHdDu4KrcPF1f9D3dgSqhroHXLp_oADm5oUN5927hNY0Z02jvHf2zw9gLCqbGoNw2f2UjtZLTbWDZ8y2w6qNXJYLfZVii2SMhu" alt=""><figcaption><p><em><strong>Type your missed call message here</strong></em></p></figcaption></figure>

<br>

**Thank you Message:-** Once a call is done , a thank you message will be reflected on your screen which can be modified anytime.

<figure><img src="https://lh7-us.googleusercontent.com/hYAOX_4riAWDAxIupq3xEPYXpa40Znlu57nSAjuW2GB0TgQ-MOK8S4zMtN2CHCPebv6Iu0LVAuD4R4TjifqSOh0vvE65eVcEjrhn_rPH9glrxWNYgFlJk4djLgQ9ai6y_5o_4xTBnNml" alt=""><figcaption><p><em><strong>Type your thank you message here</strong></em></p></figcaption></figure>

\ <br>

**Capture Form**&#x20;

This segment includes a lead capturing form which inquires your client or website visitors to fill in some certain details before being admitted to a call.

You can effortlessly modify the form by dragging and dropping from the right hand side of your dashboard.

<br>

<figure><img src="https://lh7-us.googleusercontent.com/Oh9dgj5NJay-t5QufbmDXyrZkejSEFuxY4o3ma1AqHACgTRP85swmDXgBmNi37Adq6Pp3abOtJARNnGo8N0sqhWizXWTm7rJS4bXzngW7Bti51tcuHRXCA-q90TbubF0fg7orVMr5PxzW_GyQwNZuw" alt=""><figcaption><p><em><strong>Modify your form from here</strong></em></p></figcaption></figure>

<br>

You can also collect the data of your customer by authorising different options.

<figure><img src="https://lh7-us.googleusercontent.com/iCVdZgYVm8--m5kRNv5YzfQbbncTlisyqJ2kc3JlNtfAEg-sqGU5Iye6987rspKHa0U3nw3EWAK-UqfIF-MyLUQV2F__-Jl7RCYR120zPFWBz_27QDgH3GvCKWBT0b-D5fHoofA0gEg_QCZmo1MswQ" alt=""><figcaption></figcaption></figure>

***Note:- Always remember to save the messages and modifications.***

**Questions?**

**Please feel free to reach out via&#x20;**<mark style="color:blue;">**<support@saleassist.ai>**</mark>**&#x20;if you need any help:)**<br>

<br>


# Agent Mapping

Your working hours, working days, and break times can all be changed from here.  You must invite agents to your organization before adding any to the call-answering team.

**Steps for adding agents to your organization.**

1\.  Go to settings icon.

<figure><img src="https://lh7-us.googleusercontent.com/IInNiYnS5pzlx1tbxLBE9CCoI1JBfZnkc__ktVOFLFGeXUCVsJCorzwhyIY7UpGpJaultog_oSnk6FCFTyibHti_g3mYZuRyHB57BM-eyp7twWbje53EJA4fjI2YSMQP5zqNqDOdFPA7" alt=""><figcaption></figcaption></figure>

2\. Select Users and roles tab.

<figure><img src="https://lh7-us.googleusercontent.com/MPuM4mt9GtLBwubU0xbAwsO2IDgKrRQs0ttW4_vdk5bjTkWXa90P24A1DCkbR5ZPhFBWjKtZsAeqUBFw_l92rX3NIxa6xAz8Ljw_EMeskBXewDowHFF6o-kjdfqrd-hIZFwZK5RSoZRGfJzQ0-IITg" alt=""><figcaption></figcaption></figure>

3.Click on Invite tab.

<figure><img src="https://lh7-us.googleusercontent.com/J6g6oJjfim6rJmNZhIB-DZmcqw-U-wgIlvSDJoBpX28Ctj2YzWOuytqo5wMlDvcA0eIClfFyQFw-Ml_aChgA-e0KFLvFEzVKVbTmCwVzMqIPET8qwHHbB0XiIXw52lvsIB6WSwQ9E4sDoMUECJpPbQ" alt=""><figcaption></figcaption></figure>

4\. Now you need to add your agent’s email address and assign roles as agent/admin to them.

<figure><img src="https://lh7-us.googleusercontent.com/gltSKeJZ7pP4TvYGuSn-b5UBitYuzPOaaTxu4p_8GE2b21RoXEbonQ9smjvUb9GZWw1M5NCD69EtI5Jh4jDJ_xytxL6I5wdR7SIZpvZCp82rL8YAIfuEz7YipnK56Gzp7ICZf2Ui3iTY" alt=""><figcaption></figcaption></figure>

\
*<mark style="color:yellow;">**Once executed, click on the invite button.**</mark>*

\
**Steps for Agent/Salesperson :**

Once an admin invites any agent/salesperson, the agent/salesperson needs to create their account on [my.saleassist.ai](http://my.saleassist.ai) using the same email address which has been invited by their organization.

*<mark style="color:yellow;">**\~ How to create an account with SaleAssist? Follow the steps mentioned below**</mark>*

1.Go to [my.saleassist.ai](http://my.saleassist.ai).

2.Using the sign up now option or sign in with google, you need to create  your account.

<figure><img src="https://lh7-us.googleusercontent.com/df-RmrqwqffaRqCbI_KCIdItXTrgmqyXa1oTf5QZYCJVoX0QsqwdR-1lXBj7KTVPv-sFLLFvTxn_gKfuehWAMABWnY7Bx06anT3dcyzFNllx4uURXR-J7Y7UsRqNKyXDbPdvMu4pZ37IVt6qBqmpO8g" alt=""><figcaption></figcaption></figure>

3\. Once you add your email address and set a password you will receive one verification email on the same email address.

<figure><img src="https://lh7-us.googleusercontent.com/Rd_rH7dNkiHeoReJncW_Lsfi5fWLc6qKyYYhnBwfaVPZc9nOyfSvvNRdQy9H_sXscqwM6OOOQH6sveugM0_zI3zDxQMh79JW5NLaBfxw6oYYcyxPFNdk54SXWj_BJIisTSMzhriJIzGTB1dX2_Qk5_s" alt=""><figcaption></figcaption></figure>

*<mark style="color:yellow;">**Now, you need to click on the verification link and sign into your account!**</mark>*

Thereafter, they will receive one notification which they need to accept.

1. Click on the notification icon&#x20;
2. Tap on View all notifications.

<figure><img src="https://lh7-us.googleusercontent.com/URHNLVEv7NZEnns7WrAPy-Pw-MWdX8kz9RiL5TjjWMRUr6Xcu0P5KrK-WHeB7xqYE0VF1VLhmwHbOMtynhb4gFuM0rsRhMml9kS6V427hUkvMa8P1GjJPyViYnHLz7vdrzI7xnkjA3ZMet3Nh0QWMYY" alt=""><figcaption></figcaption></figure>

3. After all, click the accept button.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/NhMUXBx5KT7PABve3RN4aLnUzMj-0p9DAEvuN_5fyYr6UgV9yxWFUD9EU37_JR86zBB6ngObeLH5h3sy7JhCQPioxdNcVEQQNxkbtS2N-01r_--I8Fv-C5FkS8ZMX8c0SaSQzDZOpv7oMbYJFwCRik4" alt=""><figcaption></figcaption></figure>

<br>

***After completing above steps by Agent side, below steps to be followed  by\*\*\*\*&#x20;**<mark style="color:red;">**Admin**</mark>**&#x20;\*\*\*\*to map respective agent/salesperson.***

\
**Adding Agents:&#x20;**<mark style="color:yellow;">**For Admin.**</mark>

&#x20;You can  add your  default agents for answering calls from here .The list of agents you added in your organization will be shown up in the drop-down.&#x20;

<figure><img src="https://lh7-us.googleusercontent.com/RPF3SfB-dYo9-BPc5Jh6BJ369188i9Ey3m9hobBcLxdMUvVjQMnDnhiD4VmVIbIyPBtUsYzdrvOQ-kTSW3c7CPG1DhWRpFxwpX9-XUgt7aKroHU0h99VLk6CHrPm0kEFpVSVFO7-Rz10MRHvQf40OA" alt=""><figcaption></figcaption></figure>

<br>

**Form Based Routing:**

If you have multiple categories like  Sales/About us/Pricing etc. then as per the selection from customer the call can be routed to the specific set of people respectively. (The multiple options can be created in Lead capture form in “User Experience” widget settings)

<figure><img src="https://lh7-us.googleusercontent.com/TaKA3NHOn_xLiTUMM0NetqyQ7foCQRmtJN4szssFrQIHufJWZ4Oc_jv5En9V-nbjMCHDaYVUbSnZAMNfY9iWGI_aOENHPMyLHBtq4xk6ktj2m7gAfCzNlMqkgz9nQCgvI1hHRpB1TIVO" alt=""><figcaption></figcaption></figure>

<br>

**Location based routing:**

&#x20;You can mark a particular location on the map, and assign an agent to answer the call of the same location store by adding their Email address or phone number with country code.

<figure><img src="https://lh7-us.googleusercontent.com/xLziC9kwGeHBR2Rw46aUIKs7ECxtnQnztK0Xl6iNLOzn6XegRETrGomR_uViwZ82cIUENWpVrQQ468spqZNw2K-0DvNMGIenrtkObpDT-g3GpG9A9xz6QPhYF-ntQAvMjr0RPwHxfpHT" alt=""><figcaption></figcaption></figure>

<br>

**Scheduled calls routing:**

**Y**ou can adjust your call slots and days from here.

<figure><img src="https://lh7-us.googleusercontent.com/e4y9XVCLsOuTX7sLfKdLpNX2303qSijO1cNwyk5QwITA3lb7drZVi9AcsFisSyyw3N0oD4zWmIS3cBk91QMpKCm_1JhPz_IEy6_8zrxC34iZ2LXGIrGI-bDqKnUH2JpO4ZzYlcVXAmNgGfuveho3vw" alt=""><figcaption></figcaption></figure>

Availability:- You can set your working hours, break hours, working days and non working days from here.

<figure><img src="https://lh7-us.googleusercontent.com/tkIJvhQCfMcbET3cGeq-aY5PadCAa8z00Zhx3pJsrdyZRw6I55o9IUnAiQ7ZMGET81qiheZeW8ut1X3p9K1Bq2GQLGlpv0vg6YSfe9DXkxopnCNsgq_i7pvEL4-l2m583D2Vg047boOl" alt=""><figcaption></figcaption></figure>

***Note:- Always remember to save the modifications.***

**Questions?**

**Please feel free to reach out via&#x20;**<mark style="color:blue;">**<support@saleassist.ai>**</mark>**&#x20;if you need any help:)**<br>

<br>


# Nudges

Nudges are the pop ups that will appear on your website, by permitting them you can add your own discount coupons or any information or guidance that you want to post.

**Time Intervals:-** You can set the timings of your nudge, for how much time you want your nudge to expose on your website.

<figure><img src="https://lh7-us.googleusercontent.com/C1mxboG-faKism3neVr1Lzx7gpmm5Dz-BUP4beXe_FFuSybRiIN1BYacsdWnDDj6Zjou4WQTijHZ53Tze75OJi5R9xBXjn5_52qyCK521SrtDZJ39ZMMPFeT2KoAv52QvYvjpOxhGB1fUJoE1IDWsQ" alt=""><figcaption></figcaption></figure>

**Now add a title, description and CTA text accordinly.**&#x20;

<figure><img src="/files/WyngaPLZ9CskhxuqRIIe" alt=""><figcaption></figcaption></figure>

**Position:-** You can change the position of your nudge from here to the given positions.

![](https://lh7-us.googleusercontent.com/_Nql5E1MoOmico1h355_jr0pyxUoeIsLD0QecAF8AlNMXRl2bp3hjAkOVVvYk8HGVz8kmMdggM140Ms5tCSp6hTe2yFpp3itdfro1-mLiKkDsuDg3s0xdAk5tsp9LiS5ef92VtZesJGvKx-HpeKk4g)

You can also add some images to your nudge.

![](/files/erVcQed52VkzOZ7lTv7h)<br>

***Note:- Always remember to save the modifications.***

**Questions?**

**Please feel free to reach out via&#x20;**<mark style="color:blue;">**<support@saleassist.ai>**</mark>**&#x20;if you need any help:)**

<br>

<br>


# Agent Feedback

This is the feedback form from the agent side to fill in some checklist to update customer’s behaviour and interest to inquire about next time accordingly.

<figure><img src="https://lh7-us.googleusercontent.com/FnZwfjp3zqHsSGPLkwkMwt5TLSEqLVlMlyNEWRnURmyhgxFmuolnKIJegUDSjVTgeSppoX_eGFIC4WivVLktsV5fflWBJ673DPvJKhNtGJI_nXyuQ7Q-LCChDXb1aUYQ8OrcHo-mxZFZ4jxeWjWKtw" alt=""><figcaption><p><em><strong>Agent Feedback form</strong></em></p></figcaption></figure>

You can adjust this form as needed, and while speaking with a customer, you can add comments or remarks to it.&#x20;

*<mark style="color:yellow;">**Note: When the call is over, your notes and observations will appear in front of that specific lead.**</mark>*

How to fill the form while being on the call? Follow the steps mentioned below:)

1. Click on the form icon on the right hand side of the dashboard.

<figure><img src="/files/5mOn1IEwtACc69T1njC6" alt=""><figcaption></figcaption></figure>

2. A form will appear which you need to fill and save and that's it and you are done.

<figure><img src="/files/KFejw4UVQ14HSGvtQgA1" alt=""><figcaption></figcaption></figure>

***Note:- Always remember to save the modifications.***

**Questions?**

**Please feel free to reach out via&#x20;**<mark style="color:blue;">**<support@saleassist.ai>**</mark>**&#x20;if you need any help:)**


# AI Chat (Add Context)

Introduction - AI Chat feature enhances customer interaction and streamline support processes. This AI Chat utilizes advanced algorithms to provide instant responses to common inquiries, ensuring your customers receive prompt assistance around the clock.

**Introduction** - AI Chat feature enhances customer interaction and streamline support processes. This AI Chat utilizes advanced algorithms to provide instant responses to common inquiries, ensuring your customers receive prompt assistance around the clock.

**Steps to be followed to enable the AI Chat -**

1. 1.Go to the **Asset** Tab.

<figure><img src="/files/ihxie1HGiobPIKN0wIij" alt=""><figcaption></figcaption></figure>

2. Click on **Add Widget** to create a new widget.

<figure><img src="/files/c8RoG4UbMEsE2tFvIX4H" alt=""><figcaption></figcaption></figure>

3. Go to **Widget** button. Add the **Name** and the **Description** of the widget. Select **AI Chat** option in **Channel 1** and **Channel 2**, then click on **Save**.

<figure><img src="/files/NWQicKWpRrRWqdhyftSH" alt=""><figcaption></figcaption></figure>

4. Go to **AI Bot** option and enable **Allow AI**, add the C**hat Bot Name** and enter the **Context Text** and then click on **Save**.

<figure><img src="/files/YE0SCLK9CUbOarbSo2iY" alt=""><figcaption></figcaption></figure>

**Note** - The format of the context should start from **Context Start** and end with **Context End**.

Steps to enable AI Chat on SaleAssist -&#x20;

1.


# API Integration


# Webhook Integration

SaleAssist Webhook integration

1\. Sample Payload for event (widget new conversation) :-

&#x20;Below is the sample payload for one of our webhook event and it has lots of data in it but to get only the required lead data you just need to follow below sequence to map fields at your end to capture.\
\
**payload.people\_detail.name**\
**payload.people\_detail.mobile\_number**\
**payload.people\_detail.email   and so on…**&#x20;

&#x20;**OVERALL MASTER PAYLOAD** :-  (highlighted the LEAD data in it)

```
{
    "event_type": "widget_new_conversation",
    "payload": {
      "message_content": "6380dc9b-3af9-4362-b7b1-32d47c13df4f",
      "message_type": "schedule_meeting",
      "message_from": "9d438aaa-1eaa-496a-a8b3-b4f98367bb0d",
      "meta": [
        {
          "moderators": [
            "chetan@saleassist.ai",
            "8373916383"
          ],
          "participants": [
            "+918765875687"
          ],
          "date": "7/11/2024",
          "time": "04:30 PM",
          "timezone": "Asia/Calcutta",
          "duration": 30,
          "duration_mode": "min",
          "watermark": "https://static.saleassist.ai/icons/saleassist-icon-black.png",
          "rrule": "",
          "registration_enabled": false,
          "products_enabled": false,
          "registration_form": "[{\"type\":\"paragraph\",\"subtype\":\"p\",\"label\":\"Please fill in your details to register\",\"access\":false},{\"type\":\"text\",\"required\":true,\"label\":\"Name\",\"placeholder\":\"Enter your name\",\"className\":\"form-control\",\"name\":\"name\",\"access\":false,\"subtype\":\"text\"},{\"type\":\"text\",\"required\":true,\"label\":\"Email\",\"placeholder\":\"Enter your email\",\"className\":\"form-control\",\"name\":\"email\",\"access\":false,\"subtype\":\"text\"},{\"type\":\"text\",\"required\":false,\"label\":\"Mobile number\",\"placeholder\":\"Enter your mobile number\",\"className\":\"form-control\",\"name\":\"mobile_number\",\"access\":false,\"subtype\":\"text\"}]",
          "capture_registration_otp_params": false,
          "registration_otp_params": "email",
          "unique_field_name": "email",
          "is_recurring": false,
          "auto_record": true,
          "end_recurring": 0,
          "room_name": "",
          "meeting_name": "Meeting with +918765875687",
          "description": "",
          "meeting_password": "",
          "meeting_type": "live_call",
          "can_co_browse": true,
          "channels": [],
          "widgets": [],
          "products": [],
          "products_listing_mode": "buy",
          "is_moderated_chat": false,
          "moderation_mode": "auto_censored",
          "moderated_keywords": [],
          "pinned_messages": [],
          "thumbnail": "",
          "id": "6380dc9b-3af9-4362-b7b1-32d47c13df4f",
          "created_by_user_id": "a184afcd-6d05-4052-a156-4c057ce723e8",
          "recording_url": "",
          "events": [],
          "tokens": {},
          "recurring_batch_id": "",
          "start_time": 0,
          "end_time": 0,
          "run_time": 0,
          "recording_time": 0,
          "streaming_time": 0,
          "cumulative_participant_time": 0,
          "billing_cumulative_participant_time": 0,
          "scheduled_time": 1720695600000,
          "meeting_status": "SCHEDULED",
          "participant_count": 0,
          "active_participant_count": 0,
          "public_session_count": 0,
          "co_browsing_time": 0,
          "client_id": "74c28198-7762-40d3-8925-5cc00dc99e98",
          "notify_meeting_participants": {
            "first": false,
            "second": false
          },
          "co_browsings": [],
          "recordings": [],
          "streamings": [],
          "participant_durations": {},
          "host_room": "82dcc3da-8f70-45fb-ac26-c265af7838f4",
          "view_room": "81f54c1b-664f-460c-8add-e4dabdf2da3f",
          "external_id": "6380dc9b3af94362b7b132d47c13df4f",
          "provider": "",
          "created_on": 1720694557992,
          "updated_on": 1720694558015,
          "source_referrer": "https://jump.saleassist.ai/jump/905002c3-9be6-43fa-8e3d-e71ab0c1d1b7",
          "uid_map": {},
          "followed_up": false,
          "confirmed_at": 0,
          "picked_up_at": 0,
          "participant_exit_times": [],
          "date_time": "2024-07-11T16:30",
          "date_time_ist": "2024-07-11T16:30"
        },
        {
          "message": ""
        }
      ],
      "raw": {},
      "acknowledged": false,
      "is_bot_handover": false,
      "message_to": "a184afcd-6d05-4052-a156-4c057ce723e8",
      "people_id": "9d438aaa-1eaa-496a-a8b3-b4f98367bb0d",
      "meeting_id": "6380dc9b-3af9-4362-b7b1-32d47c13df4f",
      "form_id": "bda6d00a-adf7-409e-8c93-ec08698d0aac",
      "unique_field_value": "+918765875687",
      "source_id": "905002c3-9be6-43fa-8e3d-e71ab0c1d1b7",
      "source_name": "FNP Button test",
      "source_type": "live_call",
      "source_referrer": "https://jump.saleassist.ai/jump/905002c3-9be6-43fa-8e3d-e71ab0c1d1b7",
      "session_id": "e8ebb379-75a9-41e5-8a14-9f8f0842830f",
      "whatsapp_request_id": "",
      "whatsapp_status": {},
      "chat_group_id": "",
      "id": "dc60de93-d726-43cc-ad06-9cc7544cb8e5",
      "is_moderated": false,
      "is_handover_question": false,
      "client_id": "74c28198-7762-40d3-8925-5cc00dc99e98",
      "created_on": 1720694558068,
      "updated_on": 1720694558068,
      "dropped_at": 0,
      "people_detail": {
"name": "Prakash Mudhaliyar",
 "mobile_number": "+910987654321",
 "email": "prakashm@athenabpo.in",
 "address": "Thane",
 "pincode": "400615",
 "utm_campaign": "Test",
 "date_of_month": "28",
  "time_of_day": "15:00",
 "day_of_week": "4",
  "month_of_year": "2022",
  "originated_from": "Test",
  "product_category": "Water Purifier",
  "product_sku": "Test",
  "device": "Mobile",
  "form_fill": "Test",
  "otp_verified": "Yes",
  "extra1": "N1",
  "extra2": "N1",
   "widget_city": "Faridabad",
   "widget_state": "Haryana",
    "widget_country": "India",
    "widget_latitude": 28.4098,
    "widget_longitude": 77.31,
    "widget_ip_address": "103.201.143.23",
    "widget_location_source": "IP ADDRESS"
          "id": "9d438aaa-1eaa-496a-a8b3-b4f98367bb0d"
      },
      "meeting_url": "https://meet.saleassist.ai/82dcc3da-8f70-45fb-ac26-c265af7838f4?user_identity=+918765875687"
    },
    "metadata": {}
  },
  "headers": {
    "content-length": "4482",
    "cdn-loop": "cloudflare",
    "cf-ipcountry": "IN",
    "cf-ray": "8a18301c984c4841-BOM",
    "x-forwarded-proto": "https",
    "x-forwarded-port": "443",
    "x-forwarded-for": "34.93.136.15",
    "accept": "*/*",
    "x-amzn-trace-id": "Root=1-668fb71e-58ab68ae3a48491217fcec09",
    "cf-visitor": "{\"scheme\":\"https\"}",
    "host": "automation.quickwork.co",
    "connection": "close",
    "content-type": "application/json; charset=UTF-8",
    "cf-connecting-ip": "34.93.136.15",
    "accept-encoding": "gzip, br",
    "user-agent": "python-requests/2.31.0"
  },
  "queryString": {}
}
```

**Total Available Webhook Events :-**

<figure><img src="/files/GgVJFriU5sdwmA2YOxAR" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/JpfLCzarL9RavqV0dEwJ" alt=""><figcaption></figcaption></figure>

**Enable Webhooks in Dashboard :-**

2. Login to dashboard <https://my.saleassist.ai>

<figure><img src="/files/Bc4D1r3vCx2UW1j8cuud" alt=""><figcaption></figcaption></figure>

3. Go to Settings -> API -> Webhooks

<figure><img src="/files/VTBukzbnjpywtj6vQM8Y" alt=""><figcaption></figcaption></figure>

4. Select Webhook event to configure.

<figure><img src="/files/nYbrAp5mUDIsgw4fcCRh" alt=""><figcaption></figcaption></figure>

5. Add POST URL, Enable and Save it.

<figure><img src="/files/M9h7LmlPxVlEhezN30hF" alt=""><figcaption></figcaption></figure>

6. Once webhooks are enabled, please check Audit logs to confirm.

<figure><img src="/files/1JvuQZ2vh2e7esu1RfbW" alt=""><figcaption></figcaption></figure>

It’s done.

3. Go to Settings -> API -> Webhooks - mapping<br>

   <figure><img src="/files/YANnvIT0jgnJYWebd2ky" alt=""><figcaption></figcaption></figure>

4. Now select the widget and then clink on Get Schema.<br>

   <figure><img src="/files/jZQNnuWyFmygD8B6S5ta" alt=""><figcaption></figcaption></figure>

5. Now create mapping by clicking on + icon and select the fields which you wish to choose.<br>

   <figure><img src="/files/ptnHbBwVyAvUR1NICVsO" alt=""><figcaption></figcaption></figure>

6. Once you select the fields, click on the save mappings.<br>

   <figure><img src="/files/TVSMHuwoVewcPwQNAQLG" alt=""><figcaption></figcaption></figure>

7. Now add the key and value in the custom headers and add the post call URL and click on Create Webhook.

   <figure><img src="/files/BctWJjOFZ2VPCsVlbvUQ" alt=""><figcaption></figcaption></figure>

   And it's done.

&#x20;**WEBHOOK DOCUMENTATION REFERNCE:-**

{% embed url="<https://platform.saleassist.ai/redoc#tag/webhooks>" %}

&#x20;*For more details and support, please write us at **<support@saleassist.ai>***


# FAQ & Troubleshooting


# Lead Management

Leads Traceability

With this new feature, we can identify the status and the type of the lead and mark the same for the traceability.

Steps to be followed to enable this feature are -

&#x20;1\. Go to the Settings in your Dashboard.

<figure><img src="/files/TDY1UWESflePzhdsWjl5" alt=""><figcaption></figcaption></figure>

&#x20;2\. Now click on the Leads Config tab.

<figure><img src="/files/OPPUPxJBaII8kzJ59l1i" alt=""><figcaption></figcaption></figure>

&#x20;3\. Once you click on the Leads Config tab, the below screen will appear.

<figure><img src="/files/74AtqBPY1Sv4GqzItDZt" alt=""><figcaption></figcaption></figure>

&#x20;4\. Here, you need to select the colour and add the lead status of your choice then click on click on Add Status Button.

<figure><img src="/files/1ITLjAO8cSnw4z0LPDwX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VAFvvnMUsYq2k45fDcQH" alt=""><figcaption></figcaption></figure>

&#x20;5\. You can add multiple Lead Status and Lead Type as per you requirement. You can edit or delete the created lead status and lead type.

<figure><img src="/files/VEdYyw7w3vBPoJILtLvS" alt=""><figcaption></figcaption></figure>

&#x20;6\. Once you are done with the creation of Lead Status and Lead Type, enable the Lead Conversion button and click on the save button. And here you go, leads configuration is done.

<figure><img src="/files/iVtgSRZSPGQBM4rxeUGD" alt=""><figcaption></figcaption></figure>

&#x20;7\. Now you can see the Lead Status and Lead Type option is reflecting in the captured leads.

<figure><img src="/files/BhpaCrW6VQp3j9mcj9sY" alt=""><figcaption></figcaption></figure>

&#x20;8\. From here you can update the Lead Status and Lead Type in the captured leads accordingly.

<figure><img src="/files/PifMQ7QzryC3q4x4DBfB" alt=""><figcaption></figcaption></figure>

&#x20;9\. You can also enable the Sale converted button once the sale is done. You can also add the product id or any comment and then save.

<figure><img src="/files/r16FM2mJk4phIEyyfl6R" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/W9vP01NuXaSFF08B9Qn9" alt=""><figcaption></figcaption></figure>


# Task Management

Add Task Feature

With the help of add task feature you can set reminders as per your requirements.

&#x20;Steps to be followed to use this feature are -

1\. Go to leads, open any of the lead for which you want to add reminder and click on Add Task Button.

<figure><img src="/files/UhnK5dcwmye1jmDaOk8F" alt=""><figcaption></figcaption></figure>

&#x20;2\. Enter the required details like Task name, task note, date and time etc. You can also choose the Priority as well and save.

<figure><img src="/files/hWhB6AOyqqzI3RlqfW6I" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/5gFWUdDletlzoWeQvY8P" alt=""><figcaption></figcaption></figure>

&#x20;3\. Once you save the task, it will reflect on the home page of the dashboard. You can edit, delete and add a new task from Home page as well.

<figure><img src="/files/jw1gxhMDMzSzu9IiuYV9" alt=""><figcaption></figcaption></figure>


# SaleAssist Whatsapp Feature

**Introduction** - This feature allows your customers to reach out to your team directly through WhatsApp, leveraging its popularity and convenience for real-time interactions.

&#x20;**How to operate Whatsapp chat-**

1\. Goto **Leads** -> **Whatsapp**

<figure><img src="/files/6ErHqPRaf756W8e5ABas" alt=""><figcaption></figcaption></figure>

2. Now, select the lead of the customer to open the chat. **Standard templates can be shared with customer until the customer initiate the chat.**

<figure><img src="/files/Q4DM5oL72m7c7iVOb5Y8" alt=""><figcaption></figcaption></figure>

3. You will be able to chat with the customer only if the customer has initiated the chat. **Once the customer initiates the chat, a window will open to you for 24hr. During this period of time you can chat back with customer.**

<figure><img src="/files/AR6SAITCudaO5N5mAoiU" alt=""><figcaption></figcaption></figure>

4. Once the 24hr passes, again you will be able to share the standard templates only.

**Please note -**

1. The timer will appear in the chat only **when the customer initiates the chat on whatsapp.**
2. **You can not chat with the customer who came via video call/audio call.**
3. You can share the attachments with the customers **during the 24hr period.**


# Anonymous User Tracking - StrikeX Events

### **JavaScript API Integration Documentation** <a href="#nitro-javascript-api-integration-documentation" id="nitro-javascript-api-integration-documentation"></a>

The *JS API Integration Guide (for Custom Script Installation)* provides step-by-step instructions for integrating SaleAssist’s JavaScript API into your website.\
It explains how to use various methods to identify visitors, track custom events, and implement SaleAssist’s tracking features after manually installing the script.

#### Table of Contents <a href="#table-of-contents" id="table-of-contents"></a>

1. Visitor Identification
2. Events Tracking\
   2.1. View Event\
   2.2. Update Cart Event\
   2.3. Checkout Event\
   2.4. Buy Event\
   2.5. Product View Event\
   2.6. Category View Event\
   2.7. Custom Events\
   2.8. High Intent Users

#### 1. Visitor Identification <a href="#h-1visitor-identification" id="h-1visitor-identification"></a>

Use **nitro.identify** method to identify visitors by providing their email, phone, and name.

```js
nitro.identify("<visitor_email>", "<visitor_phone>", "<visitor_name>");
```

#### 2. Events Tracking <a href="#h-2-events-tracking" id="h-2-events-tracking"></a>

Different events can be tracked with the help of methods enlisted below:

**2.1. View Event**

Use **nitro.view** method to track page views.

```js
// Example view event data
view_data = {
    page: "https://someurl.com"
}

// Track view event
nitro.view(view_data);
```

**2.2. Update Cart Event on add to cart**

Use **nitro.updatecart** method to track when items are added to the cart or removed from the cart. line\_items should contain all items currently in the cart.\
While sending update cart event send all the line items currently in cart. Trigger this event whenever anything in cart changes so that we can capture the timeline of cart activity in order.

```js
// Example add to cart event data
cart_data = {"line_items": line_items, "cart_value": cart_value}
cart_data = {
    cart_url: "https://someurl.com",
    product_id: 123456,
    line_items: [{
      "quantity": 1,
      "title": "Black Box",
      "line_price", 24.00,
      "id": "987654" (Variant Id),
      "product_id": "1234567",
      "image_url": "variant or product image url"
    },
    {
      "quantity": 1,
      "title": "Pink Box",
      "line_price", 20.00,
      "id": "987654" (Variant Id),
      "product_id": "1234568",
      "image_url": "variant or product image url"
    }],
    cart_value: 44.00
}

// Track add to cart event
nitro.updatecart(cart_data);
```

**2.3. Checkout Event**

Use **nitro.checkout** method to track checkout events.

```js
// Example checkout event data
checkout_data = {
    checkout: "<checkout_url>",
    items: [
        {
            product_id: 12345,
            price: 12.00,
            product_url: "https://someurl.com/product_id"
        },
                {
            product_id: 12346,
            price: 18.00,
            product_url: "https://someurl.com/product_id"
        }
    ],
    cart_value: <total_checkout_amount>,
}

// Track checkout event
nitro.checkout(checkout_data);
```

**2.4. Buy Event**

Use **nitro.buy** method to track purchase events.

```js
// Example buy event data
buy_data = {
    checkout_url: "https://someurl.com",
    order_id: "1231312312312",
    items: [
        {
            product_id: 12345,
            price: 12.00,
            product_url: "https://someurl.com/product_id"
        },
        {
            product_id: 12346,
            price: 12.00,
            product_url: "https://someurl.com/product_id"
        }
    ]
}

// Track buy event
nitro.buy(buy_data);
```

**2.5. Product View Event**

Use **nitro.productView** method to track product view events.

```js
// Example product view event data
product_data = {
    "title": "Your product title",
    "image": "https://pinkcans.myshopify.com/cdn/shop/files/Main.jpg?v=1718006767",
    "page": "https://pinkcans.myshopify.com/products/the-videographer-snowboard",
}
// Track product view event
nitro.productView(product_data);
```

**2.6. Category View Event**

Use **nitro.categoryView** method to track category view events.

```js
// Example category view event data
    category_data = {
"page" : "https://pinkcans.myshopify.com/collections/all",
"category" : "All",
}

// Track category view event
nitro.categoryView(category_data);
```

**2.7. Custom Events**

Use **nitro.track** method to track custom events.

```js
// Example custom event
nitro.track("<EVENT_NAME>", EVENT_VALUE);
```

* Replace **\<EVENT\_NAME>** with the name of your custom event and **EVENT\_VALUE** with the corresponding value.

***

**2.8. High Intent Users -**

Events to enter funnel = \["addtocart", "updatecart", "checkout"]

Events to exit funnel = "buy"


# Sales/Conversion Tracking - Widget

Track User Journey along with Conversions on your website.

<figure><img src="/files/yXT0UCysxbnZ7ofoRNHN" alt="" width="128"><figcaption><p>Sales Conversion Tracking</p></figcaption></figure>

‘**saleassist.track**’ Function Documentation

**Description**

The eventCaller function is a utility function in JavaScript that allows you to trigger custom events with specific data. It takes an event name as a string and an optional data object as parameters. When called, the **saleassist.track** function dispatches a custom event with the given name and the provided data, making it possible to capture custom events in your JavaScript applications.

**Parameters**

* eventName (String): The name of the custom event to be dispatched. It should be a string representing the event's name.
* data (Objectl): An data object to be passed along with the custom event. This data can be used by event listeners to access additional information related to the event.

**Usage**

Here's an example of how to use the **saleassist.track** function for **Product Click**:

```javascript
// Example: Triggering an event with data
const eventData = {
        'view_data' : {
        'url': "https://someurl.com"
        },
        'actionField': {'list': 'Search Results'}, // Optional list property.
        'products': [{
          'name': productObj.name,   // Name or ID is required.
          'id': productObj.id,
          'price': productObj.price,
          'brand': productObj.brand,
          'category': productObj.cat,
          'variant': productObj.variant,
          'position': productObj.position
        }]
    };

saleassist.track("productClick", eventData, [widgetID_1 , widgetID_2])
saleassistVideoTiles.track("productClick", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for **Product Detail**:

```javascript
// Example: Triggering an event with data
const eventData = {
    'view_data' : {
        'url': "https://someurl.com"
        },
      'actionField': {'list': 'Apparel Gallery'},    // 'detail' actions have an optional list property.
      'products': [{
        'name': 'Triblend Android T-Shirt',         // Name or ID is required.
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray'
      }]
    };

saleassist.track("productDetail", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("productDetail", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for **Add To Cart**:

```javascript
// Example: Triggering an event with data
const eventData = {
    'view_data' : {
        'url': "https://someurl.com"
        },
    'currencyCode': 'EUR', 
    'actionField': {'id': 'product id'},        // 'add' actionFieldObject measures.
      'products': [{                        //  adding a product to a shopping cart.
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1
      }]
  };

saleassist.track("addToCart", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("addToCart", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for **Promotion Clicks**:

```javascript
// Example: Triggering an event with data
const eventData = {
    'view_data' : {
        'url': "https://someurl.com"
        },
      'promotions': [                     // Array of promoFieldObjects.
      {
        'id': 'JUNE_PROMO13',            // ID or Name is required.
        'name': 'June Sale',
        'creative': 'banner1',
        'position': 'slot1'
      }]
    };

saleassist.track("promotionClick", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("promotionClick", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for **Checkout**:

```javascript
// Example: Triggering an event with data
const eventData ={
    'view_data' : {
        'url': "https://someurl.com"
        },
        'actionField': {'step': 1, 'option': 'Visa'},
        'products': [{
          'name': 'Triblend Android T-Shirt',
          'id': '12345',
          'price': '15.25',
          'brand': 'Google',
          'category': 'Apparel',
          'variant': 'Gray',
          'quantity': 1
      }]
    };

saleassist.track("checkout", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("checkout", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for **Page View**:

```javascript
// Example: triggering an event with data

const eventData = {
    'actionField': {'id': 'T12345'},
    'view_data' = {
        'url': "https://someurl.com"
    }
}
// Track view event
saleassist.track( page_view , eventData , [widgetID_1 , widgetID_2] )
```

Here's an example of how to use the **saleassist.track** function for **Measuring Purchases**:

```javascript
// Example: Triggering an event with data
const eventData ={
    'view_data' : {
        'url': "https://someurl.com"
        },
      'actionField': {
        'id': 'T12345', // Transaction ID. Required for purchases and refunds.
        'affiliation': 'Online Store',
        'revenue': '35.43', // Total transaction value (incl. tax and shipping)
        'tax':'4.90',
        'shipping': '5.99',
        'coupon': 'SUMMER_SALE'
      },
      'products': [{       // List of productFieldObjects.
        'name': 'Triblend Android T-Shirt',  // Name or ID is required.
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1,
        'coupon': ''  // Optional fields may be omitted or set to empty string.
      },
      {
        'name': 'Donut Friday Scented T-Shirt',
        'id': '67890',
        'price': '33.75',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Black',
        'quantity': 1
      }]
    };

saleassist.track("purchase", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("purchase", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for **Measuring Refunds**:

```javascript
// Example: Triggering an event with data
const eventData ={
    'view_data' : {
        'url': "https://someurl.com"
        },
      'actionField': {'id': 'T12345'}         // Transaction ID. Required for purchases and refunds.
    };

saleassist.track("refund", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("refund", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassist.track** function for Partial Refunds:

```javascript
// Example: Triggering an event with data
const eventData ={
    'view_data' : {
        'url': "https://someurl.com"
        },
      'actionField': {'id': 'T12345'},        // Transaction ID.
      'products': [
            {'id': 'P4567', 'quantity': 1},   // Product ID and quantity. Required for partial refunds.
            {'id': 'P8901','quantity': 2}
      ]
    };

saleassist.track("refund", eventData, [widgetID_1 , widgetID_2]);
saleassistVideoTiles.track("refund", eventData, [playlistID_1 , playlistID_2])
```

\
**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Sales/Conversion Tracking - Video Tiles

Track User Journey along with Conversions on your website via SaleAssist Video Tiles.

<figure><img src="/files/yXT0UCysxbnZ7ofoRNHN" alt="" width="128"><figcaption><p>Sales Conversion Tracking</p></figcaption></figure>

‘**saleassistVideoTiles.track**’ Function Documentation

**Description**

The **saleassistVideoTiles.track** function is a utility function in JavaScript that allows you to trigger custom events with specific data. It takes an event name as a string and an optional data object as parameters. When called, the **saleassistVideoTiles.track** function dispatches a custom event with the given name and the provided data, making it possible to capture custom events in your JavaScript applications.

**Parameters**

* **eventName** (String): The name of the custom event to be dispatched. It should be a string representing the event's name.
* **data** (Objectl): A data object to be passed along with the custom event. This data can be used by event listeners to access additional information related to the event.<br>

**Usage**

Here's an example of how to use the **saleassistVideoTiles.track** function for **Product Click**:

```javascript
// Example: Triggering an event with data
const eventData = {
        'actionField': {'list': 'Search Results'}, // Optional list property.
        'products': [{
          'name': productObj.name,
          'id': productObj.id,
          'price': productObj.price,
          'brand': productObj.brand,
          'category': productObj.cat,
          'variant': productObj.variant,
          'position': productObj.position
        }]
    };
saleassistVideoTiles.track("productClick", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassistVideoTiles.track** function for **Product Detail**:

```javascript
// Example: Triggering an event with data
const eventData = {
      'actionField': {'list': 'Apparel Gallery'},    // 'detail' actions have an optional list property.
      'products': [{
        'name': 'Triblend Android T-Shirt', 
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray'
      }]
    };
saleassistVideoTiles.track("productDetail", eventData, [playlistID_1 , playlistID_2])
```

\
Here's an example of how to use the **saleassistVideoTiles.track** function for **Add To Cart**:

```javascript
// Example: Triggering an event with data
const eventData = {
    'currencyCode': 'EUR',
    'add': {                                // 'add' actionFieldObject measures.
      'products': [{                        //  adding a product to a shopping cart.
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1
      }]
    },
    'source_referrer': 'domain.com'
  };
saleassistVideoTiles.track("addToCart", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassistVideoTiles.track** function for **Promotion Clicks**:

```javascript
// Example: Triggering an event with data
const eventData = {
      'promotions': [                     // Array of promoFieldObjects.
      {
        'id': 'JUNE_PROMO13', 
        'name': 'June Sale',
        'creative': 'banner1',
        'position': 'slot1'
      }]
    };
saleassistVideoTiles.track("promotionClick", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassistVideoTiles.track** function for **Checkout**:

```javascript
// Example: Triggering an event with data
const eventData ={
        'actionField': {'step': 1, 'option': 'Visa'},
        'products': [{
          'name': 'Triblend Android T-Shirt',
          'id': '12345',
          'price': '15.25',
          'brand': 'Google',
          'category': 'Apparel',
          'variant': 'Gray',
          'quantity': 1
      }]
    };
saleassistVideoTiles.track("checkout", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassistVideoTiles.track** function for **Measuring Purchases**:

```javascript
// Example: Triggering an event with data
const eventData ={
      'actionField': {
        'id': 'T12345', // Transaction ID. Required for purchases and refunds.
        'affiliation': 'Online Store',
        'revenue': '35.43', // Total transaction value (incl. tax and shipping)
        'tax':'4.90',
        'shipping': '5.99',
        'coupon': 'SUMMER_SALE'
      },
      'products': [{       // List of productFieldObjects.
        'name': 'Triblend Android T-Shirt',
        'id': '12345',
        'price': '15.25',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Gray',
        'quantity': 1,
        'coupon': ''  // Optional fields may be omitted or set to empty string.
      },
      {
        'name': 'Donut Friday Scented T-Shirt',
        'id': '67890',
        'price': '33.75',
        'brand': 'Google',
        'category': 'Apparel',
        'variant': 'Black',
        'quantity': 1
      }]
    };
saleassistVideoTiles.track("purchase", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassistVideoTiles.track** function for **Measuring Refunds**:

```javascript
// Example: Triggering an event with data
const eventData ={
      'actionField': {'id': 'T12345'}         // Transaction ID. Required for purchases and refunds.
    };
saleassistVideoTiles.track("refund", eventData, [playlistID_1 , playlistID_2])
```

Here's an example of how to use the **saleassistVideoTiles.track** function for **Partial Refunds**:

```javascript
// Example: Triggering an event with data
const eventData ={
      'actionField': {'id': 'T12345'},        // Transaction ID.
      'products': [
            {'id': 'P4567', 'quantity': 1},   // Product ID and quantity. Required for partial refunds.
            {'id': 'P8901','quantity': 2}
      ]
    };
saleassistVideoTiles.track("refund", eventData, [playlistID_1 , playlistID_2])
```

Thank you !!!

\
**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Integrate meetings lite dashboard

Document to integrate meetings lite dashboard

**Prerequisites:-**

1. Register a new account at <https://my.saleassist.ai> with email and password
2. Follow steps from this link [GETTING STARTED.](/getting-started)

**Steps to integrate**&#x20;

**Step 1 - Call the login API to get tokens**

Use the below mentioned API request to get the long term JWT for the agent which will be used to connect with the Saleassist iframe dashboard.

**Request Method: POST**

**Request URL**: <https://platform.saleassist.ai/auth/login>

**Request Body:**&#x20;

{

&#x20;   "email": "\<email>",

&#x20;   "password": "\<password>"

}

**Curl command**:

`curl --location 'https://platform.saleassist.ai/auth/login' \`

`--header 'Content-Type: application/json' \`

`--data-raw '{`

&#x20;   `"email": "<email>",`

&#x20;   `"password": "<password>"`

`}'`

**Sample Response:**

`{`

&#x20;  `"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6IFsZWFzc2lzdC5haSIsIm1vYmlsZV9udW1iZXIiOiIiLCJlbWFpbF92ZXJpZmllZHBpcmVfYXQiOjE3MjEyOTcxOTk4MzcsImF1dGhfdGltZSI6MTcyMTIxMDc5OTg0Mn0.LrO8KQ3VhlzUXA4xZv1dOL6961A",`

&#x20;  `"refresh_token": "",`

&#x20;  `"expire_at": 1721297199837`

`}`

This API call should be made on the backend server for security concerns, i.e. to avoid Javascript injected code to sniff users credentials. Token has a validity of 1 day so user will have to login again after 1 day

**Step 2 - Open iframe in the front end**<br>

Use the following code snippet to integrate the Saleassist Dashboard on your website using an iframe. The styling of the iframe can be decided according to your theme.

`<div style="padding:56.25% 0 0 0;position:relative;">`

&#x20;   `<iframe loading="lazy" title="SaleAssist" false src="<`**`TO BE PASSED`**`>" style="border:none; position: absolute; top:0; left:0; height: 100%; width: 100%;" allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture; fullscreen;" frameborder="0" allowfullscreen>`

&#x20;   `</iframe>`

`</div>`

The src of the iframe is <https://my-lite.saleassist.ai/?token=>*<mark style="color:orange;">\<TOKEN GENERATED BY THE LOGIN CALL></mark>*

Thanks.

For more details, you can write us at <support@saleassist.ai>


# Wix - Integration steps

```js
<script>
(function(w,d){

  function loadScript(src, callback){
      var s = d.createElement("script");
      s.src = src;
      s.async = true;
      s.onload = callback;
      d.head.appendChild(s);
  }

  function initWidgets(){

      if(window.saleassist){
          saleassist.mountWidget({
              id: "516f9263-5971-438a-a5db-eadf5ae230f4"
          });

          saleassist.mountWidget({
              id: "134377d0-e169-4deb-99ab-0176a806b78d"
          });
      }

      if(window.saleassistVideoTiles){

          let isMobile = window.matchMedia("(max-width: 480px)").matches;

          saleassistVideoTiles.mountSourceVideo({
              id: "f1e5ce01-8269-4c03-9022-4bb3ff0a57c9",
              width: isMobile ? "90px" : "180px",
              height: isMobile ? "150px" : "320px",
              alterMobileDimensions: false
          });

      }
  }

  function start(){

      loadScript(
        "https://static.saleassist.ai/widgets/widget.js",
        function(){

          loadScript(
            "https://static.saleassist.ai/vtiles/swidget.min.js",
            initWidgets
          );

        }
      );

  }

  if(document.readyState==="complete"){
      start();
  } else {
      window.addEventListener("load", start);
  }

})(window,document);
</script>
```


# Media

You can find your AI video or video or image used in any way here. You can also generate the link to that particular image or video there for your reference.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Products

You can add your products, which you need to use in video tiles, shoppable videos, streaming live, etc.

Steps to upload the products.

1. Go to assets.
2. Jump to Products tab.

<figure><img src="/files/oxjTtqzbORYVEOKoc1sZ" alt=""><figcaption></figcaption></figure>

3. Now you can click on Add product.
4. Add products name, image, url, currency and product description.

<figure><img src="/files/5XLUQb5ERT5i0pqlN5ir" alt=""><figcaption></figcaption></figure>

5. Now save it.
6. In the products section, you can get your product in the list or you can search for the same.

<figure><img src="/files/giiVLhksLnLt5PRf4uzf" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Orders

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Profile

Here you can switch your organization, change your password, and access resources and assistance.

<figure><img src="/files/pTvuqvUns8fJz016svz5" alt=""><figcaption></figcaption></figure>

You can also enter personal information, such as your name, phone number, etc. It is possible to receive a call notice on the messages by adding a phone number.

**Steps:-**

1. Go to Home.
2. Click on settings icon.

<figure><img src="/files/QftfqjD5sxuYBjDQ2uRU" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Organization

This is where you may submit your logos and backgrounds, modify your organization's name, and more.

**General**

You can change your organization name from here.

<figure><img src="/files/oFtbQT46ZVP8o1oY3pdw" alt=""><figcaption></figcaption></figure>

AWS Storage

<figure><img src="/files/tgzB1GT3RrDwyXIZkokJ" alt=""><figcaption></figcaption></figure>

**Domains**

You can enter your own domain information here.

<figure><img src="/files/ePvJX5I1kdGbv3kT3K21" alt=""><figcaption></figcaption></figure>

**Logos and Background.**

This enables you to upload your own logo and virtual background which you can use while being on the call.

<figure><img src="/files/n4g84ZCo2XfIr8cw0H0q" alt=""><figcaption></figcaption></figure>

**Meetings.**

You can enable auto record, auto transcript and mask details from agents for every call from here.

<figure><img src="/files/6EM8etFlNDO0ZhW5KQFB" alt="" width="352"><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Users & Roles

This area facilitates the process of inviting your agents to join your organisation.

Steps:- (For Admins)

1. Go to settings.
2. Click on users and roles tab.
3. Now click on invite from the right.

<figure><img src="/files/YTTKHw9nQf9lKE8ZD8Wg" alt=""><figcaption></figcaption></figure>

4. Now fill in the details like their email address and select the role as agent.&#x20;

<figure><img src="/files/B0I88FlS4JHpJ4JNbkZT" alt=""><figcaption></figcaption></figure>

5. If you want to invite that agent for any particular widget select the widget and click on invite.

Steps (For agents)

1. Ask your agents to create their account on my.saleassist.ai using the same email address.
2. Now they will land onto the dashboard.
3. As a next step, ask them to accept the invite by clicking on the bell icon.

<figure><img src="/files/e9Km6bejBgBrIGu7KGHf" alt=""><figcaption></figcaption></figure>

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2FMNrN0a5IoQFlx3Y4fKYR%2FInvite%20users.mp4?alt=media&token=96660f97-f14e-4891-8073-e9c30a58394f>" %}
Cick to Play
{% endembed %}

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# SMTP Integration

**How to add SMTP Details.**

1. Clicks on settings icon from the dashboard.
2. Switch to SMTP tab and fill in the details and click on save changes.

<figure><img src="/files/cXWGn3u3md7KUuGjMNXc" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Custom Domain

Including Custom domain enhances authority, helps you establish your brand and the trust to your customers etc.

**There are a few steps to be done to add a custom domain here:-**

1. **Add CNAME records to your domain.**
2. **Add your domain like "**<mark style="color:blue;">**meet.your-own-domain.com**</mark>**" to the dashboard.**
3. **Share SSL certificate for your domain with us.**
4. **Once the settings are done from our end, you will get confirmation on the same.**

<mark style="background-color:yellow;">**HERE ARE THE INSTRUCTIONS TO DO THE SAME**</mark>

**A. Add the below CNAME record to your DNS settings**&#x20;

```
meet.your-own-domain.com.    IN.    CNAME      meet.saleassist.ai.
```

<figure><img src="/files/nrcU2vX7QGnzfZLcbR0C" alt=""><figcaption><p>MEET.YOUR-OWN-DOMAIN.COM</p></figcaption></figure>

**B. How to add Custom Domain to the dashboard**

1. Go to settings.
2. Jump to the organization tab.
3. Scroll down to the domain part and add the details.

**C. Send us the SSL certificate for the same custom domain you have added to&#x20;***<mark style="color:blue;">**<support@saleassist.ai> .**</mark>*

***Our team will revert you back with confirmation in the next 48 hours. Once it is done, you can start using your own domain to share meeting links with your customers.***

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Notification Manager

You are welcome to accept the invitation from your organization or any other organization and join it. As a member of that organization, you have access to all account details and can manage calls.

![](/files/riI2XLuvhfDsmXDLZk1Y)

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Agent Leaves Managment

This feature allows you to mark your leave in advance, ensuring better planning and coordination. By updating your availability beforehand, we can avoid assigning calls to you during your absence.

This helps prevent missed calls and ensures a smooth workflow.

Here is step-by-step process on marking Leave

Refer to reference video here:

{% embed url="<https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2E1BRiNMSRbVYjk7d1Xu%2Fuploads%2F0TbzCBmlWorZ2LNpUlxF%2FLeave%20management.mp4?alt=media&token=d14a648c-99d4-4833-a7db-b83bb403ba94>" %}

**Step 1** – Click on Profile icon

<figure><img src="/files/ukALGCE4mbtKbWoHb5Ua" alt=""><figcaption></figcaption></figure>

#### **Step 2 – Click on New Leave icon**

<figure><img src="/files/CCU5vhw9vFdojTpzSHj4" alt=""><figcaption></figcaption></figure>

#### Step 3 – Enter start date, end date and Reason for the leave

<figure><img src="/files/IfwVG4ePmoJApO3HChkf" alt=""><figcaption></figcaption></figure>

#### Step 4 – Click on Request Leave

<figure><img src="/files/knwziUkUZcrEwwgahBy0" alt=""><figcaption></figcaption></figure>

Your leave will be recorded once you submit a Leave request. During this time, your status will be **Offline** and **you will not receive any live calls, and customers will not be able to schedule calls with you for that day.**

<mark style="color:orange;">Note : There can be some scheduled calls which needs to be assigned to other agent for that day in your absence. Or if it is a planned leave we suggest marking it in advance so that any calls are not assigned to you on that day</mark>

#### Step 5 – To end the leave early click on End Leave Early

<figure><img src="/files/vJE3IzyYTGCifJuRoA43" alt=""><figcaption></figcaption></figure>

Once done your status will be changed again and you will be online.

#### Step 6 – Once your leave ends, you will need to log in the next day and manually set your status to “Online.”

<figure><img src="/files/UdJt7hkW9hTEIWMRzstR" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/uyg7exJdJUvfMfvEFekJ" alt=""><figcaption></figcaption></figure>


# Transcription & Summarization

One can get the transcription and summarization of their chat with another person after a call.

**How to get the transcription & Summarization?**

Follow the below steps for the same.

1. Go to leads.&#x20;
2. Select any lead you want the transcription & Summarization of.
3. Click on the mode of communication. (Video Call/ Schedule Meeting.

<figure><img src="/files/o24XlJMQ4zHNL01FxXTH" alt=""><figcaption></figcaption></figure>

4. Now, scroll down and you will get one transcribe now button.

<figure><img src="/files/IPWdtkdEcpJNRcdPeC7p" alt=""><figcaption></figcaption></figure>

5. Now simply click on transcribe now button and you will get the transcription and summarization of that particular conversation.&#x20;

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Video QR Codes

For marketing purposes, you can easily create banners from generating QR codes, then broadcast them on your social media networks.

How to get the QR codes?

1. Create a widget by going to assets.
2. Do the needful changes in the widget like changing image/Video etc.&#x20;
3. Now jump to the integration tab.
4. Scroll down and click on *<mark style="color:red;">**download landing page QR code**</mark>*.

<figure><img src="/files/p5Fbu7Bv94guDvpmo4aT" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Video Emails

You can retarget your audience with emails by sending them a single video along with a headline and some messaging.

To create one video email-:

1. Go to video Emails.

<figure><img src="/files/CbkQ4qvY5VbSBWqszIou" alt=""><figcaption></figcaption></figure>

2. Now click on create template.

<figure><img src="/files/GrFpi3zZaXwCAOg5Ll3p" alt=""><figcaption></figcaption></figure>

3. Create your template by adding your logo, Video, heading etc to it.

<figure><img src="/files/q0C6ZsVUYHbD8aBWpfgA" alt=""><figcaption></figcaption></figure>

4. You also need to add one CTA button with a link to it.

<figure><img src="/files/XzXlkeI6mtgozo5MWrUe" alt=""><figcaption></figcaption></figure>

5. Now you can simply add the respective person's email address to send this email to them,

<figure><img src="/files/DO49MXY33YUGO4jsu9ZZ" alt=""><figcaption></figcaption></figure>

&#x20;**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Live Chat

Live Chat facilitates communication between your representatives and website users by activating the chat feature on the widget.

**Steps:-**

1. Click on Assets.
2. Select the widget.
3. Jump to the widget tab.

<figure><img src="/files/3BPAelRwBpJShNFzxLKO" alt=""><figcaption></figcaption></figure>

4. Now from the channels, choose Ai Chat and save it.

<figure><img src="/files/hwXq0XyqH5IAmtI7xTbf" alt=""><figcaption></figcaption></figure>

5. The representative will receive a call on the sales assist's dashboard whenever someone tries to initiate a conversation from your website.

<figure><img src="/files/EZjHJZri0qY0mUcmxGwS" alt=""><figcaption><p>Agent's View.</p></figcaption></figure>

<figure><img src="/files/t7i5KCoCjmpXwiGBndd8" alt="" width="127"><figcaption><p>Customer's view.</p></figcaption></figure>

6. They can start a conversation once the agent approves the request.

<figure><img src="/files/WfkCTJ3jPUPaJbQ7lD5b" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Outbound Phone Calling

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Book In-store appointment

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Schedule Call

How to schedule a call?

1\. To schedule a call, click on Schedule call button.

<figure><img src="/files/iR1g6k3WZS6U1pun40il" alt=""><figcaption></figcaption></figure>

2\. Once you click on the button, the below form will open. You need to fill up the details and click on submit button.

<figure><img src="/files/aQBCpcRFY9vOEEwXrpBS" alt=""><figcaption></figcaption></figure>

3\. After clicking on submit button, you need to select the select the slot as per your choice and availability and enter your email. You can enter multiple email separating by comma.

<figure><img src="/files/d7pufXdfXE2lDVvr0zQL" alt=""><figcaption></figcaption></figure>

4\. Confirm your slot by clicking on the confirm slot button. And you can invite your family and friends in the schedule call by clicking on Invite friends Button.

<figure><img src="/files/xuPINaSgxJESCuWjCt13" alt=""><figcaption></figcaption></figure>

5\. Customer and the agent will receive a confirmation mail and Whatsapp message once the call is scheduled.

<figure><img src="/files/abwB5bjdvcX5lZSWRbpI" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/WBN0rH18F3g6PRpMjExe" alt=""><figcaption></figcaption></figure>

**How to manage schedule call  by Agents?**

&#x20;1\.   Agents can see the scheduled calls on the dashboard as well as in leads.

&#x20;Dashboard -

<figure><img src="/files/L2ja89qYv2vB9K2PcnPh" alt=""><figcaption></figcaption></figure>

&#x20;Leads -

<figure><img src="/files/pFvMhTZlxR5W0498CdW3" alt=""><figcaption></figcaption></figure>

&#x20;2\.  Initially this lead is not assigned to any of the agent. Whosoever is going to work on it, can assign himself as lead owner.

<figure><img src="/files/0KVnp8XzkWvRUX4frDX6" alt=""><figcaption></figcaption></figure>

3\.  To attend the call, you need to click on Start button.

<figure><img src="/files/5Ztr2DvBywMY6FQAhCAB" alt=""><figcaption></figcaption></figure>

4\.  And that’s how you can join the call.

<figure><img src="/files/AjC0k9lVlAe6kdSNvUQK" alt=""><figcaption></figcaption></figure>

5. If the agent is unavailable to join the call, they can assign the call to another agent. Click on the arrow as shown in the image below. <br>

   <figure><img src="/files/hKG7BhDa9Typ09gXZ9bA" alt=""><figcaption></figcaption></figure>

6. Now, click on 'View Details'

   <figure><img src="/files/gyMarwL6DYXbEXqTCXK7" alt=""><figcaption></figcaption></figure>

7. Click on the edit button to modify the details.<br>

   <figure><img src="/files/OQqRrpDlOxtDX23dSUfV" alt=""><figcaption></figcaption></figure>

8. Now, you can add the agent's email ID in the moderator column to route the scheduled call to the desired person.<br>

   <figure><img src="/files/GD6e5qlIvC8Rmz6a0N3t" alt=""><figcaption></figcaption></figure>


# Shoppable Video Links

You can utilize shoppable video links in your video to tag the products.


# How to use?

**Pre-installation requirements:**

1. Login to SaleAssist Dashboard.
2. Make sure you have access to your website's admin panel. You’ll need it to get the JS script code to integrate in your website HTML code.

&#x20; **Installation steps:**

1. After you register, go to the "Assets" tab.
2. Click on “Video Tiles” tab and then add one video in the playlist.
3. Now select that particular playlist.

![](/files/B53gt1psEyGlyWWmIlPT)

4. Click on the middle icon as shown above.

<figure><img src="/files/MecK6mCJfTgoUqor56Yh" alt=""><figcaption></figcaption></figure>

5. Now click on the Add Tag Button.

<figure><img src="/files/ZKOL0qcX85bW03ie6gyj" alt=""><figcaption></figcaption></figure>

6. Now follow the following steps.

a. Enter a label.

b. Select a product.

c. Now adjust the start time and End time.

d. You can also change the position, background color and Front Color.

7. That's it now you can save the added products.&#x20;

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Integration

1. Select the playlist you want to integrate.
2. Click on Preview Shorts to review before integrating it.

<figure><img src="/files/svI9L9lBwsrdYnM7Ofyj" alt=""><figcaption></figcaption></figure>

3. Click “Generate code” button to get the integration code.

*<mark style="color:yellow;">**Now you will one Generate code option and integrate that code.**</mark>*

1. Paste the script into either the or the of your website. We recommend placing it in the \<head>\</head>\</body>
2. And add Div section code to the place where you want to showcase these video tiles on your website.&#x20;

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Video FAQs

Got some extra video to post on your pages or website in the form of FAQs? This feature will help you enable them on your website.

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# How to use?

* Go to Assets.
* Select a widget in which you want to make changes in.
* From the widget section add or modify your home/first video of the intent.
* *<mark style="color:yellow;">**Note:- You can also change the theme color, CTA buttons and logo from here**</mark>*.

<figure><img src="/files/GswUZDvrcPqV15WQ5Xbw" alt=""><figcaption></figcaption></figure>

* Jump to Video Workflows tab.
* Click on the Add Intent Button.
*

```
<figure><img src="/files/wteQLCkzIfN39keP1wgc" alt=""><figcaption></figcaption></figure>
```

```
5. Upload the video you want to use  and add your question or heading in the Intent's Name Column.

<figure><img src="/files/ln0UhJG4fxJvQPSV3Q8R" alt=""><figcaption></figcaption></figure>

6. Now you can add as many as video you want following the same process.&#x20;
```

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Integration

For integration, click on the tab(Integration) and copy the code.

<figure><img src="/files/NgbXmAMOlRgJVzFOAoKL" alt=""><figcaption></figcaption></figure>

**Questions?**

**Please feel free to reach out via&#x20;**<mark style="color:blue;">**<support@saleassist.ai>**</mark>**&#x20;if you need any help:)**


# WhatsApp Onboarding steps

WhatsApp onboarding is for verifying your number for WhatsApp chat and notifications to your customers regarding the scheduled and instant calls with your brand name and logo.

1. **Facebook business verification**

If your business is not listed when you attempt to verify it, Facebook may ask you to upload official documents to prove that your business has been registered. These documents must show the **legal name of your business** and your **business's official postal address** or **phone number**. You may also be asked to provide proof of website domain ownership if you choose to receive a verification code at your email address. (make sure the Facebook account is 3 months old to create business page with it.)

> Once your documents are uploaded, Facebook team will review the docs and this may take several days to get verified. You can check the verification status in security centre.

**Below are the required documents you can submit for business verification**

* Business bank statement
* Business licence
* Certificate of incorporation
* Goods and services tax registration certificate (GST)
* Permanent account number card (PAN)
* Shop establishment certificate
* Udyog Aadhar (UID)
* Utility bill

2. **Once your Facebook business account is verified, below are the prerequisites to be followed for WhatsApp number onboarding at SaleAssist side :**&#x20;

* Facebook Business Manager ID - 15-16 digit
* Please share a fresh number you want to onboard a new business phone number ? Mobile Number (should have capability to receive OTP via SMS or international incoming call and should not have WhatsApp active on it)
* Display Name for business account
* Category
* Brand Logo( Please note that the WhatsApp Business API client scales and crops uploaded profile photos to be a square with a max edge of 640px and max size of 5MB before uploading to our servers. Images with a height or width of less than 192px may cause issues when the resizing occurs, because of this, an image size of 640x640 is recommended.)
* Email ID (128 characters)
* About Business (139 characters)
* Business Description (256 characters)
* Address (256 characters)
* Expected Traffic for Business Initiated & User Initiated conversations(TPS)
* 5 articles link required, social media accounts and other information that show your account represents a well-known business. Paid or Promotional content will not be considered(If green tick on whatsapp please share)

For any questions, write us at **<support@saleassist.ai>.**


# Widget Insights

You can view widget usage, such as incoming calls and active leads, among other things.

To get to the Widget insights, simply follow the instructions below.

1. From the dashboard click on view details.

<figure><img src="/files/ZnPkmXnfocJnlqKTuDOS" alt="" width="375"><figcaption></figcaption></figure>

2. Once you click on view details, you will be able to see your conversations.

<figure><img src="/files/4dyezwgiouSVQS2NeMPO" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Video tiles insights

From here, you can watch views on video tiles.

To get to the Video tiles insights, simply follow the instructions below.

1. Go to Assets.
2. Click on video tiles option.
3. Now select the playlist from right hand side.

<figure><img src="/files/57TXNrDSXqEv1n48srXX" alt="" width="174"><figcaption></figcaption></figure>

4. Now click on show insights button.

   <figure><img src="/files/f6pt0tmqEOdLLM6CZLDs" alt=""><figcaption></figcaption></figure>

5. You will be able to see your views after choosing a date and clicking "apply."

   <figure><img src="/files/grnzUxlxuO3KnRpfWTyw" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# Reporting

To check the utilization, reports on a daily, weekly, or monthly basis can be downloaded.

To get to the reports section, simply follow the instructions below.

1. Go to reports on dashboard.

<figure><img src="/files/MKTrURuxYuZkm1Lyo8uM" alt=""><figcaption></figcaption></figure>

2. Choose the dates you would like reports for now.

<figure><img src="/files/K4YFdTq6fwN7badifPy4" alt=""><figcaption></figcaption></figure>

3. When you select the report, a dropdown menu will show up. Choose the field from the dropdown menu.

<figure><img src="/files/q85mb6uym98zBvVCi7VJ" alt=""><figcaption></figcaption></figure>

4. Select on the field and click on the download button and your reports will get downloaded.&#x20;

<figure><img src="/files/Ak3JgJ6xuOqvM5wTjCud" alt=""><figcaption></figcaption></figure>

**Questions?**

Please feel free to reach out via <mark style="color:blue;"><support@saleassist.ai></mark> if you need any help.


# SaleAssist Mobile Application

## Introduction

SaleAssist.ai enables live video customer engagement and live video selling to boost sales conversions and improve customer experience.

Get started by registering for an admin account at [https://my.saleassist.ai](https://my.saleassist.ai/)

Download and login to our Mobile Apps (for both Android and IOS ) for Agents.

Here is the Download links for both

Android App:<https://play.google.com/store/apps/details?id=ai.saleassist.android&hl=en&gl=US&pli=1>

IOS App: <https://apps.apple.com/us/app/saleassist-agent-app/id1665439385>

Once you sign in to the application, few controls will reflect in the bottom of the home page.

<figure><img src="/files/Ixqgbp4GXdkJgCUsPUVg" alt="" width="193"><figcaption></figcaption></figure>

In the calendar icon you will see all the active requests, missed calls and the upcoming events.

<figure><img src="/files/7Z0Z4HbeJIy6xPOh3vbT" alt="" width="193"><figcaption></figcaption></figure>

With add button icon you can create a new meeting, can do live streaming, can initiate outbound calls and can schedule calls.

**Instant Meeting** - Agents can have quick video meetings from the saleassist's dashboard.

**Live Stream** - The SaleAssist Live Streaming Selling feature helps you to reach thousands of audiences at the same time via different social channels as well on your website.

**Outbound cal**l - Outbound calling features help your agents initiate a call from the dashboard to the lead or website visitor.

**Schedule call** - Your clients can book times for video calls with the help of a schedule video meeting. You can integrate it in a button form too.

<figure><img src="/files/n2I3YPwJ0LvepHryeQ5y" alt="" width="193"><figcaption></figcaption></figure>

In the leads icon you can see all of your leads and manage them. You can also add notes as per your lead type.

<figure><img src="/files/T8Z0N0i9LGKZ70GD9MEQ" alt="" width="193"><figcaption></figcaption></figure>

<figure><img src="/files/D5xWrpkqU5BUgI6kfrB4" alt="" width="193"><figcaption></figcaption></figure>

In the last option, you can see your profile, your active requests, missed calls, call transfer logs and history.

<figure><img src="/files/2erSTjrmd1iRS045fH8l" alt="" width="193"><figcaption></figcaption></figure>

You can also edit your name, mob. No. Email id and the organisation.

<figure><img src="/files/VPukuFEqkEr9nYCVx8R7" alt="" width="193"><figcaption></figcaption></figure>


# How to manage calls on Mobile Application

Once you installed and login on SaleAssist Mobile App, you receive the calls on your mobile phones.

<figure><img src="/files/4H10Nhih2ke7JY8hJTSe" alt="" width="193"><figcaption></figcaption></figure>

Once you pick the call, you need to allow access for your camera and microphone.

<figure><img src="/files/dDkxy4ikLwpxfSCW2wYw" alt="" width="193"><figcaption></figcaption></figure>

During the call, you will see few control button in the bottom. With these control buttons you can turn off your camera and mic, flip the camera, chat with the customer.

<figure><img src="/files/1yqAELZadDbg625jRhBG" alt="" width="193"><figcaption></figcaption></figure>

You can also record the call, put the call on hold, add virtual background by clicking on the three dot button.

<figure><img src="/files/0nbNjfzLhnxugufITJI7" alt="" width="193"><figcaption></figcaption></figure>

You can check the lead details by clicking in the add button.

<figure><img src="/files/XQ1BYZx8wSRD1aKxJILi" alt="" width="193"><figcaption></figcaption></figure>

<figure><img src="/files/a0bYaoI9S2WY6cfcNbWI" alt="" width="193"><figcaption></figcaption></figure>

You can add another agent to the call by clicking on this button.To do so, you need to add the agent name/e-mail and click on send invite.

<figure><img src="/files/t03nANbmz5ZDApbGMpPU" alt="" width="193"><figcaption></figcaption></figure>

You can also share the call invite to the third by click on the highlighted button via any chat platform.

<figure><img src="/files/VNAvHagxO8bs078irIfF" alt="" width="193"><figcaption></figcaption></figure>


# Admin Controls

How To generate Report -

Below are the steps to be follow to generate the reports-

&#x20;1\. Go to the dashboard and click on the reports tab.

<figure><img src="/files/NsI4FaC4k40dbLahHaLc" alt=""><figcaption></figcaption></figure>

&#x20;2\.  Select the duration like From Date and To Date for which period you want to fetch the report.

<figure><img src="/files/UZBYio3UxkJ1iotVeafq" alt=""><figcaption></figcaption></figure>

&#x20;3\. Select the report type form the “Select a Report” drop down. You will have multiple choices like conversations, leads, feedback and meeting etc. on the basis of which you can generate the report.

<figure><img src="/files/kWAhkgMHiv8ZeDl8xYIK" alt=""><figcaption></figcaption></figure>

&#x20;4\.  You can download the fetched data by clicking on the download button. In this report you can see all the details of the lead like name, email, contact no., lead type, lead status and lead attended by etc.

<figure><img src="/files/mYuG36uWDuwLYlqweupo" alt=""><figcaption></figcaption></figure>

**How to check the status of the Agents?**

&#x20;Below are the steps to be follow to check the status of the agents-

&#x20;1\. Go to the dashboard and click on the team button.

<figure><img src="/files/6ybfibdUFsErjFG1qrfu" alt=""><figcaption></figcaption></figure>

2\.  Once you click on the Team Button, you will 4 options - Online, Offline, Away and Busy. By clicking on any of the button, you can see the list of the agents as per the status.

<figure><img src="/files/hp7LLzctiu5N1eFeChZD" alt=""><figcaption></figcaption></figure>


# 🛍️ SaleAssist (VidSell) Integration – Best Practices

Integrating Live Video Shopping powered by SaleAssist is quick and effortless — it takes less than 10 minutes to go live.

### ⚙️ Step 1: Add the SaleAssist Script

Add the following script in your website’s \<head> section:

·       `<script src="https://static.saleassist.ai/widgets/widget.js"></script>`

Then, include this snippet at the end of the \<body> section:

`<script>`\
&#x20; `saleassist.mountWidget({ id: "87906d50-aa98-440e-aee4-c0403b11ed31" });`\
`</script>`

### 💡 Step 2: Add a “Go Live” Button (Optional)

You can also place a button anywhere on your website to launch the live experience:

`<button onclick="saleassist.mountWidget({id: '87906d50-aa98-440e-aee4-c0403b11ed31',`\
`form_factor: 'button'});"> Live Video Shopping </button>`

### 🎯 Recommended Placement

Add the VidSell (Live Video Shopping) feature to high-engagement areas of your site:

·       🏠 Home Page

·       🛍️ Product Listing Pages (PLP)

·       📄 Landing Pages (via Ads or Campaigns)

·       🧾 Product Detail Pages (PDP)

### 💬 Integration Options

#### 1️⃣ Widget Integration

Ideal for persistent or floating Live Shopping access.

Recommended UI:

·       Visible widget icon on key pages

·       Auto-handled Online/Offline states

Example Layouts:

·       Online View: “Live Now” indicator visible

·       Offline View: “Leave a Message” / “Book a Demo”

#### 2️⃣ Button Integration

Perfect for embedding within banners, CTAs, or product cards.

👉 Live Demo: <https://demo.saleassist.ai/demo-buttons/>

#### 2️⃣ **Button Integration Mockups**

**Goal:** Show how the Live Video button blends into UI banners, PDP sections, or PLP cards.\
**Visuals to include:**

* “Live Video Demo” button below “Add to Cart” or “Buy Now”.
* “Live Consultation” button inside a top banner or product card.
* Demonstration on both light and dark website themes.

💡 **Text on Creative:**

> “Add Live Shopping CTA next to key conversion points.”

📍 Example CTA Designs:

| Style            | Example                      |
| ---------------- | ---------------------------- |
| Primary Button   | 🛍️ **Live Video Shop**      |
| Secondary Button | 🎥 **Book a Live Demo**      |
| Floating Action  | 💬 **Talk to Expert (Live)** |

#### 3️⃣ **Placement Collage**

**Goal:** Justify recommendations visually by showing ideal placements on key pages.\
**Slides or images to include:**

* Home Page banner: “Live with Our Experts Now”
* PLP hover CTA: “Watch Live Demo”
* PDP button: “Live Video Shop Now”
* Landing Page sticky widget

\
![](https://sdmntprsouthcentralus.oaiusercontent.com/files/00000000-fcc8-61f7-9605-62c866a09f4f/raw?se=2025-10-04T17%3A28%3A32Z\&sp=r\&sv=2024-08-04\&sr=b\&scid=3fc65e33-c4a5-5580-bc18-7a0f739ece6c\&skoid=5939c452-ea83-4420-b5b4-21182254a5d3\&sktid=a48cca56-e6da-484e-a814-9c849652bcb3\&skt=2025-10-03T23%3A23%3A33Z\&ske=2025-10-04T23%3A23%3A33Z\&sks=b\&skv=2024-08-04\&sig=0nJlYy5Ij1GRNOSPmmpF5lQ0Avzr%2Baup%2BNtiidZva5E%3D)<img src="/files/DkzoVX86kFK43JlhcuQp" alt="" data-size="original">

### ✍️ Suggested Call-to-Action (CTA) Texts

Use short, action-oriented CTAs that invite engagement:

·       Live Video Shop

·       Live Assistance

·       Live Consultation

·       Live Shopping

·       Live Video Demo

·       Live Demo

### 🚀 You’re All Set!

Once integrated, your customers can instantly connect with your sales experts through live video shopping, creating a personalized and high-conversion shopping experience.

For support or customization assistance, reach out to your SaleAssist Success Manager.


# Best Practices

This document highlights best practices for implementing buttons and interactive elements on your website with SaleAssist.

***

VIDSELL- The live video calling feature helps you connect with your clients or website visitors by enabling a widget on your website.\
[Reference Document](https://docs.saleassist.ai/features-overview/live-video-calling)

#### Widget

* Placed throughout the website for consistent customer engagement.<br>
* Allows customers to watch, interact, and shop seamlessly while browsing. 📸\
  \
  **Button**

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeXL9-m67wU5ZiwSyv2APYLGqAlIO23eDXYn0-jRa0duhX0gJS2veJWhnZoK9JGKHcWSHM_DDH701D3sLfI8CCzTm-N0l2axfOtAKCWatPC610DU_FU1v8qUeQfod4X-0ZpF1rRPg?key=t7sqpIGBBaA8kZmN_8bTWA" alt=""><figcaption></figcaption></figure>

* Can be placed sitewide or on specific pages as needed.

&#x20;      Examples:

* [Home page button1](https://indiaaccelerator.co/ia-spaces) , [Home page button 2](https://demo.saleassist.ai/gomechanic/home/) , [Home page button3](https://demo.saleassist.ai/orra/home/)
* [PDP (Product Detail Page) button](https://vishalperipherals.com/collections/logitech/products/logitech-m90-wired-optical-mouse)1, [PDP page button 2<br>](https://www.grtjewels.com/all-jewellery/bangles-bracelets/unfurling-cylindrical-secrets-gold-bracelet-neora-collection-135aa823406.html)

**Both widget and button** can coexist on the website to enhance interaction touchpoints. 📸<br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfueVwIsZv9_7O9nfO6npPM2LzM5Jw_aQnX2fOzmjGn3duotYFLx6WGbdhDWfggXLULeNl-LYNik7zOFcxL78Uk53iDCa5SW9BBwH6jOJ66QG4pJKTUBxICd0ZbxiSfFuixXqyZ?key=t7sqpIGBBaA8kZmN_8bTWA" alt=""><figcaption></figcaption></figure>

**REELS**\
Shoppable videos and reels let you showcase products in an engaging way, allowing customers to explore and buy directly while watching, driving higher engagement and conversions on your website.

\
1\. [How to use](https://docs.saleassist.ai/features-overview/shoppable-videos-tiles/how-to-use) \
2.[ Integration](https://docs.saleassist.ai/features-overview/shoppable-videos-tiles/integration)[<br>](https://docs.saleassist.ai/features-overview/shoppable-videos-tiles/integration)3. References

* [Video tiles](https://skinvest.care/)1 , [Video tiles 2](https://www.fnp.com/?utm_source=Google\&utm_medium=cpc\&utm_campaign=22051588252\&utm_adgroup=174023323322\&utm_keyword=fnp\&utm_device=c\&utm_placement=\&utm_network=g\&gad_source=1\&gad_campaignid=22051588252\&gclid=CjwKCAjwg7PDBhBxEiwAf1CVux7LwtpcFgvUcZ4P5HlcfUbgAr5PkEWvfu59HNesbM6x7PJDrBLsuxoC-6MQAvD_BwE)
* [Floating videos on PDP pages](https://www.babyaroosa.com/product/blanc-belle-baby-drape-set-13904174)
* &#x20;[Shoppable video carousel<br>](https://eumeworld.com/)<br>

  ### STRIKE

### It's a reverse trigger to nudge the customer to connect.

### &#x20;1. Please click to view more : <https://docs.saleassist.ai/features-overview/strike>

### <br>

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfZOUDUWn6yVfE2bylzb_EBStLWjV0GZID4KmrZ11ulH4gxqY3NAH0bnEyLKMPtrBo_eUGco6WagwssjBapxbK6i5SXg4MfoyV291kU_odJ6o24KItR_bK1ixu1YAMToGnve9FY?key=t7sqpIGBBaA8kZmN_8bTWA" alt=""><figcaption></figcaption></figure>

<br>

**API INTEGRATION**\
API integration allows different software systems to communicate and share data seamlessly. It helps automate processes and enhances the overall efficiency of your workflows.

\
References\
&#x20; 1\. [Integration<br>](https://docs.saleassist.ai/integration-guide/api-integration)  2. [Clients using API integration\ <br>](https://www.manyavar.com/en-in/appointment?tab=videoCall)**WHITELABEL SOLUTIONS**

\
White-label solutions allow you to offer products and services under your own brand without building them from scratch.

\
**References**[<br>](https://www.manyavar.com/en-in/appointment?tab=videoCall)1.SOTC - whatsapp

\
![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXd19gG-vNCEnyQHcEZI9rW1_twsJ1z38DjOOuUg8STSA-in0xgZhBCa-0gVI78hRW8MjMRE3fSFGTyu2fNHinLA2Gf2dfsU65eIASP-SVEkYQFjnj9bsl-HsyuOiPpusE6jHPCUeg?key=t7sqpIGBBaA8kZmN_8bTWA)<br>

2.Manyavar & Mohey- Whatsapp + meeting links\
\
![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXfGETq3DspZ8lYJH6bc7EWk0-07akX6q7wpxF8PWQFiiuq_qUj5in4czcowKZTrm6cU3o7jg0zDbmYR7c-VAl6PTW0tiVxmmVrBHEBzlXuDYeTKrmEZWwKnoOOF6OwQHhbPdffvZQ?key=t7sqpIGBBaA8kZmN_8bTWA)

\
3\. SMTP whitelabeling[<br>](https://demo.saleassist.ai/orra/home/)

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXegIgANyKB6mdXAb1LIlGQncuSo5lV502nF2ngEbn7uh0nF636nFmIjB_Tl6NX_sBwO82u7OBcu_mAtrbRWkCCnCUdqE8xNxgCCszXEtQb2sOuOLWUe182UKEac3BV5UeUw2McinQ?key=t7sqpIGBBaA8kZmN_8bTWA" alt=""><figcaption></figcaption></figure>

\ <br>

<br>


# Troubleshoot Video Call Permissions

Solutions to the basic and frequent queries:

1. Camera & microphone permissions are blocked/cancelled while initiating the call.

**Solution -**&#x20;

For IOS -&#x20;

While initiating the call, You need to allow the microphone and camera access.

<figure><img src="/files/vSDZl3g7FF7T7uIuuPU2" alt="" width="173"><figcaption></figcaption></figure>

**Please do not click on Cancel Button. And if you do so, then follow below steps -**&#x20;

1. If you have clicked on Cancel then, click on close button.

<figure><img src="/files/lVrbuaUCb3bEqJpxvOLL" alt="" width="375"><figcaption></figcaption></figure>

2. Then refresh the page.

<figure><img src="/files/6M9ZJxMSGLhyAAq7tXRd" alt="" width="375"><figcaption></figcaption></figure>

For Android - While initiating the call, You need to allow the microphone and camera access.&#x20;

<figure><img src="/files/s8Y37gEuayPbQfSEDD7D" alt="" width="270"><figcaption></figcaption></figure>

**Please do not click on Block Button. And if you do so, then follow below steps -**&#x20;

1. Click on the highlighted icon.

<figure><img src="/files/H6xmX7sBQJVZ38tBGiyM" alt="" width="270"><figcaption></figcaption></figure>

2. Then click on Permissions.

<figure><img src="/files/y1bNjnVtCyAWDcWANyOr" alt="" width="270"><figcaption></figcaption></figure>

3. Click on Reset Permissions.

<figure><img src="/files/fozUZ76iMlHL3A47zoHJ" alt="" width="270"><figcaption></figcaption></figure>

4. Now click on Reset Button.

<figure><img src="/files/NQ5sht4st5Ha0tvRYRqk" alt="" width="270"><figcaption></figcaption></figure>


# AIVA - Meeting Intelligence, Lead qualification And Audit Rules

lead\_classification\_rules and conversation\_audit\_rules are customisable via dashboard.

AIVA - You are an assistant that generates valid JSON analysis of transcripts. You must provide the most important information first in each section and ensure the JSON structure remains valid even if truncated.

Structure your response in this exact order of importance:

{

&#x20;"summary": "Most important points first, max 2 sentences",

&#x20;"sentiment": "positive/neutral/negative",

&#x20;"sentiment\_score": 0.0,

&#x20;"keywords": \["most", "important", "keywords", "first"],

&#x20;"sentiment\_segments": \[

&#x20;  {

&#x20;    "text": "most important segment first",

&#x20;    "start\_word": 0,

&#x20;    "end\_word": 5,

&#x20;    "sentiment": "positive/neutral/negative",

&#x20;    "sentiment\_score": 0.0

&#x20;  }

&#x20;],

&#x20;"questions": \["Most important questions first"],

&#x20;"action\_items": \["Most important actions first"],

&#x20;"lead\_status": HOT/WARM/COLD,

&#x20;"miscellaneous": "All other relevant information to be derived from lead\_classification\_rule and it must be in a list of dictionary e.g. \[{'score': 0, 'answer': '9-12 months', 'weight': 20, 'question': 'purchase\_timeline'}, {'score': 50, 'answer': 'Not sure', 'weight': 20, 'question': 'loan\_intent'}, {'score': 100, 'answer': '85%', 'weight': 15, 'question': 'loan\_amount\_or\_percent'},...]"

&#x20;"unanswered\_questions": \["List of questions from the transcript that were not answered or addressed incorrectly or unsatisfactorily, ordered by importance"],

&#x20;"audit\_details": "audit report based on the client\_audit\_ai\_agent\_rule with specific references to the transcript, structured as specified in the client\_audit\_ai\_agent\_rule"

}

**lead\_classification\_rules:**<br>

LEAD STATUS CLASSIFICATION RULES (STRICT):

&#x20;          \- HOT:

&#x20;          Assign "hot" if there is ANY meaningful buying intent or strong commercial interest.

&#x20;          This includes:

&#x20;          \- Explicit or implied intent to purchase (e.g., "I will buy", "Can you hold it", "What is the final amount?")

&#x20;          \- Active product exploration with repeated questions

&#x20;          \- Price discussion, negotiation, or comparison

&#x20;          \- Requests to hold items, check availability, share visuals, or confirm details

&#x20;          \- High engagement indicating purchase consideration

&#x20;          NOTE:

&#x20;          \- Payment, documents, or final confirmation are NOT required

&#x20;          \- Intent + engagement = HOT

&#x20;          \- WARM:

&#x20;          Assign "warm" if the conversation is informational or exploratory with interest,

&#x20;          but without clear buying intent.

&#x20;          This includes:

&#x20;          \- General inquiries about products, prices, features

&#x20;          \- Browsing or early-stage exploration

&#x20;          \- No verbal commitment or purchase-oriented signals

&#x20;          \- COLD:

&#x20;          Assign "cold" if:

&#x20;          \- No buying intent or meaningful interest is present

&#x20;          \- Conversation is fragmented, dropped, unclear, or non-serious

&#x20;          \- User disengages or provides minimal responses

&#x20;          IMPORTANT:

&#x20;          \- When in doubt between two categories, choose the HOTTER one

**Conversation\_audit\_rules:**

<br>

CONVERSATION AUDIT RULES (STRICT):

&#x20;          You are an expert conversation auditor. Analyze the given conversation transcript and provide a structured audit report.

&#x20;         **AUDIT DIMENSIONS:**

&#x20;      **1. RESPONSE QUALITY:**

&#x20;          Evaluate the agent's responses for:

&#x20;          \- Clarity and completeness of answers

&#x20;          \- Accuracy of information provided

&#x20;          \- Relevance to customer's questions

&#x20;          \- Professional tone and language

&#x20;          \- Avoidance of unnecessary jargon<br>

&#x20;          **2. CUSTOMER ENGAGEMENT:**

&#x20;          Evaluate how well the agent engaged the customer:

&#x20;          \- Did the agent acknowledge customer concerns?

&#x20;          \- Were follow-up questions asked to understand needs better?

&#x20;          \- Did the agent personalize responses or use generic replies?

&#x20;          \- Was there empathy shown during pain points or objections?

&#x20;         **3. LEAD HANDLING:**

&#x20;          Evaluate the agent's ability to move the lead forward:

&#x20;          \- Were buying signals identified and acted upon?

&#x20;          \- Was there a clear attempt to qualify the lead?

&#x20;          \- Did the agent miss opportunities to pitch or upsell?

&#x20;          \- Were objections handled effectively?<br>

&#x20;          **4. RESOLUTION EFFECTIVENESS:**

&#x20;          Evaluate whether the customer's needs were met:

&#x20;          \- Was the customer's query fully resolved?

&#x20;          \- Were there unresolved questions or confusion left behind?

&#x20;          \- Was a clear next step or call-to-action provided?

&#x20;          \- Was there a proper conversation closing?<br>

&#x20;     **5. COMPLIANCE & PROFESSIONALISM:**

&#x20;          Evaluate adherence to standards:

&#x20;          \- Were promises or commitments made that cannot be fulfilled?

&#x20;          \- Was sensitive information handled appropriately?

&#x20;          \- Were escalation paths followed when needed?

<br>

&#x20;   **OUTPUT FORMAT (always return in this exact structure):**

&#x20;          **OVERALL\_SCORE: \<score out of 5>**

&#x20;          **ISSUES\_IDENTIFIED:**

&#x20;          \- \<issue 1>: \<brief description of what went wrong>

&#x20;          \- \<issue 2>: \<brief description of what went wrong>

&#x20;          (list all identified issues)

&#x20;          **POSITIVE\_HIGHLIGHTS:**

&#x20;          \- \<highlight 1>: \<what the agent did well>

&#x20;          (list all positive aspects)

&#x20;         **IMPROVEMENT\_SUGGESTIONS:**

&#x20;          \- \<suggestion 1>: \<specific actionable improvement>

&#x20;          \- \<suggestion 2>: \<specific actionable improvement>

&#x20;          (list all suggestions)

&#x20;          **ACTION\_STEPS:**

&#x20;          \- IMMEDIATE: \<steps that should be taken right away>

&#x20;          \- SHORT\_TERM: \<steps to implement within days/weeks>

&#x20;          \- LONG\_TERM: \<process or training improvements>

&#x20;  **CUSTOMER\_EXPERIENCE\_SCORE: \<score out of 10>**

&#x20;          CUSTOMER\_EXPERIENCE\_SUMMARY: <2-3 sentences summarizing the overall customer experience>

&#x20;          IMPORTANT:

&#x20;          \- Be specific — reference actual lines or moments from the transcript

&#x20;          \- Do not generalize; every issue must be backed by evidence from the conversation

&#x20;          \- When in doubt about severity, escalate the issue rather than downplay it

&#x20;          \- Prioritize customer experience above all else<br>

**Critical rules:**

\- Always output complete, valid JSON

\- summary should be little descriptive and clear.

\- Structure information with most important elements first

\- Use only double quotes, never single quotes

\- Keep segments brief (max 10 words)

\- All scores between -1.0 and 1.0

\- Maximum 10 segments

\- Maximum 10 keywords

\- Maximum 10 questions

\- Maximum 10 action items

\- If truncation occurs, ensure it happens at a valid JSON boundary"""

\
For more details, write us at - <mark style="color:blue;"><support@saleassist.ai></mark>


# Privacy Policy

SaleAssist Privacy Policy.

SaleAssist Innov8 Pvt Ltd(hereinafter referred to as “SaleAssist Innov8”or “our”or “us”or “we”) are committed to respecting and safeguarding the end-user’s (hereinafter referred to as “end-user”or “you”or “your”or “customer”) privacy online. This Privacy Policy applies to your information that we collect and receive on and through your use of the SALEASSIST Video Conferencing software available in all platforms (“Software”), <https://SaleAssist.ai> (“our Website”) and other related services (together “Services”). This Privacy Policy applies to all users, and others who use our Services, but it however does not apply to practices of businesses that we do not own or control, or to people we do not employ.

This privacy policy describes the Services’ practices and procedures on the collection, use, processing and disclosure of your personal data, that you have consensually provided, when you use our Services. We will not use or share your data with anyone except as mentioned in this Privacy Policy.

SaleAssist Innov8, through SALEASSIST provides video conferencing services to users in India and worldwide. Our Privacy Policy helps explain how we handle your information shared with us and provides for the following:

* The type of information collected from end-users, including sensitive personal data or information;
* The purpose, means and modes of usage of such information;
* How and to whom we will disclose such information; and
* The steps we take to protect your privacy.

You can use our Services without revealing who you are or providing any personal information about yourself, unless otherwise required for specific services.

By using our Services, you agree to the terms of this Privacy Policy. Please read the following Privacy Policy to understand how your personal information will be treated as you use our Services. The following also discloses our information gathering and dissemination practices.

Our Services may contain links to other websites. Your browsing and interaction on any third party website or service, including those whose links can be accessed through our Services, are subject to such third party’s own terms and conditions and policies.

#### Using our Services

If you browse through our Website without entering any personal data, we will gather and store certain information about your visit. This information does not identify you personally and cannot be linked back to you unless you decide to identify yourself. If you are only browsing our Website, we collect the following information: IP address, the type of browser and operating system used to access our Website, the date and time you accessed our Website and if you were linked to our Website from another website, the address of that website as well as additional information related to your visit will be collected.

#### Information Collected

Information customer provides: We collect the e-mail addresses, device brand, device model & hardware device id of customers who communicate with us or using our product. We also collect information provided to us by customers. Collected information includes the following: name, address, e-mail address, telephone number, company name and country including IP addresses for the meeting participants, the user specified URL used to host the meeting, and information about the phone numbers that connect to the meeting (if audio connection is made via a telephone call).

Metadata: Duration of the meeting and/or call, email addresses, names, or other information that a participant enters to identify themselves in the meeting, join and leave time of participants, name of the meeting, date, time that the meeting was scheduled, chat status (unless a setting is actively chosen by user), call data records, dashboards and reports and response to requests for support.

No financial Information collected: We do not collect credit card information or other sensitive financial information of SaleAssist Innov8 customers for orders placed online. We use third party payment platforms to provide a very secure payment process for you.

Information collected for Support Services: If you request remote support services, such as technical support or software installation or upgrades, we may collect certain information required to fulfil your request. All of the above shall collectively be referred to as “Information”.

#### Storage of Information and how we process it

To provide the Services, we process network and usage Information. In some cases, meeting related content, which may contain personal information, is temporarily stored to enable user functionality in a SALEASSIST video meeting. If you use the chat function, chat content is stored during the meeting which is encrypted. In case the setup is done at your server, all data and recordings are stored at your end and SaleAssist does not take any accountability of data stored on your server.

#### How is the Information used

SaleAssist Innov8 is not in the business of selling personal information to third parties. SaleAssist Innov8 uses this Information to deliver the Services, to identify and troubleshoot problems with the Services, and to improve the Services. In addition, SaleAssist Innov8 may use this Information to investigate fraud or abuse. Disclosures

Accessing Services: When you access the Services, some data will be disclosed to other participants and to meeting or webinar hosts. For instance, when you attend a meeting, your name might appear in the attendee list. If you turn on your video camera, your image will be shown. If you send a chat or share content, that can be viewed by others in the chat or the meeting.

Customers Request: We follow the directions of our Customers regarding the personal data, and may store it, delete it, or disclose it at their direction.

When Legally Bound: We may also disclose data when we respond to valid legal process including jurisdiction. SaleAssist Innov8’ policies regarding compliance with valid legal process preclude cooperation where a government does not have jurisdiction. SaleAssist Innov8 may also disclose data when reasonably necessary to preserve SaleAssist Innov8’ legal rights.

Content visible to Customers: Customer content, including information shared during meetings, information about participants in meetings belongs to our customers. Customers may use this content, which may include personal data about participants, for their own purposes.

To Third Party Service Providers: We use third-party service providers to help us provide portions of the Services and give support. They only receive data needed to provide their services to us. We have agreements with our service providers that say they cannot use any of this data for their own purposes or for the purposes of another third party. We prohibit our service providers from selling data they receive from us or receive on our behalf. We require service providers to use data only in order to perform the services we have hired them to do (unless otherwise required by law).

#### How is the Information protected

We maintain appropriate administrative, technical, and physical safeguards to protect your personal information from accidental, unlawful, or unauthorized destruction, loss, alteration, access, disclosure, or use and other unlawful forms of processing. You should keep your user credentials and password confidential and secure so that your information is protected. We work hard to protect your data, but the Internet is not 100% secure. We encourage you to use caution online. This includes not sharing or reusing your passwords and not using the Services with unknown persons.

#### Access to Third Party

We at SaleAssist Innov8 do not sell or share your data to any third party i.e Marketing companies, agencies, advertisers or any similar companies in exchange of fees/payments. We also do not share or allow any third party to use your data stored with us for any other purpose except consented by you or if required under any legal obligations.

#### Data Retention

We will only retain your personal data for as long as necessary to fulfil the purposes described above i.e. for as long as you have a SALEASSIST account and/or have subscribed to our Services. If the installation is done at your server, you may wish to retain the data/recordings till the time & storage capacity permits We may also retain your personal data for a longer period for the purpose of our legal, tax, audit, and accounting obligations. This retention will be in accordance with any limitation periods and records retention obligations that are imposed by applicable laws. We may also retain your personal data, if necessary, for our legitimate business interests, such as fraud prevention or to maintain the security of our users. If you have elected to receive marketing communications from us, we will retain data about your marketing preferences for a reasonable period of time, which will be calculated based on the date you last expressed interest in our content, products, or Services.

#### International Data Transfers

Except as otherwise noted in this Privacy Policy, SaleAssist Innov8 is a data controller under the European Union General Data Protection Regulation (“GDPR”), which means that we decide how and why the information you provide to us is processed, including any third-party website or service whose links can be accessed through our Services. We do not collect or otherwise record, process, organize, structure, store, adapt, alter, retrieve, use, disclose by transmission, dissemination or otherwise making available a customer’s personal information pertaining to his/her race, religion, caste, sexual orientation or health or any other information that may be deemed to be sensitive under GDPR (collectively, “Sensitive Personal Information”) in the ordinary course of our business. Where we need to process your Sensitive Personal Information for legitimate purposes, we do so in accordance with the applicable law. GDPR has provided the following rights to customers who are residents of countries who are members of the European Union: Right to information - including contact details to the Data Protection Officer of SaleAssist Innov8, the purposes for processing user information and the rights of the user. Right to access the Information that are processed by SaleAssist Innov8 Right to erasure (“Right to be forgotten”) - this includes the right of the user to have all personal data to be erased from the records of the data controller. Right to rectification of Information that is processed by SaleAssist Innov8 Right to restriction of processing personal data Right to data portability of the Information supplied to SaleAssist Innov8 by the user. Right to object (opt-out) to processing Sensitive Personal Data (unless SaleAssist Innov8 otherwise has compelling legitimate grounds). Right of Withdrawal: The right to withdraw your consent at any time (in cases where we rely on your consent). Residents of countries who are members of the European Union, can exercise these rights by raising a request to SaleAssist Innov8 Data Protection Officer at <connect@SaleAssist.ai>.

We also have teams and processors (third-party providers) based in the United States and India who can access your data to develop and improve our Services on our behalf. Where we transfer your personal data outside the EEA, we have rules and steps put in place to make sure your personal data is kept safe and protected. Usually, this means we will have standard contractual clauses approved by the European Commission in our contracts with parties outside the EEA, or we will rely on European Commission adequacy decisions. For companies based in the United States, we also rely on the Privacy Shield in order to ensure adequacy of transfers made. For more information, please contact us at <connect@SaleAssist.ai>.

The Services are not intended for users under the age of 18 (eighteen), unless permitted under applicable local laws (“Permissible Age”). We do not knowingly collect any Sensitive Personal Information from users or market to or solicit information from anyone under the Permissible Age. If we become aware that a person submitting Sensitive Personal Information is under the Permissible Age, we will delete the users account and/or any related information as soon as possible. If you believe that we might have any information from or about a user under the Permissible Age, please contact us at <connect@SaleAssist.ai>.. We may use your personal information to send you e-mail communications regarding products or services offered by us or by third parties with whom we have relationships, subsequent to your express consent to receive such communications. You may at any time choose not to receive promotional e-mails from us by contacting us. Notwithstanding the foregoing, we may continue to contact you for the purpose of communicating information relating to our Services, as well as to facilitate, complete, or confirm any transaction that you may enter into, or responding to your inquiry or request.

Following termination or deactivation of your account, SaleAssist Innov8, its affiliates, or its service providers may retain information (including your profile information) and User Content for a commercially reasonable time for backup, archival, and audit purposes. If you prefer for us not to provide your name and e-mail or postal address to third parties for direct marketing purposes, please contact us

#### Cookies

We may place "cookies" on your personal computer. "Cookies" are small identifiers sent from a website server and stored on your computer’s hard drive, similar to a license plate, that help us to recognize you if you visit our Website again. Also, our Website uses cookies to track how you found our Website thereby helping us improve your experience, understand how our services are being used, and customize our Services. Cookies are not designed to be used to get data from your hard drive, your e-mail or any other personal data about you. To protect your privacy, we do not use cookies to store or transmit any personal information about you on the Internet. You can reject cookies by changing your browser settings, but please be aware that if you reject our cookies it is possible that pages in our Website may not properly load, your access to certain information might be denied or you might have to enter information about yourself more than once. We may let other companies use cookies, web beacons and similar tracking technologies on our Services. These companies may collect information about how you use our Services and other websites and online services over time and across different services. This information may be used to, among other things, analyse and track data, determine the popularity of certain content and better understand your online activity.

#### Security

Reasonable security measures are in place to help protect against the loss, misuse and alteration of the information under our control. We verify accounts and activity and promote safety and security on and off our Services, such as by investigating suspicious activity or violations of our Terms, and to ensure our Services are being used legally. If we do detect something risky that would compromise on your privacy and security, we shall notify you and help guide you through steps to stay better protected. We shall take complete measures to safeguard you and our Services from unauthorized access, alteration, disclosure, or destruction of information we hold, including:

* Use of encryption to keep your data private while in transit
* Mandatory Verification processes at regular intervals to help you protect your account
* Timely review of our information collection, storage, and processing practices, including physical security measures, to prevent unauthorized access to our systems

#### Assignment, Change Of Control And Transfer

All our rights and obligations under our Privacy Policy are freely assignable by us to any of our affiliates, in connection with a merger, acquisition, restructuring, liquidation, bankruptcy or sale of assets, or by operation of law or otherwise, and we may transfer your information to any of our affiliates, successor entities, or new owner. Because of the international nature of our business, we may need to transfer your information shared with SaleAssist Innov8. For this reason, we may transfer your information to other countries that may have different laws and data protection compliance requirements to those that apply in the country in which you are located.

#### Law And Protection

Only Indian courts shall have jurisdiction in connection to SALEASSIST and the usage of the Services. We may collect, use, preserve, and share your information if we have enough cause to believe that it is reasonably necessary to: Respond pursuant to applicable Indian laws or regulations, to legal process, or to government requests; Enforce our Terms and any other applicable terms and policies, including for investigations of potential violations; Detect, investigate, prevent, and address fraud and other illegal activities, security, or technical issues; or Protect the rights, property, and safety of our users, SaleAssist Innov8, its affiliates, or others.

#### Modifications to this Policy

Please be aware that we may change, amend, revise, modify or update our Privacy Policy from time to time. If we do, we will update this Privacy Policy on our Website, so be sure to check back here frequently. We will provide you notice of amendments to this Privacy Policy, as appropriate under the circumstances. Your continued use of our Services, after any modification to this Privacy Policy, will constitute your acceptance of such modification. If you do not agree to our Privacy Policy, as amended, you must stop using our Services.

#### Contact Us

If you have any questions about this Privacy Policy, the practices of our Website, or your dealings with SaleAssist Innov8, you may contact us at <connect@SaleAssist.ai>.

#### Complaints and Grievances

For any complaints or grievances arising out of any loss, misuse and alteration of the information under our control you may contact <connect@SaleAssist.ai>. We request you to please provide the following information in your complaint :- Identification of the information provided by you; Clear statement as to whether the information is personal information or sensitive personal information; Your address, telephone number or e-mail address.


# v24.11.24

***

### **Release Notes**

#### **Backend**

* **Email Notifications**
  * Disabled email notifications for AI bot responses
  * Fixed an issue where invitation notifications were sent to multiple users instead of a single recipient
  * Weekly email bugs fixed and tests updated
* **WhatsApp Integration**
  * Fixed auto-response and general issues with WhatsApp integration
* **AI Chat Enhancements**
  * API for AI chat in Video tiles introduced
  * Fixed AI chat channel change issue
  * Adjusted public API to whitelist sources
  * Updated AI chat endpoint from `/videos` to `/sources`
* **Webhooks & Payload Updates**
  * Integrated Pabbly webhook for signup
  * Updated payload structure for Truefin webhooks for CRM Integration
* **Miscellaneous**
  * Implemented and reverted Deepgram SDK changes due to version conflict.
  * Refactored meeting join API response for improved mobile functionality
  * Added store details support on source

***

#### **Dashboard**

* **Chat & Broadcasting**
  * Fixed chat and network quality conditions for broadcasting to widget and meet-url users
  * Resolved on-hold condition for broadcasting
* **UI Enhancements**
  * New UI for past meeting details
  * New UI for Widget Level Tracking under Team Management
* **Bug Fixes**
  * Resolved issues with WhatsApp message updates and sending bugs
  * Fixed source URL match type value alteration issue for Video Tiles configurations
* **Configurations**
  * Adjusted configurations for Convin and video tiles
  * Added conditional logic for notifications, assets, and settings in Convin

***

#### **Mobile Dashboard**

* **Lite Dashboard Updates**
  * Updated "End Call" API for improved functionality
  * Fixed chat and network quality conditions for broadcasting
  * Addressed on-hold condition for broadcasting (

***

#### **Video Tiles**

* **Bug Fixes**
  * Resolved duplication issues in floating tiles and scripts embedding
  * Fixed CTA links opening in a new tab for identical URLs
* **Enhancements**
  * Enabled lead form display and reinitialized floating tiles logic including a dynamic size of the tiles, dynamic controls and a timeout (Facilitating the Advertisement related feat).
  * Removed unnecessary test logs related to URL change detection

***

\ <br>


# v24.11.30

***

### **Release Notes**

#### **Backend**

**WhatsApp Integration**

* Fixed attachment message issues
* Resolved bugs and added agent ID for WhatsApp messages from the dashboard
* Fixed duplicate WhatsApp notifications
* Ensured conversations are not created for empty WhatsApp messages
* Addressed WhatsApp notification fixes and enhanced error handling
* Improved handling of user data in WhatsApp notifications
* Resolved duplicate WhatsApp messages and attachment handling issues

**APIs and Features**

* Added fields for ring duration, available agents, and mapped agents in missed call APIs
* Implemented **\[KAN-593]** Schedule Meeting History API
* Updated weekly email with new data fields
* Refactored sorting by name in sources light API **\[KAN-599]**
* Updated response for scheduled meeting list history API **\[KAN-604]**

**Analytics and Reports**

* Fixed time format issues in analytics API
* Updated reports data and ensured accuracy
* Resolved timezone issues for scheduled calls
* Enhanced missed call criteria and added `dropped_at` field

**Error Handling and Notifications**

* Added error handling for Celery tasks and corrected return errors for Firebase notifications
* Introduced Slack notifications for Celery task failures
* Removed unnecessary arguments from Slack messages

**Other Fixes and Improvements**

* Optimized source welcome video functionality
* Corrected arguments in the email function
* Added custom "Powered by" feature
* Ensured correct handling of the `last_attended_by` value
* Fixed bugs and made miscellaneous improvements

***

#### **Dashboard**

**UI Enhancements**

* Updated UI for missed calls page and resolved general UI issues
* Improved the display of ratings averages and meeting statuses
* Added a new store details tab feature in assets
* Removed background color and border in WhatsApp chat from the dashboard

**Features and Improvements**

* Changed follow-up approach for missed calls and added new fields to missed calls reports
* Added custom "Powered by" implementation **\[KAN-602]**
* Improved widget filters, fixed CSV report issues, added new columns, and resolved pagination issues on the missed calls page
* Enhanced handling of user roles and permissions

**Other Changes**

* Updated scheduling for meetings
* Adjusted socket event UID handling
* Merged changes from main to local for further stability

<br>


# v24.12.10

***

### **Release Notes**

#### **Backend**

**Scheduling and Availability**

* Fixed timezone slot issues for scheduling
* Added public route updates for scheduling
* Optimized Schedule Meeting API to version 3
* Implemented available slots API with updates for better efficiency

**WhatsApp Integration**

* Added Unattended WhatsApp leads API
* Enhanced unattended WhatsApp list with message content

**Missed Calls and Leads**

* Introduced direction-wise missed call updates
* Enhanced CSV report download for missed calls
* Handled edge cases in missed call API to exclude outbound call conversations
* Updated missed call-related APIs for better accuracy

**Feature Enhancements**

* Integrated Vidu API for video management and added response updates
* Enabled Manyavar template for store visit tracking
* Refactored Exotel for improved functionality
* Added Graylog logging support
* Optimized meeting end flow for better performance

**Bug Fixes**

* Fixed errors in weekly email handling with improved checks
* Addressed active leads condition updates
* Fixed UI issues and optimized report data
* Resolved timezone-related bugs in scheduled calls
* Corrected edge cases in public APIs

***

#### **Media Transcoder**

* **Video Optimization Support**: Introduced support for optimizing video files for better performance

***

#### **Dashboard**

**Scheduling and Meetings**

* Updated scheduling UI with socket fixes
* Improved meeting details, leads tracking, and live-agent tracker pages
* Fixed meeting card and schedule card values
* Enhanced missed call queue and past meetings sections

**Cobrowse and Lead Management**

* Updated Cobrowse for exact search functionality
* Added lead filtering by agent sorting, search field, and selected display in the lead widget
* Fixed real-time WhatsApp, lead, and AI message updates along with socket listeners

**Video Tiles and Media**

* Introduced Vidu's Image-to-Video feature
* Fixed page reload and search filter issues on the playlist and video tiles listing

**UI and General Fixes**

* Resolved UI bugs across multiple components
* Disabled setting of profile number and email inputs for better usability

<br>


# v25.01.10

### **Release Notes**

#### **Backend**

**Features and Enhancements**

* **Bulk Upload and Media Optimization**:
  * Introduced bulk upload support for sources.
  * Optimized source welcome video URLs and shoppable media.
* **Transcription and Sentiment Analysis**:
  * Implemented transcription summary and sentiment analysis using OpenAI.
  * Added keywords, FAQs, and action items to transcripts.
* **Email and Notification Configuration**:
  * Configured SMTP credentials for all accounts via Convin .
  * Enhanced Android notification handling and double call count fixes.
  * Added support for configuring Exotel details at the client level .
* **WhatsApp Integration**:
  * Fixed WhatsApp session time issues and added new API for fetching the latest session time.
  * Improved WhatsApp AI chat context handling and logging.
* **Meeting and Scheduling Updates**:
  * Unified widget join meeting API.
  * Optimized time layer mapping for scheduling.
  * Updated scheduling APIs to include timezone optimizations.

**Bug Fixes**

* Resolved weekly email query and timezone-related issues.
* Fixed datetime handling for calls and participant end-time issues.
* Addressed video call message count inconsistencies.
* Fixed strike request model updates and routing bugs.

***

#### **Dashboard**

**User Interface Improvements**

* Added a button to download bulk source data.
* Enhanced recurring meeting options with RecurrenceRule library support.
* Updated agent mapping and UI for strike and chat sections.
* Improved sentiment analysis display and Exotel configurability.
* Fixed duplicate message issues during calls.

**New Features**

* Added support for sorting leads by agents and uploading media with a custom name.
* Integrated transcript API with keyword, action items, and question sections.
* Added functionality to enable/disable the start button for upcoming meetings.

**Bug Fixes**

* Fixed animated thumbnail rendering bug.
* Resolved issues in WhatsApp lead section and timer.
* Fixed agent configuration and strike UI inconsistencies.

***

#### **Widget**

**Enhancements**

* Updated available time slots UI.
* Rolled back page logic for better user experience.

**Bug Fixes**

* Fixed strike browser issues and updated logic for handling strikes.

***

#### **Video Tiles**

**Bug Fixes**

* Resolved overlapping issues in SOTC display.


# v25.01.18

### **Release Notes**

#### **Backend**

**Features and Enhancements**

* **WhatsApp and AI Integration**:
  * Fixed issues in WhatsApp webhook integration&#x20;
  * Enhanced WhatsApp AI chat functionalities and added logging for debugging .
* **Source and Bulk Operations**:
  * Added a script for bulk creation of sources .
  * Integrated bulk upload functionalities for better data management&#x20;
* **Meetings and Scheduling**:
  * Refactored instant, conference, and scheduled meeting APIs for efficiency&#x20;
  * Introduced locks to handle race conditions&#x20;
* **Permissions and Roles**:
  * Implemented new and enhanced user permissions&#x20;
  * Removed permissions for strike data record APIs&#x20;
* **Nudges and Client Enhancements**:
  * Added new fields in the `clients_table` to support nudges&#x20;

**Bug Fixes**

* Addressed validation errors and added logging in fetch or create routes&#x20;
* Resolved race condition issues in webhook payloads&#x20;
* Reverted problematic changes related to meeting and source agents APIs .

***

#### **Dashboard**

**Features and Enhancements**

* **User Interface**:
  * Added a delete confirmation popup and removed the video email tab from the navbar&#x20;
  * Implemented a reset filter option for leads and added a 5-minute condition in the meeting view&#x20;
  * Introduced ID column in the super-admin page for better user management&#x20;
  * Revised WhatsApp notifications on the lead page with real-time updates&#x20;
  * Added WhatsApp popups for each message
* **Data Management**:
  * Enhanced lead sorting options for improved usability&#x20;

***

#### **Widget**

**Features and Enhancements**

* **Functionality Updates**:
  * Implemented single join API for widgets&#x20;
  * Added "Go Back" button functionality to close the widget
  * Fixed timeout and page-specific issues for Strike widgets

***

#### **Shorts Widget**

**Bug Fixes**

* Removed "Powered by" branding from lead capture forms for specific client IDs&#x20;

***

#### **Lite Dashboard**

**Features**

* Introduced invite request notifications for enhanced team collaboration


# v25.01.29

### **Release Notes**

#### **Backend**

**Features and Enhancements**

* **Logging and Validation Improvements**:
  * Added logger in `fetch_or_create` route and fixed validation errors (#2490, #2491).
* **Meetings and Scheduling**:
  * Optimized meeting scheduling, rescheduling, and cancellation APIs (#2487, #2503, #2505).
  * Updated meeting status to show missed meetings (#2499).
  * Added an API to retrieve user info based on mobile number or email (#2523).
  * Improved token generation for webhook authentication (#2497).
* **Race Condition and Bulk Operations**:
  * Fixed race condition issues on incoming calls (#2482).
  * Added a bulk create API for sources (#2485).
  * Updated API for scheduling new slots (#2359, #2500).
* **AI and Shopify Integration**:
  * Fixed AI chat-related issues (#2504).
  * Changed `is_shopify_connected` to false by default (#2502).

**Bug Fixes**

* Fixed meeting end code for accurate session handling (#2507, #2508).
* Resolved WhatsApp AI chat bugs and conversation handling issues (#2496, #2505).
* Corrected race condition issues in multiple workflows (#2496, #2500).
* Fixed API response handling for better performance and data consistency (#2525).

***

#### **Agent Dashboard**

**Features and Enhancements**

* **User Interface and Call Handling**:
  * Updated UI conditions for widget calls in the lead page (#1352, #1353).
  * Added nudge messages to organizations (#1347, #1354).
  * Enabled "Take Over" option for agents **\[KAN-690]** (#1349, #1355).
* **Bug Fixes**:
  * Fixed first-stage call end issue (#1357, #1358).
  * Corrected agent count display errors (#1359, #1360, #1361, #1362).

***

#### **Widget**

**Enhancements**

* Adjusted height settings for 1920 resolution screens (#377).
* Updated API logic for slot handling (#376).
* Implemented better logic and guards for strike workflows (#379).

**Bug Fixes**

* Fixed slot selection bugs affecting scheduling (#378).
* Removed geolocation dependency for improved compatibility (#380).

***

#### **Dashboard Lite**

**UI Enhancements**

* Updated dialog title for better clarity (#99).
* Adjusted time values for scheduled meetings to improve accuracy (#100).

***

#### **Meetings URL**

**Enhancements**

* **\[KAN-716]** Updated API for meeting rescheduling and cancellation to provide a smoother user experience (#87).

***


# v25.02.05

### **Release Notes**

#### **Backend**

**Features and Enhancements**

* **Meetings and Scheduling**:
  * Introduced a new scheduled meeting report view **\[KAN-747, KAN-748]** (#2531).
  * Added `attend_schedule_call_before` field to enable early attendance for meetings (#2520).
  * Optimized API for meeting reschedule or cancel actions (#2513, #2503).
  * Updated logic to preserve `updated_on` timestamp for agent-side operations (#2524).
  * Updated meeting session logging for better tracking (#2526, #2528).
  * Scheduled meeting view enhancements and end call locks added (#2535, #2536).
  * Added participant-wise data details to reports (#2542).
* **Strike and Lead Reports**:
  * Added a new strike leads report for better tracking (#2529, #2530).
  * Included agent feedback in reports (#2518, #2532).
* **API and Data Management**:
  * Added API to get user info using a mobile number or email (#2519).
  * Updated logic to always operate on the latest permission settings (#2527).
  * Added job to generate webhook token for WTC (#2497).
  * Allowed multiple webhooks to trigger for the same event (#2514).

**Bug Fixes**

* Fixed race conditions on incoming calls to ensure stability (#2482).
* Resolved bulk source creation issues from CSV files (#2511).
* Fixed WhatsApp video reference issue (#2512).
* Updated logic to fix mobile device time layer timeouts (#2501).
* Resolved feedback issues for meeting sessions (#2509).
* Fixed shoppable playlist data inconsistency (#2506).
* Addressed timeline and multiple session creation issues (#1381, #1382).
* Fixed CSV download naming issues for various modules (#1385, #1386).

***

#### **Dashboard**

**User Interface and Experience**

* **New Features and Enhancements**:
  * Added a **new page for attending calls** **\[KAN-694]** (#1363).
  * Introduced UI changes in user roles and table views (#1364).
  * Added a **bulk widget creator** for streamlined widget management (#1366).
  * Temporarily reverted to the old page for attending inbound calls **\[KAN-745]** (#1371, #1372).
  * Updated **Shopify modal and meeting attendance tracking** (#1377).
  * Implemented **schedule meeting start button time conditions** (#1379).
* **Data Management and CSV Exports**:
  * Added CSV download functionality for **strike reports, short videos, upcoming meetings, and rejoined scheduled meetings** (#1378).
  * Enhanced CSV reports with additional production changes and short video file naming improvements (#1385).
* **Bug Fixes**:
  * Fixed duplicate participant issue and added pagination in past meetings (#1383, #1384).
  * Resolved feedback rating stars and comments bug in outbound calls (#1369, #1370).

***

#### **Shorts Widget**

**UI Fixes**

* Fixed **floating tiles not displaying when changing sections** (#195).
* Fixed **UI issues in the "Modal View" products section of shoppable videos** (#196).


# v25.02.05

### **Release Notes**

#### **Backend**

**Features and Enhancements**

* **Meetings and Scheduling**:
  * Introduced a new scheduled meeting report view **\[KAN-747, KAN-748]** (#2531).
  * Added `attend_schedule_call_before` field to enable early attendance for meetings (#2520).
  * Optimized API for meeting reschedule or cancel actions (#2513, #2503).
  * Updated logic to preserve `updated_on` timestamp for agent-side operations (#2524).
  * Updated meeting session logging for better tracking (#2526, #2528).
  * Scheduled meeting view enhancements and end call locks added (#2535, #2536).
  * Added participant-wise data details to reports (#2542).
* **Strike and Lead Reports**:
  * Added a new strike leads report for better tracking (#2529, #2530).
  * Included agent feedback in reports (#2518, #2532).
* **API and Data Management**:
  * Added API to get user info using a mobile number or email (#2519).
  * Updated logic to always operate on the latest permission settings (#2527).
  * Added job to generate webhook token for WTC (#2497).
  * Allowed multiple webhooks to trigger for the same event (#2514).

**Bug Fixes**

* Fixed race conditions on incoming calls to ensure stability (#2482).
* Resolved bulk source creation issues from CSV files (#2511).
* Fixed WhatsApp video reference issue (#2512).
* Updated logic to fix mobile device time layer timeouts (#2501).
* Resolved feedback issues for meeting sessions (#2509).
* Fixed shoppable playlist data inconsistency (#2506).
* Addressed timeline and multiple session creation issues (#1381, #1382).
* Fixed CSV download naming issues for various modules (#1385, #1386).

***

#### **Dashboard**

**User Interface and Experience**

* **New Features and Enhancements**:
  * Added a **new page for attending calls** **\[KAN-694]** (#1363).
  * Introduced UI changes in user roles and table views (#1364).
  * Added a **bulk widget creator** for streamlined widget management (#1366).
  * Temporarily reverted to the old page for attending inbound calls **\[KAN-745]** (#1371, #1372).
  * Updated **Shopify modal and meeting attendance tracking** (#1377).
  * Implemented **schedule meeting start button time conditions** (#1379).
* **Data Management and CSV Exports**:
  * Added CSV download functionality for **strike reports, short videos, upcoming meetings, and rejoined scheduled meetings** (#1378).
  * Enhanced CSV reports with additional production changes and short video file naming improvements (#1385).
* **Bug Fixes**:
  * Fixed duplicate participant issue and added pagination in past meetings (#1383, #1384).
  * Resolved feedback rating stars and comments bug in outbound calls (#1369, #1370).

***

#### **Shorts Widget**

**UI Fixes**

* Fixed **floating tiles not displaying when changing sections** (#195).
* Fixed **UI issues in the "Modal View" products section of shoppable videos** (#196).


