Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Sv translation
languagecs_CZ

Table of Contents
indent10px

Introduction to Daktela Events

Within the Daktela system, a large number of events are generated that allow you to set up various actions - to call the  , send an e-mail or SMS or edit the form. All this can be set up in nice wizard based interface. At the same time, time constraints can be set, whether to trigger an event, or a timeout when to repeat the event. This is handy when you want to be alerted (eg. by SMS) when your SLA is over some specific limit. And you are OK with just one SMS within given period of time and don't want to receive SMS every minute or so.

Some great examples or use-cases for Events are:

  • Send pre-formatted SMS to your customer when operator finish the order using the campaign records (call-scripts)

  • Call your internal CRM when operator set the specific call status on the outgoing call in some specific queue

  • Send pre-formatted email to your helpdesk system when operator receives a new request over the phone in some queue

  • Alert your company slack channel with caller details when customer enters your incoming queue named VIP
  • Send webchat transcript to Salesforce
  • When ticket in category Billing is closed, update your billing software with ticket information

How to create or edit event

Events are configured under Settings → Events. You can edit existing events or add new by clicking the respective buttons. Once Event is created you can assign which Profiles should see this Event (and can modify it) and create list of Actions which should be performed by Daktela when this Event is generated.

  • Title - Name of your Event.
  • Description - Optional description of your Event.
  • Event type - You can choose Regular or Cron. Regular means that Event will be generated by Daktela when it occurs. Cron means that you can setup time and date when the Event will be generated (similar to Linux Cron). Cron Event can be used for automatically logged out operators everyday at 10PM.
  • Event - Select the Event you want to setup (see the table at the end of this page).
  • Use in multi-actions - If enabled then the Event will be generated for batch operations as well. By batch operators we mean bulk imports of data, etc.

Configuring Actions

There are several pre-build Actions which can be performed when new Event is generated.

Event Actions

  1. Open URL address - open external URL address with given parameters, by default GET method is used, if you need to use POST/PUT/DELETE, then use extra URL parametr _method=POST/PUT/DELETE
  2. Saving form - you can save a new Campaign Record value as a result of some Event
  3. Send email - you can send email with given template and subject line
  4. Send sms - you can send sms to some number with given template


Using Groups

When you need to configure a bit more sophisticated Event's Action you can use logical building blocks. You can put more Conditions into the logical Group and final result will be calculated based on the logical operator. Good example can be if you need to perform some Action when some Event is generated in the Queue A1 or Queue A2. In that case you create logical Group OR and put two Queue conditions - one for Queue A1 and second for Queue A2.

  1. Group AND - performs logical AND
  2. Group OR - performs logical OR
  3. Group FOREACH - this construct provides an easy way to iterate over items in array
  4. Break - exits the FOREACH loop

Using Loader

Object Loader can load the whole structure of some object based (JSON) on the id or name of the object. Lets say you have queue id and you need to know the queue title or queue type. In that case you create Loader of type Queue and give it queue id as a parametr. You get a result with the whole queue structure - Model Queue. Then you can access the queue title by using $queue→title and queue type by $queue->type

  1. Record - loading campaignsrecords object

  2. Contact - loading contacts object
  3. Queue - loading queues object
  4. User - loading users object
  5. Phone call - loading activitiescall object
  6. Array - helper which loads specified json array into variable

Using Conditions

Conditions are important part of the Daktela Events. Usually when some Event is generated you want the Action to be performed only when some Condition is met. For example when the Event is generated on some Queue or from some User etc. 

  1. Time - You can specify time interval by selecting start time and end time. Event Action is performed when event is generated in the specified time interval.
  2. Queue - You can specify the Queue name. Event Action is performed when event is generated on the specified Queue.
  3. User - You can specify the User (operator) name. Event Action is performed when event is generated on the specified User.
  4. Regular Expression - You can specify the pattern of a regular expression (php syntax) and value. 
  5. Comparison - You can specify first value, operator and second value. 

Event simulator - Debug

Event simulator helps developers to simulate the Event as it is generated by Daktela PBX. It is a great tool for debugging, finding the name and values of Event's parameters which you can use for your scenario. Event simulator works for Events generated by CRM Contacts, CRM Accounts, CRM Records, Campaigns Records and Tickets. It simulates all the conditions, loads the objects, works with logical groups and actions which are specified. You can see the results of all comparsions, actual values of parametrs and even the Action is called when conditions are met.

Create some Event and click Simulation button.

Choose some object for simulation (CRM record, campaign record, Ticket, ...) and see the available parameters and step-by-step detailed evaluation of all conditions.

Getting the values from the parameters, objects, arrays (syntax)

There are several type of parameters, variables or objects you can work with in your Event setup. Lets show how you can access some property values:

  • Property value of the main object - lets say you are working with Event of CampaignRecords and you need to access the property parameter user in the CampaignRecords objectthen you just specify $user in your setup to access the value
  • Property value of the object which is being loaded using Loader - lets say you are using Loader Queue and you store the queue object in the variable $queue, if you need to access the queue's name you can do it by $queue→title
  • Property value which is stored as an array in the object -  lets say you have Event of type CampaignRecords and you need to access the callscript value stored in the input box named first_name, then you need to use $customFields[first_name][0]

Practical example - call Event

We want to create call Event which will send email to helpdesk when missed call is created in the queue PRICHOZI.

Create event of type Call → Terminate which is called every time the call is finished. 

    

By configuration Event's action we say what tasks we need to perform. We are working with Call type Event, so we have access to activitiescall object. First we compare the id_queue item with queue PRICHOZI, because we need to perform other actions only if its queue PRICHOZI. Then we decide if its a missed call by comparing $answered item in activitiescall object. Finally we send out email where we specify the callerid of a customer in the email subject by specifying $clid item from the activitiescall object.

Practical example - campaign record Event with Event Simulator

Goal: We have outbound campaign named OUTBOUNDER with simple callscript which holds just two input boxes - first_name and last_name. We want our operators to fill in the name of a customer and select call status Order when they sell item to the customer. We would like to configure Event which will send email to finance department when new sell is made. We would like to have a name of a customer in the email subject.


Create new Daktela Event of type Campaign Record and call it when record is updated. For example operator saves the record when call is finished.


  1. Add the Condition Queue - Evaluate if its OUTBOUNDER queue.
  2. Add the Condition Comparsion - Evaluate if the status is set to Order, please note statuses are array and thats why we have to use $statuses[0][title]
  3. Add the Email Action - Specify sender, recipient, subject and template. We want to put name of a customer to the Subject, these values are in the customFields array, thats why we have to use $customFields[first_name][0] $customFields[last_name][0]


Now you can click on Simulation button, select some demo campaign record and see the available parameters, its values and other evaluations from this example.

Table: List of all Daktela Events and its description

Event TypeEvent NameDescription - when event is called

What parameters are available by default without using object Loader

CallEnterQueueWhen call enters the call queueproperties of object activitiescall
CallOutgoingWhen outgoing call is made

properties of object activitiescall

CallAnsweredWhen answered call (start speaking)properties of object activitiescall
Call

Distribution start

When waiting call in the queue is distributed (ringed) to available operator(s).properties of object activitiescall
CallDistribution stopWhen waiting call in the queue finishes the round of distribution. Before the another call distribution round is started.properties of object activitiescall
CallOpenWhen call activity is opened. Usually when operator opens the call activity tab in GUI.properties of object activitiescall
CallRejectWhen operator rejects the call.properties of object activitiescall
CallTerminateWhen call is finished or someone hangs up.properties of object activitiescall
CallCloseWhen call activity is closed. Usually when operator saves or closes the call activity tab in GUI.properties of object activitiescall
WebchatIncomingWhen new webchat from the customer is submitted.properties of object activitiescall
WebchatDistribution startWhen distributor process starting to distribute webchat to available agent(s).properties of object activitieschat
WebchatDistribution stopWhen distributor process finishes the distribution round (no one picked up).properties of object activitieschat
WebchatOpenWhen webchat activity is opened. Usually when operator opens the webchat activity tab in GUI.properties of object activitieschat
WebchatRejectWhen operator rejects the incoming webchat.properties of object activitieschat
WebchatTerminateWhen webchat is finished or ended. Usually when customer disconnects.properties of object activitieschat
WebchatCloseWhen SMS activity is closed. Usually when operator saves or closes the SMS tab in GUI.properties of object activitieschat
SMSIncomingWhen new SMS from the customer is submitted.properties of object activitiessms
SMSDistribution startWhen distributor process starting to distribute SMS to available agent(s).properties of object activitiessms
SMSDistribution stopWhen distributor process finishes the distribution round (no one picked up).properties of object activitiessms
SMSOpenWhen SMS activity is opened. Usually when operator opens the SMS activity tab in GUI.properties of object activitiessms
SMSRejectWhen operator rejects the incoming SMS.properties of object activitiessms
SMSTerminateWhen SMS is finished or ended. Usually when customer disconnects.properties of object activitiessms
SMSCloseWhen SMS activity is closed. Usually when operator saves or closes the SMS tab in GUI.properties of object activitiessms
MessengerIncomingWhen new Messenger chat from the customer is submitted.properties of object activitiesfbm
MessengerDistribution startWhen distributor process starting to distribute Messenger chat to available agent(s).properties of object activitiessms
MessengerDistribution stopWhen distributor process finishes the distribution round (no one picked up).properties of object activitiessms
MessengerOpenWhen Messenger chat activity is opened. Usually when operator opens the Messenger chat activity tab in GUI.properties of object activitiessms
MessengerRejectWhen operator rejects the incoming Messenger chat.properties of object activitiessms
MessengerTerminateWhen Messenger chat is finished or ended. Usually when customer disconnects.properties of object activitiessms
MessengerCloseWhen Messenger chat activity is closed. Usually when operator saves or closes the Messenger chat tab in GUI.properties of object activitiessms
TicketCreateWhen new helpdesk ticket is created.properties of object tickets
TicketUpdateWhen helpdesk ticket is updated.properties of object tickets
TicketDeleteWhen helpdesk ticket is deleted.properties of object tickets
Campaign recordCreateWhen new campaign record is created.properties of object campaignsrecords
Campaign recordUpdateWhen new campaign record is updated.properties of object campaignsrecords
Campaign recordDeleteWhen new campaign record is edited.properties of object campaignsrecords
Campaign recordActivity openWhen operator opens new activity tab with campaign record in GUI.properties of object campaignsrecords
Campaign recordActivity skipWhen operator clicks on the "Skip the campaign record button" in the activity window tab in GUI.properties of object campaignsrecords
Campaign recordActivity updateWhen operator updates the campaign record in activity window tab in GUI.properties of object campaignsrecords
ContactCreateWhen new contact is created.properties of object contacts
ContactUpdateWhen contact is updated.properties of object contacts
ContactDeleteWhen contact is deleted.properties of object contacts
AccountCreateWhen new account is created.properties of object accounts
AccountUpdateWhen account is updated.properties of object accounts
AccountDeleteWhen account is deleted.properties of object accounts
CRM recordCreateWhen new CRM record is created.properties of object crmrecords
CRM recordUpdateWhen CRM record is updated.properties of object crmrecords
CRM recordDeleteWhen CRM record is deleted.properties of object crmrecords
SessionLogged inWhen user logged in to Daktela.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionLogged outWhen user logged out from Daktela.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionReadyWhen user is set to ready state.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionUnreadyWhen user is set to unready state.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionQueue logged inWhen user is logged to the queue.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionQueue logged outWhen user is logged out from the queue.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionPausedWhen user is paused.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionUnpausedWhen user is unpaused.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user


Sv translation
languageen_US

Table of Contents
indent10px

Introduction to Daktela Events

Within the Daktela system, a large number of events are generated that allow you to set up various actions - to call the webservice, send an e-mail or SMS or edit the form. All this can be set up in nice wizard based interface. At the same time, time constraints can be set, whether to trigger an event, or a timeout when to repeat the event. This is handy when you want to be alerted (eg. by SMS) when your SLA is over some specific limit. And you are OK with just one SMS within given period of time and don't want to receive SMS every minute or so.

Some great examples or use-cases for Events are:

  • Send pre-formatted SMS to your customer when operator finish the order using the campaign records (call-scripts)

  • Call your internal CRM when operator set the specific call status on the outgoing call in some specific queue

  • Send pre-formatted email to your helpdesk system when operator receives a new request over the phone in some queue

  • Alert your company slack channel with caller details when customer enters your incoming queue named VIP
  • Send webchat transcript to Salesforce
  • When ticket in category Billing is closed, update your billing software with necessary info

How to create or edit event

Events are configured under Settings → Events. You can edit existing events or add new by clicking the respective buttons. Once Event is created you can assign which Profiles should see this Event (and can modify it) and create list of Actions which should be performed by Daktela when this Event is generated.

Configuring Actions

There are several pre-build Actions which can be performed when new Event is generated.

Event Actions

  1. Open URL address - open external URL address with given parameters, you can call both POST and GET methods
  2. Saving form - you can save a new Campaign Record value as a result of some Event
  3. Send email - you can send email with given template and subject line
  4. Send sms - you can send sms to some number with given template


Using Groups

When you need to configure a bit more sophisticated Event's Action you can use logical building blocks. You can put more Conditions into the logical Group and final result will be calculated based on the logical operator. Good example can be if you need to perform some Action when some Event is generated in the Queue A1 or Queue A2. In that case you create logical Group OR and put two Queue conditions - one for Queue A1 and second for Queue A2.

  1. Group AND - performs logical AND
  2. Group OR - performs logical OR
  3. Group FOREACH - this construct provides an easy way to iterate over items in array
  4. Break - exits the FOREACH loop

Using Loader

Loader can load the whole structure of object based (JSON) based on the id or name of the object. Lets say you have queue id and you need to know the queue name and queue type. In that case you create Loader of type Queue and give it queue id as a parametr. You get a result with the whole queue structure - Model Queue.

  1. Record - loading campaignsrecords object

  2. Contact - loading contacts object
  3. Queue - loading queues object
  4. User - loading users object
  5. Phone call - loading activitiescall object
  6. Array - helper which loads specified json array into variable

Using Conditions

Conditions are important part of the Daktela Events. Usually when some Event is generated you want the Action to be performed only when some Condition is met. For example when the Event is generated on some Queue or from some User etc. 

  1. Time - You can specify time interval by selecting start time and end time. Event Action is performed when event is generated in the specified time interval.
  2. Queue - You can specify the Queue name. Event Action is performed when event is generated on the specified Queue.
  3. User - You can specify the User (operator) name. Event Action is performed when event is generated on the specified User.
  4. Regular Expression - You can specify the pattern of a regular expression (php syntax) and value. 
  5. Comparison - You can specify first value, operator and second value. 

Event simulator - Debug

Event simulator helps developers to simulate the Event as it is generated by Daktela PBX. Its a great tool for debugging, finding the name and values of Event's parameters which you can use for your scenario. Event simulator works for Events generated by CRM ContactsCRM AccountsCRM RecordsCampaigns Records and Tickets. It simulates all the conditions, loads the objects, works with logical groups and actions which are specified. You can see the results of all comparsions, actual values of parametrs and even the Action is called when conditions are met.

Create some Event and click Simulation button.

Choose some object for simulation (CRM record, campaign record, Ticket, ...) and see the available parameters and step-by-step detailed evaluation of all conditions.

Practical example - call Event

We want to create call Event which will send email to helpdesk when missed call is created in the queue PRICHOZI.

Create event of type Call → Terminate which is called every time the call is finished. 

Create event

    

By configuration Event's action we say what tasks we need to perform. We are working with Call type Event, so we have access to activitiescall object. First we compare the id_queue item with queue PRICHOZI, because we need to perform other actions only if its queue PRICHOZI. Then we decide if its a missed call by comparing $answered item in activitiescall object. Finally we send out email where we specify the callerid of a customer in the email subject by specifying $clid item from the activitiescall object.

Practical example - campaign record Event with Event Simulator

Goal: We have outbound campaign named OUTBOUNDER with simple callscript which holds just two input boxes - first_name and last_name. We want our operators to fill in the name of a customer and select call status Order when they sell item to the customer. We would like to configure Event which will send email to finance department when new sell is made. We would like to have a name of a customer in the email subject.


Create new Daktela Event of type Campaign Record and call it when record is updated. For example operator saves the record when call is finished.


  1. Add the Condition Queue - Evaluate if its OUTBOUNDER queue.
  2. Add the Condition Comparsion - Evaluate if the status is set to Order, please note statuses are array and thats why we have to use $statuses[0][title]
  3. Add the Email Action - Specify sender, recipient, subject and template. We want to put name of a customer to the Subject, these values are in the customFields array, thats why we have to use $customFields[first_name][0] $customFields[last_name][0]


Now you can click on Simulation button, select some demo campaign record and see the available parameters, its values and other evaluations from this example.

Table: List of all Daktela Events and its description

Event TypeEvent NameDescription - when event is calledWhat parameters we can use in actions
CallEnterQueueWhen call enters the call queueproperties of object activitiescall
CallOutgoingWhen outgoing call is madeproperties of object activitiescall
Call

Distribution start

When waiting call in the queue is distributed (ringed) to available operator(s).properties of object activitiescall
CallDistribution stopWhen waiting call in the queue finishes the round of distribution. Before the another call distribution round is started.properties of object activitiescall
CallOpenWhen call activity is opened. Usually when operator opens the call activity tab in GUI.properties of object activitiescall
CallRejectWhen operator rejects the call.properties of object activitiescall
CallTerminateWhen call is finished or someone hangs up.properties of object activitiescall
CallCloseWhen call activity is closed. Usually when operator saves or closes the call activity tab in GUI.properties of object activitiescall
WebchatIncomingWhen new webchat from the customer is submitted.properties of object activitiescall
WebchatDistribution startWhen distributor process starting to distribute webchat to available agent(s).properties of object activitieschat
WebchatDistribution stopWhen distributor process finishes the distribution round (no one picked up).properties of object activitieschat
WebchatOpenWhen webchat activity is opened. Usually when operator opens the webchat activity tab in GUI.properties of object activitieschat
WebchatRejectWhen operator rejects the incoming webchat.properties of object activitieschat
WebchatTerminateWhen webchat is finished or ended. Usually when customer disconnects.properties of object activitieschat
WebchatCloseWhen SMSactivity is closed. Usually when operator saves or closes the SMS tab in GUI.properties of object activitieschat
SMSIncomingWhen new SMS from the customer is submitted.properties of object activitiessms
SMSDistribution startWhen distributor process starting to distribute SMS to available agent(s).properties of object activitiessms
SMSDistribution stopWhen distributor process finishes the distribution round (no one picked up).properties of object activitiessms
SMSOpenWhen SMSactivity is opened. Usually when operator opens the SMS activity tab in GUI.properties of object activitiessms
SMSRejectWhen operator rejects the incoming SMS.properties of object activitiessms
SMSTerminateWhen SMSis finished or ended. Usually when customer disconnects.properties of object activitiessms
SMSCloseWhen SMSactivity is closed. Usually when operator saves or closes the SMS tab in GUI.properties of object activitiessms
MessengerIncomingWhen new Messenger chat from the customer is submitted.properties of object activitiesfbm
MessengerDistribution startWhen distributor process starting to distribute Messenger chat to available agent(s).properties of object activitiessms
MessengerDistribution stopWhen distributor process finishes the distribution round (no one picked up).properties of object activitiessms
MessengerOpenWhen Messenger chat activity is opened. Usually when operator opens the Messenger chat activity tab in GUI.properties of object activitiessms
MessengerRejectWhen operator rejects the incoming Messenger chat.properties of object activitiessms
MessengerTerminateWhen Messenger chat is finished or ended. Usually when customer disconnects.properties of object activitiessms
MessengerCloseWhen Messenger chat activity is closed. Usually when operator saves or closes the Messenger chat tab in GUI.properties of object activitiessms
TicketCreateWhen new helpdesk ticket is created.properties of object tickets
TicketUpdateWhen helpdesk ticket is updated.properties of object tickets
TicketDeleteWhen helpdesk ticket is deleted.properties of object tickets
Campaign recordCreateWhen new campaign record is created.properties of object campaignsrecords
Campaign recordUpdateWhen new campaign record is updated.properties of object campaignsrecords
Campaign recordDeleteWhen new campaign record is edited.properties of object campaignsrecords
Campaign recordActivity openWhen operator opens new activity tab with campaign record in GUI.properties of object campaignsrecords
Campaign recordActivity skipWhen operator clicks on the "Skip the campaign record button" in the activity window tab in GUI.properties of object campaignsrecords
Campaign recordActivity updateWhen operator updates the campaign record in activity window tab in GUI.properties of object campaignsrecords
ContactCreateWhen new contact is created.properties of object contacts
ContactUpdateWhen contact is updated.properties of object contacts
ContactDeleteWhen contact is deleted.properties of object contacts
AccountCreateWhen new account is created.properties of object accounts
AccountUpdateWhen account is updated.properties of object accounts
AccountDeleteWhen account is deleted.properties of object accounts
CRM recordCreateWhen new CRM record is created.properties of object crmrecords
CRM recordUpdateWhen CRM record is updated.properties of object crmrecords
CRM recordDeleteWhen CRM record is deleted.properties of object crmrecords
SessionLogged inWhen user logged in to Daktela.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionLogged outWhen user logged out from Daktela.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionReadyWhen user is set to ready state.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionUnreadyWhen user is set to unready state.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionQueue logged inWhen user is logged to the queue.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionQueue logged outWhen user is logged out from the queue.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionPausedWhen user is paused.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user
SessionUnpausedWhen user is unpaused.
  • $user - username of user
  • $_sys[host] - user's IP address
  • $_sys[aclUser] - username of user who sets this status for $user