OpenAI Alert! Plug Sample #11 - Next-generation chatbots, Zobot + ChatGPT Assistant

OpenAI Alert! Plug Sample #11 - Next-generation chatbots, Zobot + ChatGPT Assistant

Hi Everyone!
We have great news for all AI enthusiasts and ChatGPT users! The much anticipated Zobot integration with ChatGPT Assistant is now available with Plugs. 

Notes
Note:
  • SalesIQ offers native integration with OpenAI, supporting several ChatGPT models, including Assistant, under the ChatGPT card.
  • In this post, we’ll explore how to integrate ChatGPT Assistant with SalesIQ’s Zobot (Codeless Bot Builder) using Plugs
     for advanced customizations.

OpenAI has introduced 'ChatGPT Assistants' to customize GPT models as per your requirement. These Assistants work based on your data, instruction, files, functions and more, making it more susceptible to your needs. With Assistant, your SalesIQ bot can be more powereful than ever,  providing contextual assistance to your audience with data specifically exclusive for your business. 

Alert
Please ensure to have a ChatGPT Assistant in your OpenAI Platform to use this Plug.

Here's what the SalesIQ chatbot-Assistant brings to the table:
  • Targeted Responses: Your bot will be entirely specific to your business, ensuring a tailored experience for your audience, rather than relying on global data.
  • Omnichannel Availability: Bot works across all channels, including your mobile app, Website, Facebook, Instagram, WhatsApp, Telegram, and LINE.
  • Human-like conversations:  Engage your audience with natural, engaging interactions that feel human.
  • Always-on availability:  Provide 24/7 customer support with your bot, ready to engage with users anytime.


In this post, we will learn how to create a plug and connect your trained ChatGPT Assistant with your bot. 
Info
Are you new to SalesIQ? Click here to know about SalesIQ's chatbots and plugs

Plug Overview

The ChatGPT Assistant functions based on threads. Initially, you create a thread, add a message to it, and run the message to receive the Assistant's response. So, to integrate ChatGPT Assistant with the Codeless bot builder, we need two plugs.
  • Plug 1 - To create a thread (thread ID) using OpenAI API keys.
  • Plug 2 - To add a message to the thread using the thread ID, create a run and get the ChatGPT assistance's response. 


Info
Help guide to know more about how ChatGPT assistant works

How to build this Plug?

Step 1 - [Plug 1] Creating a thread for the visitor/user 
  • On your SalesIQ dashboard, navigate to Settings > Developers > Plugs > click on Add.
  • Provide your plug a name, and description, and select the Platform as SalesIQ Scripts. Here, we call this plug as ChatGPTAssistantsCreateThread
  • The first step in building the plug is defining the parameters. This plug aims to create a thread and get the thread ID as output. So, only the output parameter (threadID) is needed here. 


Copy the code below and paste it into your plug builder. Then, make the following changes. 
  • In line #2, replace your api_key (Navigate to the OpenAI developer section and click on API keys to create a new one)
  1. //ChatGPT api key
  2. api_key = "paste-your-api_key";
  3. //Header parameters
  4. headers = Map();
  5. headers.put("Authorization","Bearer " + api_key);
  6. headers.put("Content-Type","application/json");
  7. headers.put("OpenAI-Beta","assistants=v2");
  8. //This param is needed to use the V2 assistant apis
  9. // The following webhook will create a thread and return the thread id
  10. response = invokeurl
  11. [
  12. url :"https://api.openai.com/v1/threads"
  13. type :POST
  14. headers:headers
  15. ];
  16. response_json = response.toMap();
  17. thread_id = response_json.get("id");
  18. response.put("threadID",thread_id);
  19. return response;
  • Then, click Save, preview the plug and Publish it. 
Info
Reference:  OpenAI's Create a thread API

Step 2 - [Plug 2] Add a message to thread and get response 
  • From the previous plug, we will get the thread ID as output. 
  • Create a new plug, here we call this plug as ChatGPTAssistantsCreateRuns.
  • Pass the thread ID and the user/visitor input as input parameters. 
  • Once the plug is executed, we will get the ChatGPT Assistance's response, which is the output parameter. 
Input Parameters
  • Name: threadID | Type: String
  • Name: userInput | Type: String
Output Parameters
  • Name: assistantReply | Type: String


Copy the code below and paste it into your plug builder. Then, make the following changes. 
  • In line #2, replace your api_key (Navigate to the OpenAI developer section and click on API keys to create a new one.)
  • In line #3, replace your chatGPT_assistant_id (Navigate to the OpenAI developer scetion > Assistants > choose your Assistant and copy the Assistance ID.


  1. //ChatGPT api key
  2. api_key = "paste-your-api_key";
  3. chatGPT_assistant_id = "asst_4DuWZxC0RNagq0b8pnml4ZPf";
  4. //Header parameters
  5. headers = Map();
  6. headers.put("Authorization","Bearer " + api_key);
  7. headers.put("Content-Type","application/json");
  8. headers.put("OpenAI-Beta","assistants=v2");
  9. //Get the thread ID from the plug input parameters
  10. thread_id = session.get("threadID").get("value");
  11. user_input = session.get("userInput").get("value");
  12. info thread_id;
  13. info user_input;
  14. // Messages API call
  15. requestBody = Map();
  16. requestBody.put("role","user");
  17. requestBody.put("content",user_input);
  18. jsonRequestBody = requestBody.toString();
  19. // The following webhook posts a message to the conversation thread
  20. response = invokeurl
  21. [
  22. url :"https://api.openai.com/v1/threads/" + thread_id + "/messages"
  23. type :POST
  24. parameters:jsonRequestBody
  25. headers:headers
  26. ];
  27. info response;
  28. // Runs API call
  29. requestBody = Map();
  30. requestBody.put("assistant_id",chatGPT_assistant_id);
  31. jsonRequestBody = requestBody.toString();
  32. // The following runs the thread which inturn generates a response once the thread is completed
  33. response = invokeurl
  34. [
  35. url :"https://api.openai.com/v1/threads/" + thread_id + "/runs"
  36. type :POST
  37. parameters:jsonRequestBody
  38. headers:headers
  39. ];
  40. response_json = response.toMap();
  41. run_id = response_json.get("id");
  42. run_status = "queued";
  43. retry_count = {1,2,3,4,5};
  44. for each  retry in retry_count
  45. {
  46. if(run_status != "completed")
  47. {
  48. // The above executed run takes few seconds to complete. Hence a considerable time has to be left before the run is completed and the messages are fetched from the thread can be fetched. Here we wait for 3 seconds assuming the run gets complete within 3 seconds
  49. getUrl("https://httpstat.us/200?sleep=3000");
  50. response = invokeurl
  51. [
  52. url :"https://api.openai.com/v1/threads/" + thread_id + "/runs/" + run_id
  53. type :GET
  54. headers:headers
  55. ];
  56. response_json = response.toMap();
  57. run_status = response_json.get("status");
  58. }
  59. }
  60. // The following webhook fetches the messages from the thread
  61. getmsg_url = "https://api.openai.com/v1/threads/" + thread_id + "/messages";
  62. response = invokeurl
  63. [
  64. url :getmsg_url
  65. type :GET
  66. headers:headers
  67. ];
  68. info response;
  69. response_json = response.toMap();
  70. // Getting the last message from the thread messages list which is the assistant response for the user input.
  71. assistant_response = response_json.get("data").get("0").get("content").get("0").get("text").get("value");
  72. info assistant_response;
  73. response = Map();
  74. response.put("assistantReply",assistant_response);
  75. return response;
  • Then, click Save, preview the plug and Publish it. 

Step 3 - Adding plugs to the Codeless bot builder
  • Navigate to Settings > Bot > Add, provide the necessary information, and select Codeless Bot as the bot platform. You can also open an existing bot.
  • Next, click on Plugs under Action cards, select the first plug (ChatGPTAssistantsCreateThread), and provide a name to save the output (thread_id).

  • Use the visitor fields card, click save in bot context, and provide a name to store the visit
  • Then, select Plug 2 (ChatGPTAssistantsCreateRuns) and pass the value for the parameters
    • thread_id (Input) - The output of the previous Plug
    • user_input (Input) - The visitor's question/input from visitor fields card. 
    • assistant_reply (Output) - The final response from the ChatGPT assistance. 

  • Finally, use any response/input card to display the response to the visitor by typing the % to get the context variable (%assistant_reply%) in the message text box. Here, the button card is used along with the follow-up actions. 
Alert
Note: 
  • The ChatGPT Assistant APIs are still in beta, so it's better to have a fallback flow in the bot until they are stable. 
  • Manage the plug failure instances within the plug failure leg by directing your users to operators using the "Forward to Operator" card or use the "Busy response" card to get the user's question, put them on the missed chats. Additionally, you can also "Send Email" card to notify yourself about the user's inquiry. 

  • The buttons, "I've another question", is used to get next question from the visitor. Use a Go To card and route it to visitor fields card to ask next question. 

I hope this was helpful. Please feel free to comment if you have any questions. I'll be happy to help you. 

Best regards
Sasidar Thandapani

    Access your files securely from anywhere



                          Zoho Developer Community




                                                • Desk Community Learning Series


                                                • Digest


                                                • Functions


                                                • Meetups


                                                • Kbase


                                                • Resources


                                                • Glossary


                                                • Desk Marketplace


                                                • MVP Corner


                                                • Word of the Day


                                                • Ask the Experts





                                                          Manage your brands on social media



                                                                Zoho TeamInbox Resources



                                                                    Zoho CRM Plus Resources

                                                                      Zoho Books Resources


                                                                        Zoho Subscriptions Resources

                                                                          Zoho Projects Resources


                                                                            Zoho Sprints Resources


                                                                              Qntrl Resources


                                                                                Zoho Creator Resources



                                                                                    Zoho CRM Resources

                                                                                    • CRM Community Learning Series

                                                                                      CRM Community Learning Series


                                                                                    • Kaizen

                                                                                      Kaizen

                                                                                    • Functions

                                                                                      Functions

                                                                                    • Meetups

                                                                                      Meetups

                                                                                    • Kbase

                                                                                      Kbase

                                                                                    • Resources

                                                                                      Resources

                                                                                    • Digest

                                                                                      Digest

                                                                                    • CRM Marketplace

                                                                                      CRM Marketplace

                                                                                    • MVP Corner

                                                                                      MVP Corner





                                                                                        Design. Discuss. Deliver.

                                                                                        Create visually engaging stories with Zoho Show.

                                                                                        Get Started Now


                                                                                          Zoho Show Resources


                                                                                            Zoho Writer Writer

                                                                                            Get Started. Write Away!

                                                                                            Writer is a powerful online word processor, designed for collaborative work.

                                                                                              Zoho CRM コンテンツ










                                                                                                Nederlandse Hulpbronnen


                                                                                                    ご検討中の方




                                                                                                          • Recent Topics

                                                                                                          • Different Page Numbering

                                                                                                            I want the page numbers not just 1,2,3... but i,ii,iii,iv,... or even I,II,III,IV.... How can I do this?
                                                                                                          • Remote Control Functionality During Screen Sharing in Zoho Cliq

                                                                                                            Hello Zoho Cliq Team, We would like to request the addition of remote control functionality during screen sharing sessions in Zoho Cliq. Currently, while screen sharing in Cliq is very useful, it lacks the ability for another participant to take control
                                                                                                          • How to validate Rich Text in Zoho Creator! Urgent!

                                                                                                            Hi members, Recently I just started to use Rich Text field. Now I have a requirement where I need to validate to ensure this Rich Text field must contain a value. Meaning must contain something. I use the below script if(input.Rich_Text == null) { alert
                                                                                                          • Real-Time Screen Annotation During Zoho Cliq Screen Sharing

                                                                                                            Hi Zoho Support Team, Hope you're doing well. We’d like to request the addition of real-time screen annotation tools during screen sharing sessions in Zoho Cliq video calls. 🔍 What We're Looking For: The ability for the presenter—and optionally, other
                                                                                                          • Simplify ticket replies with intelligent writing and content analysis tools

                                                                                                            Introducing a smarter, faster way to handle ticket responses with generative AI-powered capabilities, now available in the ticket detail view. These enhancements are designed to reduce agent effort, improve clarity, and elevate the overall support experience.
                                                                                                          • Cannot send a Campaign. No Send or Proceed button

                                                                                                            I have built a Campaign. I had to drop Leads and only use Contacts because only one group can sync. But now I do not see any errors but I do not see anyway to proceed with sending the campaign?
                                                                                                          • Zoho Books - Feature Request - Show Custom Template Preview

                                                                                                            When using a custom template is would be a great user experience if the custom template could be previewed when viewing the record. I have found that it's very confusing for users, when they see an invoice preview but the out put file is different. Additional
                                                                                                          • run a macro on a contact that bounced from crm email merge

                                                                                                            how would one run a macro on a contact that bounced from crm email merge? how would i tell zoho to run a macro that SIGNALS said bounced?
                                                                                                          • Workflow : Update a multiline text field

                                                                                                            Hello, I'm creating a workflow to update a multiline text field. But it looks like I only can format my text as a one-line. How can I format the text to multiple lines ? Thanks
                                                                                                          • Search handwriting using sketch card and OCR

                                                                                                            Hi It's possible using Sketch Card for handwriting and search them using AI and OCR in Pro edition? Thanks
                                                                                                          • Autoresponders in Zoho CRM will be discontinued—transition to Cadences for enhanced engagement

                                                                                                            Zoho CRM’s Autoresponder feature will be discontinued by September 30, 2025. If you're currently using Autoresponders to automate email follow-ups, we recommend switching to Cadences, a more powerful, flexible, and multi-channel engagement tool for today's
                                                                                                          • Recovering a note

                                                                                                            Hi, I accidentally deleted an important academic not from my notebook. Can I recover it? Thanks
                                                                                                          • Unable to schedule posts!

                                                                                                            Hi everyone, I'm on the free account. I just realised it doesn't give me the options to schedule posts anymore, I can only 'post now'. I don't understand why I can't even see what I scheduled before. Can anyone help? Thanks, Benedetta
                                                                                                          • ZUG is Hitting the Road — Across the USA!

                                                                                                            We’re bringing the Zoho User Group (ZUG) meet-ups back to various cities across the United States — and we’re more excited than ever to reconnect with our incredible community! Whether you're a seasoned Zoho user or just getting started, this event is
                                                                                                          • SPF, Zoho Books, Send from my domain

                                                                                                            I am unable to verify my domain through Zoho Books: this is the text record: v=spf1 include:spf.protection.outlook.com include:zohomail.com -all I waited 24 hours already with error: SPF record not found. Contact your domain provider.
                                                                                                          • How do I record timesheet invoices generated in Zoho Workerly against a Sales Order?

                                                                                                            We have customers who issue us a Purchase Order for an aggregate amount of hourly services, which we invoice against on a weekly, bi-weekly, or monthly basis (contract dependent). For simplicity, let's say the customer PO is for $50,000 (1,000 hours at
                                                                                                          • One Place for All Your Automation Needs

                                                                                                            All automation settings are grouped under Settings ()> Automation. This helps you find everything related to automation from one place. Under Workflow Rules, Email Alerts, Email Templates, and Webhooks: Use the Projects tab for project-specific settings.
                                                                                                          • How Do I Refund a Customer Directly to Their Credit Card?

                                                                                                            Hi, I use books to auto-charge my customers credit card. But when I create a credit note there doesn't seem to be a way to directly refund the amount back to their credit card. Is the only way to refund a credit note by doing it "offline" - or manually-
                                                                                                          • header and footer for templates

                                                                                                            Hi,   I created many templates for my activity. Nevertheless I have a big problem, the HTML is varies from a quote to another, there is sometime less or more text. In order to have a nice layout I require Header and Footer. I looked for into the CRM tool, couldn't find it. Can someone explain to me if it's possible ??   It's very urgent, thanks very much,   Eric Marois
                                                                                                          • Simple Text Search Function

                                                                                                            Would it be too much to ask for a simple text search function? My slide decks are often simply collections of slides of a random over, and I often have to find the slide I need at a moment's notice. A text search function, no matter how rudimentary, would
                                                                                                          • Rich-text fields in Zoho CRM

                                                                                                            Hello everyone, We're thrilled to announce an important enhancement that will significantly enhance the readability and formatting capabilities of your information: rich text options for multi-line fields. With this update, you can now enjoy a more versatile
                                                                                                          • Introducing the Reviews sub-module in Zoho Recruit

                                                                                                            Across every recruitment process, candidates are assessed by multiple stakeholders—recruiters, interviewers, hiring managers, and clients. These evaluations influence hiring decisions, yet they often exist in silos across assessments, emails, or interview
                                                                                                          • We need customizable sub-form layouts

                                                                                                            Currently, we can arrange sub-form fields only in a single row. The single row layout means salespeople must horizontally scroll to uncover information. As a result, salespeople cannot see all of the relevant information simultaneously.  The administrator
                                                                                                          • Fetch function not working for CRM Contacts

                                                                                                            I've created a flow that checks if a contact exists in CRM (based on form input), and if it does, then it updates one of the fields for the contact. In my test, the fetch function correctly identifies that a contact exists (based on email address), but
                                                                                                          • How to add a discount (percent %) field?

                                                                                                            My particular case it’s regarding the “Opportunities” module. I’ve created a subform to calculate the value of the opportunity, and now I’d like to include a discount field in the form of a percentage. However, no matter how or where I add the "percent"
                                                                                                          • Automate Pricebook per Customer

                                                                                                            Example Scenario: I want to create a customer package (Silver Package, Gold Package, Platinum Package) and associated it with a Price Book that contains discounted prices for certain products. When a customer assigned to this Silver Package places an
                                                                                                          • Automate pricebook per customer

                                                                                                            Example Scenario: I want to create a customer package (Silver Package, Gold Package, Platinum Package) and associated it with a Price Book that contains discounted prices for certain products. When a customer assigned to this Silver Package places an
                                                                                                          • Automate pricebook per customer

                                                                                                            Example Scenario: I want to create a customer package (Silver Package, Gold Package, Platinum Package) and associated it with a Price Book that contains discounted prices for certain products. When a customer assigned to this Silver Package places an
                                                                                                          • Client Side Scripts for Meetings Module

                                                                                                            Will zoho please add client side scripting support to the meetings module? Our workflow requires most meeting details have a specific format to work with other software we have. So we rely on a custom function to auto fill certain things. We currently
                                                                                                          • Document Tracking

                                                                                                            Hi all Zoho crmplus user here. I am migrating from hubspot and in Hubspot when my sales team email a document they can see when the client has opened the document and how many minutes they sepend on it. This persists for additional openings and readings
                                                                                                          • Apply partial payments to invoices from the Banking Module

                                                                                                            We need this! Why is this not possible?
                                                                                                          • Setting admin only field values in widget

                                                                                                            Hello If I'm using a Widget addRecord function invoked by a user input (the user has write permission not developer) can he set values to a field that is set to be visible to Admin only?
                                                                                                          • Forecast UI improvements

                                                                                                            Hi I have two improvement requests for the UI in the Forecast function. Can you add the ability to reorganise the Pipeline, Committed and Best Case columns on the Forecast? I thought they were in alphabetical order, so we renamed them so that we could
                                                                                                          • Missing services/ features / buttons

                                                                                                            Hello, 1. I can't locate the DKIM information in ZoHo CRM that I need to add as txt strings to our DNS in GoDaddy. 2. In other activities I cannot locate the 'Help' button for context senstivie help 3. I wish to merge two records into a single record
                                                                                                          • Global Sets for Multi-Select pick lists

                                                                                                            When is this feature coming to Zoho CRM? It would be very useful now we have got used to having it for the normal pick lists.
                                                                                                          • [Free Webinar] Building Data Relationships Using Lookup Fields - Creator Tech Connect

                                                                                                            Hello Everyone! We welcome you all to the upcoming free webinar on the Creator Tech Connect Series. The Creator Tech Connect series is a free monthly webinar that runs for around 45 minutes. It comprises technical sessions in which we delve deep into
                                                                                                          • Staff Tracking in

                                                                                                            Hi , I would like to see what activity my staff does over Zoho CRM and over Zoho Mail . I need to know which deals in CRM haven't been touched or had an activity on by a particular staff member . Basically need to establish what work.gets done by WFH
                                                                                                          • Is there a way to force a page refresh after changing a Subform via Workflow / Function?

                                                                                                            I have a workflow which triggers a function, and in this function i am changing the values of a certain subform. The changed are only visibile when i manually refresh the page and this is a no-no for my use-case. When other workflows, that change certain
                                                                                                          • Allow non admins to create folders

                                                                                                            I want to allow users in my company to create their own reporting based upon selected Datasources, however they currently can't create folders to save their work in. This can only be done by admins, which seems excessive. Is this possible ?
                                                                                                          • Episode I : Exploring the World of Custom Functions in Zoho Desk

                                                                                                            Hello Again! Welcome to an Automation Adventure in the World of Zoho Desk Join us on a journey to explore how custom functions can enhance and extend the capabilities of Zoho Desk. Automation is everywhere. From robotic arms assembling products on factory
                                                                                                          • Next Page

                                                                                                          OSZAR »