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": {
            "Cellsite Routing": {
                "cellsites": [
                    "AKL"
                    , "WLG"
                    , "CHCH"
                ]
            }
            , "Connect": {
                "single_number_only": false
            }
            , "Menu": {
                "exit_render_rule": "hide_empty"
            }
            , "Proportional Distribution": {
                "exit_name_type": "percentage"
            }
            , "User Input": {
                "unique_buffers": [
                    {
                        "id": "user.postcode"
                        , "minDigits": 4
                        , "maxDigits": 4
                    }
                ]
            }
        }
        , ...
    }

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 value of the Business Hours node’s timezone_list property.

timezone_list may be set to one of:

Defaults to the array of IANA timezone identifiers defined in all_timezones.js:

    "Business Hours": {
        "timezone_list": ["SCP Local Time", "TZ of Service Number", "TZ of Logical CLI", "TZ of Network CLI", "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"]
    }

The Business Hours node supports a limited set of special timezones which are determined at runtime.

Configuration Field Type Default Description
allow_caller_timezone boolean false Whether or not to allow selection of Caller Timezone via the Business Hours and assocaited node types when selecting a timezone.
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 Input

The User Input node has a buffer field within its advanced options. The contents of the End Call node’s unique_buffers property enables constraints to be applied based the selected buffer.

    "User Input": {
        "unique_buffers": [
            {
                "id": "two_digit"
                , "minDigits": 2
                , "maxDigits": 2
            }
            , {
                "id": "three_digit"
                , "minDigits": 3
                , "maxDigits": 3
            }
        ]
    }
Property Type Description
id string [Required] The unique identifier for the buffer for which the specified constraints will be applied. This is expected to match the identifier of one of the buffers defined in user buffers.
minDigits number [Required] The minimum number of digits that must be collected for the associated buffer.
maxDigits number [Required] The maximum number of digits that may be collected for the associated buffer.

Defaults to:

    "User Input": {
        "unique_buffers": [
            {
                "id"          : "user.postcode"
                , "minDigits" : 4
                , "maxDigits" : 4
            }
        ]
    }

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.
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": "user.pin"
            , "name": "system.pin"
            , "default": true
        }
        , {
            "id": "user.postcode"
            , "name": "system.extension_digits_0"
        }
    ]
    , ...

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": "user.counter1"
            , "name": "Loop Counter 1"
        }
    ]
    , ...