Home › Toolset Professional Support › [Resolved] Call queueing system
This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.
Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
- | 10:00 – 13:00 | 10:00 – 13:00 | 10:00 – 13:00 | 10:00 – 13:00 | 10:00 – 13:00 | - |
- | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | 14:00 – 18:00 | - |
Supporter timezone: Asia/Kolkata (GMT+05:30)
Tagged: Content-submission forms, Toolset Forms
Related documentation:
This topic contains 19 replies, has 2 voices.
Last updated by richardB-16 4 years ago.
Assisted by: Minesh.
I've built a system for a small call centre. It has a list of clients to be called at particular time slots. E.g. there may be 3 clients to be called between 08.30am-08.45am, 5 clients to be called 08.45am-9am etc. Once the record is edited & marked as complete, it is sorted to the bottom of the list.
The problem I've run in to is how to prevent clients being called twice. Some of the agents are working remotely, so there isn't an option to verbally talk about who to call next.
Ideally I'd have a way of assigning the next client to be called to the next available agent, or some way of immediately removing a record from the queue as soon as it's viewed.
Hope that makes sense! Any help would be gratefully received.
Hello. Thank you for contacting the Toolset support.
It will be too soon if I answer you anything before knowing your current structure.
- How your structure build, What post types you have - are you using any post relationship?
- What form you have to edit/complete the record?
- How you are displaying the records - using views? If yes, what view you are using, is there any filters added?
Basically, if you add some function that once the record is views, it should be hidden then either we will require a custom field that holds the record status or you can play with the post status but what best matches your requirement is you will require to decide.
Normally, we do not have any such feature but if you can guide me with your structure and exact flow and at what moment of action you want to hide/remove record, once I know those things I will be able to guide you in the right direction.
You are welcome to share video/screenshots that should help me to understand your current setup.
Thanks for the help - it's fairly simple, the front end is just a list of clients sorted by the date they were last edited (see screeny). The agents filter by the time slot they're working in.
Then I've two forms connected, one to add notes and another to update the status. Adding a note doesn't edit the main record, that only happens when they click the update status button.
what if you add a another custom field, for instance, record-status or we can play with Latest Status field which you already have and display only posts/records which are not complete?
The problem is that the front end only changes when it's refreshed by the user, so 3 user may load it up and select the first record which is only updated whenever it's edited.
Is there any way I could assign a record to a specific user?
There is no native way that you can assign a record to a user.
If you still want to do make it possible, then you will require to setup a structure first. You should have a post type "My Agents" and you will need to make sure that when a new user is added one post is also added to "My Agent" post type.
Then you will also require to connect your "Record" post type (that holds the call information) with "My Agents" post type using one to many post relationship.
Then you can assign specific records to specific agents post type (users).
=> https://toolset.com/course-lesson/what-are-post-relationships-and-how-they-work/
Thanks for the info Minesh, I already have it setup with post relationships to add notes to specific clients. Everything is working OK in that regard.
Any agent needs to be able to call any client, however, they are current working from the same list of clients view, so the danger is multiple agents will call the same client.
How might I construct a workflow that presents an agent with the next client, and another agent with a different client?
Even if there were a way to disable the 'call' button if a user is already editing it, or has click it in the last 5 mins, or highlighting a row of a record that a user is currently viewing?
Any agent needs to be able to call any client, however, they are current working from the same list of clients view, so the danger is multiple agents will call the same client
==>
But what if you create a structure where you assign specific Agent to specific clients and then list the assigned clients belongs to specific Agent.
For example:
Agent 1:
- Client 1
- Client 2
- Client 3
Agent 2:
- Client 4
- Client 5
- Client 6
Agent 3:
- Client 7
- Client 8
- Client 9
Now, when Agent 1 login, we should query only clients belongs to the loggedin Agent 1, so it should list Client (1,2,3).
Does this makes sense?
Yes - I'd thought of the idea of contact 'pools' but unfortunately that doesn't work because if an agent gets stuck on a call the other need to pick up their slack.
Unless... is there a way in toolset to add a dropdown to the list view which edits the record? Say for example the agent was stuck on a call, they could quickly change the next customer record and move them to another pool?
There is no such feature available as it is not possible to develop such system without writing custom code and custom programming is beyond the scope of our support policy.
With views, what you can do is, you can build custom search, list posts and even list the Call button (using Toolset Edit form), when you click that "Call" button (available with each row), you can modify some status for the call.
The only way feasible is list Clients by Agents but as you said if Agent stuck with the call, you want to move the other clients to other Agents stack which is not possible until you write your custom code that monitors the time of the call and change/move clients to other agents list.
OK, I'm going to try the pools idea.
Is it possible to have a form on the list view with a post relationship that gets the parent ID? That way they can change the pool of the customer without modifying their time stamp.
If you are using the one-to-many post relationship for your (Agent and Clients) then you can add such form while you loggedin as agent but it totally depends on how you structure your content first. So I would say that is the next step to look at it.
First you should configure pool system.
OK, my thinking is to create a pool form with a single radio Pool: 1, 2, 3, 4. Then have that with a one to one post relationship of the main client. Then have that form available on the main list view so agents can change customers in to another pool without updating the client timestamp. Is that all possible?
I dont think one to one relationship work here as one Agent can have Many Clients assigned so you will require to create One To Many relationship.
We offer free test platform http://www.discover-wp.com where you can create as many test sites as you want using the reference sites built on top using Toolset:
=> https://discover-wp.com/site-templates/
I suggest you install any of the site and try and play with your requirement and see whats the best feasible option for your requirement.
If you want to install the site on your localhost that is available on http://www.discover-wp.com, you can use the framework installer plugin:
=> https://toolset.com/course-lesson/using-framework-installer-to-install-reference-sites/
I suggest you create a test site and play with it and then see what is the best option for you to go with.