Summary
This article describes adding profile questions. Profile questions provide a way to request information from the interface user (to specify a security question, a MAC address, etc.). The user could be an agent, admin or an end customer. Profile questions can be configured to require manual input, a 'select from' list or even a multi-select list.
Profile questions are applied to specific roles, packages or services. To apply a profile question to all packages or roles (user types) you would create 'Extended Attributes'. If you wish to apply profile questions in this way (globally) reference Extended Attributes (Extended Profile Questions) after reading this article.
Profile Data can be transferred when a package is upgraded for example to another package. Details for the transfer process are listed in the Upgrade Component article.
Adding Profile Questions
Profile questions can be created and associated with various EngageIP elements. Below are instructions how to navigate to and setup profile questions.
Setting up Role specific Profile Questions
Role specific profile questions will appear when creating a new account then selecting the specified role in the 'RoleFilter' field.
Setup Steps
Click on Setup
Click on Roles
Click on the name of the role you wish to add the profile question to (Customer, Admin, etc.)
Scroll down to the Components section and click the Add Button then Profile Question
See Profile Question Definitions below for information on how to fill out the fields on the profile questions page
Click the Save button when finished
Setting up Package Profile Questions
Permissions Required:
In order to perform the configuration steps below role permissions for your role must be enabled for PackageProfileQuestion and PackageAttributeProfileAnswer. See the Roles – Adding Roles, Setting Role Permissions and Importing guide for instructions on adding permissions.
Package Profile Questions can be added to Packages from the Setup page, they do not propagate down to the User-Package level (i.e. agents will not see the profile question when adding a Package to a users account in the AdminPortal).
Setup Steps
Click on Setup
Click on Package Profile Questions
Click on the Add button in the lower right
See Profile Question Definitions below for information on how to fill out the fields on the Profile Questions page
Click the Save button when finished
Adding Package Profile Questions to specific Packages
Click on Setup
Click on Packages
Click on the name of an existing Package you want to add the Profile Question to
Scroll down to the Components section and click the Add Button then select the name of the Package Profile Question you setup above
Setting up Service Profile Questions
New in EngageIP 8.5.21.0
Permissions Required:
In order to perform the configuration steps below role permissions for your role must be enabled for ServiceProfileQuestion and ServiceAttributeProfileAnswer. See the Roles – Adding Roles, Setting Role Permissions and Importing guide for instructions on adding permissions.
Service Profile Questions can be added to Services from the Setup page, they do not propagate down to the User-Service level (i.e. agents will not see the Profile Question/Answer when editing a Service within a User-Package on an Account in the AdminPortal).
Note: it is possible to add Profile Questions as Components on Services so that they are presented at the User-Service level (see the section Setting up User-Service Profile Questions below).
Service Profile Questions can store information related to services for reporting or quick reference purposes. The Profile Questions can store any data you wish to track, for instance server details, capacity of the service, speed or availability/class of the service (residential, business), etc. If you wish to generate a Custom Report in the AdminPortal that will output the Service Profile Questions data you can do so. For more information on generating Custom Reports see the Creating Custom Reports in EngageIP Billing article.
Setup Steps
Click on Setup
Click on Service Profile Questions
Click on the Add button in the lower right
See Profile Question Definitions below for information on how to fill out the fields on the Profile Questions page
Click the Save button when finished
Adding Service Profile Questions to specific Services
Click on Setup
Click on Services
Click on the name of an existing Service you want to add the Profile Question to
Scroll down to the Components section and click the Add Button then select the name of the Service Profile Question you setup above
Setting up UserPackageExtended Profile Questions
These profile questions show up on user packages and allow you to store user package level specific information which can then be shared in reports
Steps:
Go to setup tab
Click ‘User Package Extended Attributes’
Add a profile question as needed and demonstrated on this page
Click Save
Go to user account
Click on any user package that exists
Enter the value needed
Click save on package
Setting up User-Service Profile Questions
Permissions Required:
In order to perform the configuration steps below role permissions for your role must be enabled for ServiceAttributeProfileQuestion. In order to modify or delete Profile Questions on User-Services within an account UserServiceAttributeProfileAnswer role permissions must be enabled. See the Roles – Adding Roles, Setting Role Permissions and Importing guide for instructions on adding permissions.
If you want to add Profile Questions which will appear when adding/editing services on a user's account in the AdminPortal (i.e. exist at the User-Service level), follow the steps below.
Setup Steps
Click on Setup
Click on Services
Click on the name of the Service you wish to add the profile question to
Scroll down to the Components section and click the Add Button then Profile Question
See Profile Question Definitions below for information on how to fill out the fields on the profile questions page
Click the Save button when finished
Repeat the process above to add additional Profile Questions to any Service
Profile Question Definitions
Name - Descriptive name for profile questions for internal use
Question - Question for the data being requested
Required - check box to force this question to be required when its shown, for example on add account
Hidden - Does the profile question appear on the account
Read Only - Cannot be edited once entered
Display Name - The name that will show to the user in the interface when this profile questions is presented
Default Answer - This can be completed or left blank, if completed, it will pre-populate the profile question answers on the page
Multiple Answers - Allows the user to add the Profile Question more than once in the interface, meaning the same Question can be added with multiple answers. E.g. this could be used to track MAC Addresses for multiple CPE devices
Unique Answer - Require that the answer provided be unique within EngageIP. For example a DID / WTN that needs to be unique within EngageIP for usage billing purposes
Profile Questions Type Options
Parent - If parent is selected, it will set this profile questions as a parent / container to which you can add other profile questions It basically allows grouping of profile questions under the 'parent' entity / profile questions. For example, you may want to group a set of security questions together and add them all at once to each of your services, you could put them under a 'parent' profile questions and then when they are answered, they would show as one line item under the service with multiple answers (one per profile questions). They would also be editable all on the same page for quick updating as opposed to separate profile questions which you would need to edit individually.
To add parent / child profile questions, do the following:
Add profile question, configure as parent, really just need a parent name here, click save
Add another profile question. Select the above profile question as the parent of this one, enter your question and datatype and other appropriate info. This is the profile question which will ask and house the data
Add more profile questions underneath the parent as needed.
When complete, the profile questions will show in a tree format similar to the image here. Child questions show below the parent with arrows indicating the relationship:
Entered - this is the start of the radio button list to select the type of input, entered means a text box is available
Data Type - defines the validation, for example if Phone Number is selected, it will validate inputted data to be sure its a real phone number
Select From List - radio button for list selection
Options - options for select list can be comma separated. e.g. 'red,blue,purple,yellow'. This allows the user to select from this custom set of options
Select From Table - radio button for a dropdown with options from a table
Table - this lists the tables in the EngageIP database (named BOSS usually). The options presented will be the first column from the table. The tables listed will only be EngageIP default tables, no custom or added tables will be available. To create your own, use a List Provider, detailed below
Selected From List Provider - radio button to allow selection from an external data source
List Provider - the list providers as configured on the setup page. These can be configured to pull data from any external source or database
Multi-Select From List Provider - radio button for allowing multiple selections
Multi-Select List Provider - similar to above, allows more then one option from an external database
Data Type - radio button that allows you to select the data type used to validate the profile answer entered
Help Text - text that displays under the text box or to provide an example for the format of the inputted data
Show on Overview (not shown in image) - this when checked will show the profile answer on the user overview page in the components section
Notice: there is a limit of 50 Profile Answers on a given Overview page to prevent performance issues, if there are more than 50 answers to display you will see the message, "Sorry there are too many UserService Profile Answers to display. Please use the search box for accessing these details." The Search Box is located on the left sidebarShow on User Package (not shown in image) - this when checked will show the answer on the users package when on the packages page. For detail and troubleshooting with this option, please see Package and Service Icons
Invoice in Invoice XML (not shown in image)- This allows you to reference the profile questions and answer in the invoice template so that you can display or use this data. See Invoice Template Sample Code
Restrict Access To Only These Roles - Allows you to restrict access to this profile questions from certain roles
Show On View Filter (not shown in image)- allows the profile answers to show as a column on views or reports where the report includes account names
Example of a List provider as entered on the setup page. The below queries an external database with an SQL statement:
Note: The script below is only an example and will require modification before it can be used. See the following script for a usable example.
using System; using System.Data; using System.Data.SqlClient; OrderedDictionary od = new OrderedDictionary(); string connectionString ="Persist Security Info=False;User ID=*****;Password=*****;Initial Catalog=AdventureWorks;Server=MySqlServer"; // Provide the query string with a parameter placeholder.string queryString = "SELECT ProductID, ProductName from dbo.products " + "WHERE UnitPrice > @pricePoint " + "ORDER BY UnitPrice DESC;"; // Specify the parameter value. int paramValue = 5; // Create and open the connection in a using block. This // ensures that all resources will be closed and disposed // when the code exits. using (SqlConnection connection = new SqlConnection(connectionString)) { // Create the Command and Parameter objects. SqlCommand command = new SqlCommand(queryString, connection); command.Parameters.AddWithValue("@pricePoint", paramValue); // Open the connection in a try/catch block. // Create and execute the DataReader, writing the result // set to the console window. try { connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { od.Add("reader[0], "," reader[1]"); //Adds each item to the Ordered Dictionary } reader.Close(); } catch (Exception ex) { //May need to do something here } } return od;
Note: you need to edit the SQL query and column name in code below.
using System.Data; OrderedDictionary od = new OrderedDictionary(); System.Data.SqlClient.SqlConnection myConnection = new System.Data.SqlClient.SqlConnection(Logisense.Boss.Logic.DomainModel.Config.GetConnectionString()); myConnection.Open(); string queryString ="SELECT Account, Name FROM dbo.[User] WHERE RoleID = 570 ORDER BY Name;"; System.Data.SqlClient.SqlCommand sqlComm = new System.Data.SqlClient.SqlCommand(queryString, myConnection); System.Data.SqlClient.SqlDataReader resourceList = sqlComm.ExecuteReader(); string resource, selecttitle; selecttitle = "-- Select One --"; od.Add(selecttitle, selecttitle); while(resourceList.Read()) { resource = (string)resourceList["account"]; od.Add(resource, resource); } resourceList.Close(); myConnection.Close(); return od;
Translation Import:
Profile questions currently will display much more detail on reports than just the display name. It includes owner name, module name, and package name or the like depending on where its used. To shorten these, you can use 'Language' options to replace the text seen on the report with a shorter name as desired. The format is below and also on the general XML import article.