0
votes

I am trying to model a Call Center with Chat communication and need your thoughts on this scenario. Real world scenario is that Customer Service Representatives[CSR] in Chat Call Center can service multiple customer chats at same time based on their capacity[integer value 1,2...]

  1. "Chat" Agent [source]
  2. "ChatAgent" resource unit with int parameters totalCapacity[default=3]

Using a service, incoming "Chat" from source seizes a "ChatAgent" from a resourcePool[with resourceUnit "ChatAgent"]. In this model, a "ChatAgent" accepts only 1 "Chat" inside the service block.

ResourcePool On seize: unit.totalCapacity--; On release: unit.totalCapacity++;

But I couldn't model a scenario where 1 "ChatAgent" can service multiple customer "Chats" at a time based on their totalCapacity like in a real chat call center.

Please advise on how I can configure this multiple agents to 1 resource seize/delay.

Updated Model

Updated ChatAgent Resource Structure

Thanks, Shiva

1

1 Answers

0
votes

Many ways of doing this, but the first thing that comes to mind is NOT to use ChatAgent as a resource (at least not the kind you use on a service block) because chats can come at any given time, and you can't have a resource taking many different agents that come at different times through the service block...

Instead you can use the following structure in the chatAgent: ChatAgent Structure

The capacity of the resource will define how many agents can enter the restrictedArea block... This structure will exist inside your chatAgent resource.

Your main agent will have the following structure: main structure

when the chat waits for an available chatAgent, if a chatAgent is available by doing:

chatAgent.beginService.entitiesInside() < chatAgent.capacity

These are the most important details to make it work... now you have to build the model properly.