Scalability?

17 Comments

  • Joey
    Comment actions Permalink

    Hey Alex-
    As with your other post, engineering & product members owning Conversations are discussing this - ultimately there is likely to be some documentation changed and we'd like it to be as thorough as possible. Again, they will be in touch soon.

    0
  • Slava Sokolov
    Comment actions Permalink

    Any updates here?

    Maybe you can provide some bits of advice or best practices for making architecture based on Conversations API?

    For example, I want to have several instances of service that will listen to Conversations API, how I can do it?

    0
  • Joey
    Comment actions Permalink

    Hi Folks-

    Following up here. First off, the best advice I can give would be to start by going over the article Getting started with the Chat Conversations API , as well as all the referenced links within.
    As far as scaling, one possibility to implement is to create a dedicated agent per bot, even if the function of the bots are identical.

    0
  • Jay Shaktawat
    Comment actions Permalink

    @Alex

    Hi Alex,

    Were you able to get the proper solution for your query? I am facing the same problem. Please do let me know.

     

     

    0
  • Bryan - Community Manager
    Comment actions Permalink

    Hi Jay Shaktawat,

    What problems are you facing? As far as the general Chat Conversations API goes, up to 100 simultaneous chats can be managed by sending message mutation/requests from different channel_ids.

    This API essentially lets one virtual agent (chat bot) service up to 100 chat requests. Do you need more than that?

    0
  • Jay Shaktawat
    Comment actions Permalink

    Hi Bryan,

    Thanks for the follow up.

    I am not concerned about this point "API essentially lets one virtual agent (chat bot) service up to 100 chat requests." This will be properly sufficient for us.

    My concern is exactly same as of Alex. As only 1 concurrent websocket connection is allowed, the instance of server acting as a websocket client will have to handle all incoming messages from zendesk chat. Thus even though  we will have multiple instances of server acting as websocket client only 1 instance will be handling all the incoming messages. I just wanted to know if their is any better way which I can follow regarding this.

     

    0
  • Bryan - Community Manager
    Comment actions Permalink

    Thanks for that additional information Jay. You're right, this is the current design constraint, so you didn't miss anything. Since this API was introduced about a year and a half ago, this is the design that's been in place. If during your testing you do run into challenges, please raise them in a ticket, so we can work with you on any challenges.

    0
  • Pallav Singh
    Comment actions Permalink

    Hi Joey,

    you have mentioned in your comment that for scaling, one possibility is to create a dedicated agent per bot, even if the function of the bots are identical. So, I have tried to do the same. I have created two different agents with two corresponding bots. Also, I have created a trigger in zendesk that every incoming chat request should go to bot department where those two agents are present, but the issue is that they both respond for every incoming chat requests. How can i distribute incoming chat requests between those two agents.

    1
  • Bryan - Community Manager
    Comment actions Permalink

    Hi Pallav Singh,

    You'll need to do a few things for that approach to work. Know that, while this can work, I'd recommend seeing how well one bot agent works out before taking this approach. It does complicate things both on the server side (multiple bots) and client side (modifying script code and widget settings).

    1. You'll want to have Assigned routing turned on and Skills routing off:

    2. For the agents that you've created Chat Conversation Bearer tokens for, you'll need to put each one in a department of their own and make sure the departments are enabled:

    3. Then set the widget settings "departments" attribute to the department you want to route to:

    <script>
        window.zESettings = {
        webWidget: {
          chat: {
            departments: {
              enabled: ['Dept1'],
              select: 'Dept1'
            }
          }     
        }
      };
      </script>

    The agent assigned to that department will get the chat request.

    I hope the above clarifies things. Again, however, I'd recommend first seeing how one chat bot service instance works out.

    0
  • Pallav Singh
    Comment actions Permalink

    Hi Bryan,

    Thanks a lot for your response. I very much appreciate it, though I am using my custom widget along with zendesk web-sdk. Recently, I saw this method setVisitorDefaultDepartment in web-sdk, so what if I randomize department(in dedicated chatbot departments) for every customer, using this method. Would that be a good approach?

    Please provide your views on it. Thanks

    0
  • Greg - Community Manager
    Comment actions Permalink

    Hi Pallav Singh! Just to zoom out a bit here, understanding the use-case here would definitely help to understanding what the end result would be. For example, if you're looking to route chats to these different chatbots based on specific criteria, then there would be one direction that I would recommend. However, if you're looking to do this strictly for "load-balancing" of sorts, there would be another pathway that we would take.

    If you can provide as much detail about what you're looking to do, that will help us help the best!

    0
  • Pallav Singh
    Comment actions Permalink

    Hey Greg,

    Thank you for the response. So basically, I can have more than 100 chats simultaneously and  as  Bryan has mentioned above that a virtual agent can handle upto 100 chats simultaneously. Can you please provide a solution to this problem? The only thing I have in my mind is by creating dedicated agent per bot but the only question I have is that, do I have to create two different botservice for two different agents or only one service is enough.

     

     

    Thanks

    0
  • Greg - Community Manager
    Comment actions Permalink

    Thanks for that information! Based on your situation, I'd like to discuss a slightly different approach, so I'm going to create a ticket right now to explain that approach and we'll see if that will work better for you!

    0
  • Smriti
    Comment actions Permalink

    https://develop.zendesk.com/hc/en-us/community/posts/360029689054/comments/360010630674 

    Hi Greg! Could you please tell me the same solution? I'm facing issues in bot response for more than 100 users.

    Thanks

    0
  • Greg - Community Manager
    Comment actions Permalink

    Hi Smriti! I'd be happy to help! Could you share your use-case as I requested above so that I can determine which option may be best for you?

    0
  • Smriti
    Comment actions Permalink

    Hi Greg!

    I have around 700-800 visitors using my widget at the same time. When i happen to send a request to my chat bot integrated through conversations api, it sometimes doesn't give me the response. So, I wanted to check if it's because of some limits put up for concurrent users or requests because in the logs I can see some unhandled requests?

    Also, I found one article- https://develop.zendesk.com/hc/en-us/articles/360001074328?page=2#comments

    Is that related to my problem? 

    Thanks

     

    0
  • Greg - Community Manager
    Comment actions Permalink

    Thanks for that Smriti! I believe that a good first step would be to take this into a ticket so that we can discuss how we can help with the volume aspect. At that point, if the issues persist, we can eliminate volume as the issue and determine what else may be going on. 

    I'll get a ticket created shortly for you. Thanks for your patience!

    0

Please sign in to leave a comment.

Powered by Zendesk