Frontend

Overview

While N2ACD attempts to apply standard defaults across both the flow editor and administration GUIs, there are situations in which site-specific configuration is required. Configuration can be applied for the following features:

Configuration Field Description
Default Parent Customer The initial parent customer selected on the customer creation screen.
Display Timezones The list of timezones available for users.
Flow Editor Site The location of the flow editor application.
Restrict Announcement Search Prefix-based or partial name matching in announcement searches.
Show Start Node Whether to show the start node in the flow editor.
Node Types Flow Editor node-specific configuration.
User Buffers Flow Editor user buffer configuration.
User Counters Flow Editor user counter configuration.

Default Parent Customer

A parent customer must always be selected when creating a new customer in N2ACD.

Specifying the default_parent_customer property in the frontend configuration block initialises the parent customer selection on the customer creation screen. The setting’s value is the database identifier for the customer.

    "frontend": {
        "default_parent_customer": 1
        , ...
    }

Defaults to null.

Display Timezones

The flow editor and administration GUIs both support timezone compensation for displayed dates and times. A configurable list of display timezones is available to individual users to enable them to choose how they wish to see date/time data displayed across both applications.

The contents of the display_timezones property in the frontend configuration block determines which timezones users can select from in both the flow editor and the administration GUI.

    "frontend": {
        "display_timezones": [
            {
                "name": "NSW and ACT",
                "value": "Australia/Sydney",
                "default": true
            },
            {
                "name": "VIC and TAS",
                "value": "Australia/Melbourne"
            },
            {
                "name": "QLD",
                "value": "Australia/Brisbane"
            }
        ]
        , ...
    }
Property Type Default Description
name string - [Required] The display name of the timezone presented to users in the GUIs.
value string - [Required] The value that is used to apply the timezone adjustment. This must be a valid IANA timezone identifier.
default boolean false Whether or not the associated display timezone will be assigned to new users the first time they log into either the flow editor or administration GUI. Only one timezone should be configured as the default timezone.

Defaults to:

    "display_timezones": [
        {
            "name": "New Zealand",
            "value": "Pacific Auckland",
            "default": true
        }
    ]

Flow Editor Site

The administration GUI displays various flow version references. For ease of use, those references include direct links to the flow editor for the corresponding flow versions.

Some N2ACD deployments co-locate the flow editor and administration GUIs, while others may deploy them separately. Therefore, in order for flow version link URLs to be constructed correctly, the administration GUI needs to be configured with the base path to the flow editor.

Specifying the flow_editor_site property in the frontend configuration block enables the adiminstration GUI to construct appropriate link URLs.

    "frontend": {
        "flow_editor_site": "https://n2acd-flow-editor-uri/n2acd-fe"
        , ...
    }

Defaults to http://localhost/n2acd-fe.

The announcement search dialog used by various flow editor nodes supports both prefix and partial match search modes.

Search mode is controlled on a system-wide basis by the restrict_announcement_search property in the frontend configuration block.

    "frontend": {
        "restrict_announcement_search": true
        , ...
    }

Value true means announcement search will use prefix matching. Announcement search results will include announcements with names that start with the search term.
Value false means announcement search will use partial matching. Announcement search results will include announcements with names that contain the search term in any part of the announcement name.

Defaults to true.

Show Start Node

The flow editor allows for the Start node to be hidden if there is at least one other node in the flow.

The visibility of the Start node is controlled by the show_start_node property in the frontend configuration block.

    "frontend": {
        "show_start_node": true
        , ...
    }

Value true means the Start node should always be shown.
Value false means the Start node will be hidden when there is at least one other node in the flow.

Defaults to true.

Node Types

Various flow editor nodes require or support configuration.

The node-type configuration that only affects the flow editor itself is specified in the node_types sub-section of the frontend configuration block.

Defaults to:

    "frontend": {
        "node_types": {
            "Caller Type": {
                "type_mappings": {
                  "international": "International",
                  "landline": "Landline",
                  "mobile": "Mobile",
                  "payphone": "Payphone"
                }
            },
            "Cellsite Routing": {
                "cellsites": [
                    "AKL"
                    , "WLG"
                    , "CHCH"
                ]
            }
            , "Connect": {
                "single_number_only": false
            }
            , "Menu": {
                "exit_render_rule": "hide_empty"
            }
            , "Proportional Distribution": {
                "exit_name_type": "percentage"
            }
        }
        , ...
    }

The following nodes can be configured within the node_types sub-section:

Business Hours

The Business Hours node and associated Day of Week, Day of Year, and Time of Day nodes have a timezone field. The options available in that field are determined by the values of the Business Hours node’s timezone_list and allow_caller_timezone properties.

timezone_list may be set to one of:

The default array of IANA timezone identifiers is defined in all_timezones.js.

When the allow_caller_timezone property is true, an additional Caller Timezone option will be included as the first option in the timezone field. When Caller Timezone is selected, ACD will use a deployment-specific mechanism to determine the caller’s timezone, and use that timezone for the corresponding node logic.

Defaults to:

    "Business Hours": {
        "allow_caller_timezone": false
        , "timezone_list": ["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Bissau", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port-au-Prince", "America/Port_of_Spain", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/South_Pole", "Antarctica/Syowa", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Gaza", "Asia/Harbin", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/NSW", "Australia/North", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "CET", "CST", "CST6CDT", "Canada/Atlantic", "Canada/Central", "Canada/East-Saskatchewan", "Canada/Eastern", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "EET", "EST", "EST5EDT", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10", "Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4", "Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9", "Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12", "Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4", "Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9", "Etc/GMT0", "Etc/Greenwich", "Europe/Amsterdam", "Europe/Andorra", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT+0", "GMT-0", "GMT0", "Greenwich", "HST", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "MET", "MST", "MST7MDT", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "NZ", "NZ-CHAT", "Navajo", "PRC", "PST", "PST8PDT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Chatham", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "ROC", "ROK", "Singapore", "Turkey", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Pacific-New", "US/Samoa", "UTC", "W-SU", "WET"]
    }
Caller Type

The Caller Type node supports configuration of the available caller types via the type_mappings property.

type_mappings is an object of types mapped to display names.

Defaults to:

"Caller Type": {
    "type_mappings": {
        "international": "International",
        "landline": "Landline",
        "mobile": "Mobile",
        "payphone": "Payphone"
    }
},

Valid key values are:

Cellsite Routing

The Cellsite Routing node supports configuration of the available cellsites via the cellsites property.

cellsites is an array of cellsite labels.

Defaults to:

    "Cellsite Routing": {
        "cellsites": [
            "AKL"
            , "WLG"
            , "CHCH"
        ]
    }
Connect

The Connect node supports various configuration properties.

Configuration Field Type Default Description
single_number_only boolean false Whether or not to allow a sequence of termination numbers to be specified in a single connect node.

Defaults to:

    "Connect": {
        "single_number_only": false
    }
End Call

The End Call node has a reason field within its advanced options. The options available in that field are determined by the contents of the End Call node’s reasons property.

    "End Call": {
        "reasons": [
            { "key": "route_select_failure", "description": "route select failure (INAP 3 / SIP 404)" }
            , { "key": "busy",               "description": "busy (INAP 17 / SIP 486)" }
            , { "key": "no_answer",          "description": "no answer (INAP 19 / SIP 480)" }
            , { "key": "normal_unspecified", "description": "normal, unspecified (INAP 31 / SIP 603)" }
        ]
    }
Property Type Description
key string [Required] A unique identifier for the reason.
description string [Required] The option label to display in the flow editor’s reason field.

Defaults to:

    "End Call": {
        "reasons": []
    }

The Menu node supports various configuration properties.

Configuration Field Type Default Description
exit_render_rule enumerated hide_empty Controls which exits should be shown:
show_all: show all exits, regardless of whether they’re connected or not.
between: show the exits between and including the first connected exit and last connected exit.
hide_empty: only show the connected exits.

Defaults to:

    "Menu": {
        "exit_render_rule": "hide_empty"
    }
Proportional Distribution

The Proportional Distribution node supports various configuration properties.

Configuration Field Type Default Description
exit_name_type enumerated percentage Controls exit names/labels:
weight: show the configured proportions.
percentage: show percentages calculated from the configured proportions.
default_proportion_value integer 50 The default value used for the proportions.

Defaults to:

    "Proportional Distribution": {
        "exit_name_type": "percentage"
        , "default_proportion_value" : 1
    }

User Buffers

Several N2ACD nodes including the User Input node use buffers for input and/or output.

The contents of the user_buffers property in the frontend configuration block determines which buffers are available for selection in the flow editor.

    "frontend": {
        "user_buffers": [
            {
                "id": "buffer1"
                , "name": "Buffer 1"
                , "default": true
            }
            , {
                "id": "buffer2"
                , "name": "Buffer 2"
            }
        ]
        , ...
    }
Property Type Default Description
id string - [Required] A unique identifier for the buffer.
name string - [Required] The option label to display in the flow editor buffer fields.
read_only boolean false Whether or not the associated buffer is read-only, and therefore can only be used as a source.
default boolean false Whether or not the associated buffer will be selected by default in node buffer fields. Only one buffer should be configured as the default buffer.

Defaults to:

    "user_buffers": [
        {
            "id": "Calling Party Number"
            , "name": "Calling Party Number"
            , "read_only": true
            , "default": true
        }
        , {
            "id": "Dialled Number"
            , "name": "Dialled Number"
            , "read_only": true
        }
        , {
            "id": "Mobile Location ID"
            , "name": "Mobile Location ID"
            , "read_only": true
        }
        , {
            "id": "Original Called Number"
            , "name": "Original Called Number"
            , "read_only": true
        }
    ]
    , ...

User Counters

The Set Counter, Increment Counter, and Branch Counter nodes enable counter-based flow control.

The contents of the user_counters property in the frontend configuration block determines which counters are available for selection in the flow editor.

    "frontend": {
        "user_counters": [
            {
                "id": "counter1"
                , "name": "Counter 1"
            }
            , {
                "id": "counter2"
                , "name": "Counter 2"
            }
        ]
        , ...
    }
Property Type Description
id string [Required] A unique identifier for the counter.
name string [Required] The option label to display in the flow editor counter fields.

Defaults to:

    "user_counters": [
        {
            "id": "Loop Counter"
            , "name": "Loop Counter"
        }
    ]
    , ...