We have great news for all AI enthusiasts and ChatGPT users! The much anticipated Zobot integration with ChatGPT Assistant is now available with Plugs.
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.
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.
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.
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)
//ChatGPT api key
api_key = "paste-your-api_key";
//Header parameters
headers = Map();
headers.put("Authorization","Bearer " + api_key);
headers.put("Content-Type","application/json");
headers.put("OpenAI-Beta","assistants=v2");
//This param is needed to use the V2 assistant apis
// The following webhook will create a thread and return the thread id
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.
// 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
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.
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 had considered that but I didn't want to spend much time on it until I could get the chats out of Zoho that I wanted to use (based on date, agent, rating).
Attached is what an export looks like.
I'm not even sure how practical it is to train the bot on chats. With KB's, you have a Question and an Answer but with chats, you often times have a lot of questions and clarification and even some confusion before the agent understands the issue and provides an appropriate response.
Thank you for this. It's very helpful. I have a question. The bot fails when a file is submitted by the visitor. Is there a way to avoid this and push the file to ChatGPT?
Thanks for this post. I followed your steps and the bot is working perfectly. I would like to build another version where it is more of a virtual assistant. So the chats become more conversational and some visitor replies will ask the visitor questions to find the right solution. Once the visitor answers it needs to add it into the thread.
I was able to pass the create run error. But, when I test the bot, I ask a first question for help. It answers correctly, but then, it offers me for more help, but it doesn´t matter what I ask, it still answers the same first answer to my first question. What is wrong?
I've done everything here, but what I get back is the question I ask. After adding multiple infos into plug code, I am able to determine the source of the problem:
ChatGPTAssistantsCreateRuns plug has a request to run the thread with the given assistant_id. That request returns this error: {"error":{"message":"No assistant found with id 'asst_xxxxxxx'.","type":"invalid_request_error","param":null,"code":null}}.
We definitely have an assistant with that id. After searching online a little bit, I've stumbled upon this thread: https://community.openai.com/t/no-assistant-found-with-id-asst/563027. One possible reason here is case sensitivity with the assistant id. Not an issue with the plug.
Another possibility is organization id is missing from the header. I've added that one. Still not a solution.
Some say the assistant created in the playground is not visible with API calls, so you need to create the assistant with API as well. Haven't tried this one yet.
While testing the conversation with the ChatGPT assistant, we encountered the expressions (【4:0†......ChatGPT.docx】, 【4:8†source】, etc.) shown within the red boxes in the attached images.
We are aware that Zoho SalesIQ does not cause this situation, but that there are such expressions in the response returned by OpenAI and that this is reflected to the SalesIQ ChatBot.
However, when we wanted to remove these expressions in the Deluge function, we applied the following methods but were not successful.
These expressions vary for bots and bot-related resources. Therefore, we cannot select and replace a specific value.
You or another client may have encountered this situation and found a solution. Could you please help us remove these expressions from the returned reply?
This one is for chatting with the bot directly. If you want it to participate in channels, then you need to do additional setup. I've commented there about that setup as well. Can check it there.
Hope it helps.
Reply to Sasidar ThandapaniA
/* */
12
Insert
Plain text
Rich Text
Add Comment
(Up to 20 MB )
Stats
35 followers
39 replies
9818 views
Follow
Subscribe to receive notifications from this topic.
Attached is what an export looks like.