Hi Martin,

We've progressed on ticket assignment logic. We are currently able to auto 
assign new tickets to a random agent belonging to the same user group as 
the ticket every time a new ticket is created / email is fetched by a 
channel (thanks to your observer pattern tip!) 
Few more things if you could point on how to go about would help :) 

1. How do we identify active agents who are currently logged in? I can see 
duplicate sessions for a user in the sessions table.. 
2. We need to set up a UI to collect settings (enable/disable). Is there a 
generic store where we can define key value?
3. Each channel should have an auto assign true/false control. Also in case 
of email, we should be able to add this as an action in filters. 

Thanks


On Tuesday, 12 September 2017 17:10:26 UTC+5:30, Vishnu S wrote:
>
> hey got the mail fetch working. Scheduler wasn't running :) my bad
>
> On Tuesday, 12 September 2017 14:51:40 UTC+5:30, Vishnu S wrote:
>>
>> Some logs:
>>
>>  Completed 200 OK in 40ms (Views: 2.9ms | ActiveRecord: 9.3ms)
>> I, [2017-09-12T14:39:11.331956 #7798]  INFO -- : fetching imap (
>> imap.gmail.com/mytestemai...@gmail.com 
>> port=993,ssl=true,folder=INBOX,keep_on_server=false)
>> I, [2017-09-12T14:39:14.381450 #7798]  INFO -- : verify mode, fetch no 
>> emails #50967783246
>> I, [2017-09-12T14:39:14.832286 #7798]  INFO -- :  - verify email 
>> #50967783246 found
>> I, [2017-09-12T14:39:15.877659 #7798]  INFO -- : Completed 200 OK in 
>> 13457ms (Views: 0.5ms | ActiveRecord: 7.7ms)
>> I, [2017-09-12T14:39:16.208863 #7798]  INFO -- : Started GET 
>> "/api/v1/channels_email?_=1505207307360" for 127.0.0.1 at 2017-09-12 
>> 14:39:16 +0530
>> I, [2017-09-12T14:39:16.215060 #7798]  INFO -- : Processing by 
>> ChannelsEmailController#index as JSON
>> I, [2017-09-12T14:39:16.215177 #7798]  INFO -- :   Parameters: 
>> {"_"=>"1505207307360", "channels_email"=>{}}
>> I, [2017-09-12T14:39:16.242467 #7798]  INFO -- : Completed 200 OK in 27ms 
>> (Views: 1.9ms | ActiveRecord: 4.9ms)
>> I, [2017-09-12T14:39:20.564939 #7798]  INFO -- : Completed 200 OK in 
>> 25024ms (Views: 0.2ms | ActiveRecord: 1.5ms)
>> I, [2017-09-12T14:39:20.571661 #7798]  INFO -- : Started POST 
>> "/api/v1/message_receive" for 127.0.0.1 at 2017-09-12 14:39:20 +0530
>> I, [2017-09-12T14:39:20.575954 #7798]  INFO -- : Processing by 
>> LongPollingController#message_receive as JSON
>> I, [2017-09-12T14:39:20.576052 #7798]  INFO -- :   Parameters: 
>> {"client_id"=>"4605788166", "long_polling"=>{"client_id"=>"4605788166"}}
>> I, [2017-09-12T14:39:34.290205 #7798]  INFO -- : Started GET 
>> "/api/v1/channels_email?_=1505207307361" for 127.0.0.1 at 2017-09-12 
>> 14:39:34 +0530
>> I, [2017-09-12T14:39:34.294533 #7798]  INFO -- : Processing by 
>> ChannelsEmailController#index as JSON
>> I, [2017-09-12T14:39:34.294599 #7798]  INFO -- :   Parameters: 
>> {"_"=>"1505207307361", "channels_email"=>{}}
>> I, [2017-09-12T14:39:34.317466 #7798]  INFO -- : Completed 200 OK in 23ms 
>> (Views: 2.0ms | ActiveRecord: 4.7ms)
>> I, [2017-09-12T14:39:45.596024 #7798]  INFO -- : Completed 200 OK in 
>> 25020ms (Views: 0.3ms | ActiveRecord: 1.5ms)
>> I, [2017-09-12T14:39:45.603666 #7798]  INFO -- : Started POST 
>> "/api/v1/message_receive" for 127.0.0.1 at 2017-09-12 14:39:45 +0530
>> I, [2017-09-12T14:39:45.609050 #7798]  INFO -- : Processing by 
>> LongPollingController#message_receive as JSON
>> I, [2017-09-12T14:39:45.609220 #7798]  INFO -- :   Parameters: 
>> {"client_id"=>"4605788166", "long_polling"=>{"client_id"=>"4605788166"}}
>> I, [2017-09-12T14:40:04.291113 #7798]  INFO -- : Started GET 
>> "/api/v1/channels_email?_=1505207307362" for 127.0.0.1 at 2017-09-12 
>> 14:40:04 +0530
>> I, [2017-09-12T14:40:04.296788 #7798]  INFO -- : Processing by 
>> ChannelsEmailController#index as JSON
>> I, [2017-09-12T14:40:04.296907 #7798]  INFO -- :   Parameters: 
>> {"_"=>"1505207307362", "channels_email"=>{}}
>> I, [2017-09-12T14:40:04.331139 #7798]  INFO -- : Completed 200 OK in 34ms 
>> (Views: 4.1ms | ActiveRecord: 6.1ms)
>>
>>
>>
>>
>> On Tuesday, 12 September 2017 14:48:50 UTC+5:30, Vishnu S wrote:
>>>
>>> Hi Martin,
>>>
>>> We managed to get auto assigning working (not a clean code yet, we're 
>>> working on it). I was testing email channel set up locally, but it fail to 
>>> download emails to my local instance. Any reason you can think of that 
>>> could cause it? The reason why we need to test email channel is that we 
>>> want to trigger the auto assignment after all filters are applied and group 
>>> assignment triggers are done. 
>>>
>>> Its a test gmail account we created, and it can detect and say there are 
>>> this many emails pending, but it doesnt download them and show up as 
>>> tickets for some reason. 
>>>
>>> Thanks 
>>>
>>> On Friday, 8 September 2017 11:40:07 UTC+5:30, Vishnu S wrote:
>>>>
>>>> Hey Martin,
>>>>
>>>> Thanks for that.. We'll check it out and will let you know.. :) 
>>>>
>>>>
>>>>
>>>> On Thursday, 7 September 2017 18:45:36 UTC+5:30, Martin Edenhofer wrote:
>>>>>
>>>>> Hi Vishnu,
>>>>>
>>>>> wonderful usecase! ❤️
>>>>>
>>>>> By the way, it's also somethin which would fit into Zammad standard.
>>>>>
>>>>> However, I see 2 features:
>>>>>
>>>>> 1) Auto assignment of Tickets at open time 
>>>>> 2) Auto assignment of Tickets at ticket creation
>>>>>
>>>>>
>>>>> Where is the best place for:
>>>>> 1) Could be implemented in the UI, if ticket is opened and no owner is 
>>>>> assigned to auto assignment to the current own.
>>>>>
>>>>> 2) This is quite easy too, if you have the logic how to 
>>>>> determine which agent will get the ticket assigned. In ruby on rails you 
>>>>> can hook into callback. In this case for example "before_create" of any 
>>>>> ticket.
>>>>> Here you can put the logic of e. g. round-robin and assign the new 
>>>>> agent for ticket creation.
>>>>>
>>>>> Read more at: 
>>>>> http://guides.rubyonrails.org/v5.0/active_record_callbacks.html
>>>>>
>>>>> An example in Zammad you can fine here: 
>>>>> https://github.com/zammad/zammad/blob/develop/app/models/observer/ticket/user_ticket_counter.rb#L3
>>>>>  
>>>>> or 
>>>>> https://github.com/zammad/zammad/blob/develop/app/models/observer/ticket/close_time.rb#L31
>>>>>
>>>>>
>>>>> In case, just fork zammad on github and I can light you the way 
>>>>> directly.
>>>>>
>>>>>  -Martin
>>>>>
>>>>>
>>>>> Am Donnerstag, 7. September 2017 11:56:32 UTC+2 schrieb Vishnu S:
>>>>>>
>>>>>> Hi Martin,
>>>>>>
>>>>>> When you have several dozen agents and thousands of tickets coming 
>>>>>> in, manual ticket claims become very impractical. There may be confusion 
>>>>>> on 
>>>>>> what tickets to pick; multiple agents may try to pick the same ticket 
>>>>>> (there's no locking mechanism); if there are economic incentives, 
>>>>>> tickets 
>>>>>> may get hoarded.
>>>>>>
>>>>>> The distribution and resolution of tickets will become erratic and 
>>>>>> uneven.
>>>>>>
>>>>>> With automatic assignment, the burden of assignment is not on the 
>>>>>> agent, but on the system. To start off with, a simple round-robin, or 
>>>>>> even 
>>>>>> random assignment of tickets to agents within a group will ensure even 
>>>>>> distribution.
>>>>>>
>>>>>> - Ticket arrives. Filters and triggers are applied.
>>>>>> - If there's a Group (post filtering), pick a random agent from the 
>>>>>> group and assign.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thursday, 7 September 2017 14:55:38 UTC+5:30, Martin Edenhofer 
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Vishnu,
>>>>>>>
>>>>>>> to give you "good" tip, it would ne nice to know the full usecase 
>>>>>>> from users perspective.
>>>>>>>
>>>>>>> It would also be fine to know hat it the mechanism/rule for  ticket 
>>>>>>> auto assignment (random?).
>>>>>>>
>>>>>>>  -Martin
>>>>>>>
>>>>>>> Am Donnerstag, 7. September 2017 11:18:35 UTC+2 schrieb Vishnu S:
>>>>>>>>
>>>>>>>> Hi there,
>>>>>>>>
>>>>>>>> We'd like to build a simple ticket auto assignment plugin for 
>>>>>>>> Zammad. Is there any starting point for this? How do we go about 
>>>>>>>> writing a 
>>>>>>>> plugin?
>>>>>>>>
>>>>>>>

-- 
Open Source as Download https://zammad.org || Easy to use as SaaS 
https://zammad.com
--- 
You received this message because you are subscribed to the Google Groups 
"zammad-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to zammad-users+unsubscr...@googlegroups.com.
To post to this group, send email to zammad-users@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/zammad-users/5fb9868a-0fa0-4e02-87f8-d8cf138b8dc7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to