Hi to all, I known that this may be a strange questione but anyone known if is possible to differentiate the type of support time.
In other words I need to separate time that i spend at telephone fromt time spent to write mail or at remote support so when I create periodically report I can have all separated value.
May I use any custom variable or anything else?
Regards
Nicola
Differentiate phone suport from mail support
Moderator: crythias
-
- Znuny guru
- Posts: 5018
- Joined: 13 Mar 2011, 09:54
- Znuny Version: 6.0.x
- Real Name: Renée Bäcker
- Company: Perl-Services.de
- Contact:
Re: Differentiate phone suport from mail support
You can create a database query to get the accounted time for an article and the type of that article...
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
Re: Differentiate phone suport from mail support
Ok, but suppose i have mail, phone and remote support (like vnc or other)
How can I select which tipe of support is done when I specify amount of minutes in the ticket?
Regards
Nicola
How can I select which tipe of support is done when I specify amount of minutes in the ticket?
Regards
Nicola
-
- Znuny guru
- Posts: 5018
- Joined: 13 Mar 2011, 09:54
- Znuny Version: 6.0.x
- Real Name: Renée Bäcker
- Company: Perl-Services.de
- Contact:
Re: Differentiate phone suport from mail support
Create a dynamic field (type dropdown) with the different types of support. The agents have to choose the type when they add a note...
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
Re: Differentiate phone suport from mail support
Very good, I've created a mandatory drop down item when I create a new note inside a ticket.
I also found in db that they are stored in table dynamic_field_value
I can also see all the ticket histiry and time accounting but I have found no way to correlate the time specified in the note with the dynamic filed value
db side I can't see any key for the correlation.
In other words I ca,'t find a reference to the dynamic field inside article or note.
Regards
Nicola
I also found in db that they are stored in table dynamic_field_value
I can also see all the ticket histiry and time accounting but I have found no way to correlate the time specified in the note with the dynamic filed value
db side I can't see any key for the correlation.
In other words I ca,'t find a reference to the dynamic field inside article or note.
Regards
Nicola
Re: Differentiate phone suport from mail support
Hi, I've found a solution...
I created a new article type "remote" and added it as option when creating a new note with Ticket::Frontend::AgentTicketNote###ArticleTypes
All works fine and with the following quey I can retrive time by type
So I created a new item in ticket menu under comunication called Remote Support.
My idea is that when agent click on this button anew note is opened and "remote" is set as article_type
Is this possible?
To crete the button i used this xml.
Now I have to create a custom pm file under module or I can use an existing end edit properties?
Regards
Nicola
I created a new article type "remote" and added it as option when creating a new note with Ticket::Frontend::AgentTicketNote###ArticleTypes
All works fine and with the following quey I can retrive time by type
Code: Select all
SELECT DISTINCT
TICKET.tn as 'Ticket Name',
TICKET.title as 'Oggetto',
TICKET.customer_id as 'CLIENTE',
TICKET.customer_user_id as 'Riferimento cliente',
CUSTOMERUSER.email as 'email',
ATYPE.name as 'Tipologia supporto',
ARTICLE.create_time as 'Data Attività',
TIMEACCOUNT.time_unit as 'Durata attività (min)'
FROM article ARTICLE
INNER JOIN ticket TICKET on ARTICLE.ticket_id = TICKET.id
INNER JOIN customer_user CUSTOMERUSER on CUSTOMERUSER.login = TICKET.customer_user_id
INNER JOIN ticket_state TSTATE on TSTATE.id = TICKET.ticket_state_id
INNER JOIN article_type ATYPE on ATYPE.id = ARTICLE.article_type_id
INNER JOIN time_accounting TIMEACCOUNT on TIMEACCOUNT.article_id = ARTICLE.id
WHERE TSTATE.type_id = 3
My idea is that when agent click on this button anew note is opened and "remote" is set as article_type
Is this possible?
To crete the button i used this xml.
Now I have to create a custom pm file under module or I can use an existing end edit properties?
Code: Select all
root@SRV-TICKET:/opt/otrs/Kernel/Modules# vim AgentTicketRemoteSession.pm
root@SRV-TICKET:/opt/otrs/Kernel/Modules# vim ../Config/Files/RemoteSupportButton.xml
<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="1.0" init="Application">
<ConfigItem Name="Ticket::Frontend::MenuModule###428-RemoteSupport" Required="0" Valid="1">
<Description Translatable="1">Remote Support Session</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::MenuModule</SubGroup>
<Setting>
<Hash>
<Item Key="Module">Kernel::Output::HTML::TicketMenu::Generic</Item>
<Item Key="Name">Remote Support</Item>
<Item Key="Description" Translatable="1">Add a remote support session</Item>
<Item Key="Action">AgentTicketRemoteSession</Item>
<Item Key="Link">Action=AgentTicketRemoteSession;TicketID=$QData{"TicketID"}</Item>
<Item Key="Target"></Item>
<Item Key="PopupType">TicketAction</Item>
<Item Key="ClusterName">Communication</Item>
</Hash>
</Setting>
</ConfigItem>
<ConfigItem Name="Frontend::Module###AgentTicketRemoteSession" Required="0" Valid="1">
<Description Translatable="1">Frontend module registration for the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::ModuleRegistration</SubGroup>
<Setting>
<FrontendModuleReg>
<Description>AgentTicketRemoteSession</Description>
<Title>AgentTicketRemoteSession</Title>
<NavBarName>Ticket</NavBarName>
</FrontendModuleReg>
</Setting>
</ConfigItem>
</otrs_config>
Nicola
Re: Differentiate phone suport from mail support
Finally I resolved copying a portion of ticket.xml relative to note and changing parameters
Now all works fine, I have a custom button under comunications and I have different support type in reports.
Thanks to all
Nicola
Now all works fine, I have a custom button under comunications and I have different support type in reports.
Thanks to all
Nicola
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="1.0" init="Application">
<ConfigItem Name="Ticket::Frontend::MenuModule###428-RemoteSupport" Required="0" Valid="1">
<Description Translatable="1">Shows a link in the menu to add a remote support session.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::MenuModule</SubGroup>
<Setting>
<Hash>
<Item Key="Module">Kernel::Output::HTML::TicketMenu::Generic</Item>
<Item Key="Name">Remote Session</Item>
<Item Key="Description" Translatable="1">Add a remote support session to this ticket</Item>
<Item Key="Action">AgentTicketRemoteSession</Item>
<Item Key="Link">Action=AgentTicketRemoteSession;TicketID=[% Data.TicketID | html %]</Item>
<Item Key="Target"></Item>
<Item Key="PopupType">TicketAction</Item>
<Item Key="ClusterName" Translatable="1">Communication</Item>
<Item Key="ClusterPriority">435</Item>
</Hash>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Permission" Required="1" Valid="1">
<Description Translatable="1">Required permissions.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<String Regex="">note</String>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###RequiredLock" Required="0" Valid="1">
<Description Translatable="1">Defines if a ticket lock is required in the ticket note screen of the agent interface (if the ticket isn't locked yet, the ticket gets locked and the current agent will be set automatically as its owner).</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###TicketType" Required="0" Valid="1">
<Description Translatable="1">Sets the ticket type in the ticket note screen of the agent interface (Ticket::Type needs to be activated).</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Service" Required="0" Valid="1">
<Description Translatable="1">Sets the service in the ticket note screen of the agent interface (Ticket::Service needs to be activated).</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###ServiceMandatory" Required="0" Valid="1">
<Description Translatable="1">Sets if service must be selected by the agent.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###SLAMandatory" Required="0" Valid="1">
<Description Translatable="1">Sets if SLA must be selected by the agent.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Queue" Required="0" Valid="1">
<Description Translatable="1">Sets the queue in the ticket note screen of a zoomed ticket in the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Owner" Required="0" Valid="1">
<Description Translatable="1">Sets the ticket owner in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###OwnerMandatory" Required="0" Valid="1">
<Description Translatable="1">Sets if ticket owner must be selected by the agent.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Responsible" Required="0" Valid="1">
<Description Translatable="1">Sets the responsible agent of the ticket in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###State" Required="0" Valid="1">
<Description Translatable="1">If a note is added by an agent, sets the state of a ticket in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###StateType" Required="1" Valid="1">
<Description Translatable="1">Defines the next state of a ticket after adding a note, in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Array>
<Item>open</Item>
<Item>closed</Item>
<Item>pending reminder</Item>
<Item>pending auto</Item>
</Array>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###StateDefault" Required="0" Valid="0">
<Description Translatable="1">Defines the default next state of a ticket after adding a note, in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<ValidateModule>Kernel::System::SysConfig::StateValidate</ValidateModule>
<Setting>
<String Regex="">pending reminder</String>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Note" Required="0" Valid="1">
<Description Translatable="1">Allows adding notes in the ticket note screen of the agent interface. Can be overwritten by Ticket::Frontend::NeedAccountedTime.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="1">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###NoteMandatory" Required="0" Valid="1">
<Description Translatable="1">Sets if note must be filled in by the agent. Can be overwritten by Ticket::Frontend::NeedAccountedTime.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="1">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Subject" Required="0" Valid="1">
<Description Translatable="1">Sets the default subject for notes added in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<String Regex=""></String>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Body" Required="0" Valid="1">
<Description Translatable="1">Sets the default body text for notes added in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<TextArea></TextArea>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###InvolvedAgent" Required="1" Valid="1">
<Description Translatable="1">Shows a list of all the involved agents on this ticket, in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###InformAgent" Required="1" Valid="1">
<Description Translatable="1">Shows a list of all the possible agents (all agents with note permissions on the queue/ticket) to determine who should be informed about this note, in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###ArticleTypeDefault" Required="0" Valid="1">
<Description Translatable="1">Defines the default type of the note in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<String Regex="">remote-session</String>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###ArticleTypes" Required="0" Valid="1">
<Description Translatable="1">Specifies the available note types for this ticket mask. If the option is deselected, ArticleTypeDefault is used and the option is removed from the mask.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Hash>
<Item Key="note-internal">1</Item>
<Item Key="note-external">0</Item>
<Item Key="remote-session">1</Item>
<Item Key="note-report">0</Item>
</Hash>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Priority" Required="1" Valid="1">
<Description Translatable="1">Shows the ticket priority options in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###PriorityDefault" Required="0" Valid="0">
<Description Translatable="1">Defines the default ticket priority in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<ValidateModule>Kernel::System::SysConfig::PriorityValidate</ValidateModule>
<Setting>
<String Regex="">3 normal</String>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###Title" Required="0" Valid="1">
<Description Translatable="1">Shows the title fields in the ticket note screen of the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<Option SelectedID="0">
<Item Key="0" Translatable="1">No</Item>
<Item Key="1" Translatable="1">Yes</Item>
</Option>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###HistoryType" Required="0" Valid="1">
<Description Translatable="1">Defines the history type for the ticket note screen action, which gets used for ticket history in the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<String Regex="">AddNote</String>
</Setting>
</ConfigItem>
<ConfigItem Name="Ticket::Frontend::AgentTicketRemoteSession###HistoryComment" Required="0" Valid="1">
<Description Translatable="1">Defines the history comment for the ticket note screen action, which gets used for ticket history in the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::Ticket::RemoteSupport</SubGroup>
<Setting>
<String Regex="">%%Note</String>
</Setting>
</ConfigItem>
<ConfigItem Name="Frontend::Module###AgentTicketRemoteSession" Required="0" Valid="1">
<Description Translatable="1">Frontend module registration for the agent interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::ModuleRegistration</SubGroup>
<Setting>
<FrontendModuleReg>
<Description>Remote Session</Description>
<Title>Remote Session</Title>
<NavBarName>Ticket</NavBarName>
<Loader>
<JavaScript>Core.Agent.TicketAction.js</JavaScript>
</Loader>
</FrontendModuleReg>
</Setting>
</ConfigItem>
</otrs_config>