Configure Citizen Problem Reporter

In this topic, you will learn how to configure the Citizen Problem Reporter solution to meet specific needs in your organization. The first three sections of this will guide you through adding a new problem category, modifying existing problem types and agencies, and revise existing survey questions. The last section guide you through extending the app to generate report IDs, moderate reports, send email notifications and enrich reports.

Add a new problem category

The Citizen Problem Reporter app allows the public to submit nonemergency problem reports. Problem reports are grouped into categories that make it easier to submit a report. The problem categories appear when one logs in to the app and are stored in the CitizenProblems feature layer and visualized in feature layer views.

Citizen Problem Reporter includes nine problem categories: Animal, Blight, Health, Land Use, Park/Tree, Road, Snow/Ice, Trash, and Utility. In some cases, you may want to add a problem category to Citizen Problem Reporter to meet your organization’s needs.

Add problem category

Review the CitizenProblems feature layer categories and identify a category your organization may want to add to Citizen Problem Reporter.

  1. Sign in to your ArcGIS organization and browse to your CitizenProblems feature layer.
  2. Open the item page, click the Data tab.
  3. Click Fields.
  4. Click the Category display name.

    In the List of Values (Domain) section, review existing categories and identify ones that are not applicable and ones that are missing.

  5. Click Edit next to List of Values (Domain).
  6. Optionally, click the Delete button delete category to remove a category from the list, and then click Save.
  7. Click Add.
  8. Type in the new category name into the Displayed Value and Stored Value text boxes.
  9. Repeat steps 11 and 12 to add the remaining missing categories.
  10. Optionally, drag the category to a new location in the list to reorder them.
  11. Click Save.

    Add or delete the same category or categories to the CitizenProblems_dashboard feature layer view.

    To add a problem category using the Modify Domain tool, you will need install Solution Deployment Tool Add-In. If you already installed the add-in, you do not need to install it again.

    Caution:
    The current version of the ArcGIS Solutions Deployment add-In is 2020.7.28 and it is supported with ArcGIS Pro 2.4 through 2.6 (Basic, Standard, or Advanced). Ensure you have the most recent version of the add-in installed before proceeding.

  12. Download the ArcGIS Solutions Deployment ArcGIS Pro.zip file.
  13. Close before installing the add-in.
  14. Browse to the folder to which you downloaded the .zip file and extract its contents.
  15. Double-click SolutionDeployment.esriAddInX to run the installer.
  16. Click Install Add-In.
  17. After installation is complete, click OK.
  18. Open ArcGIS Pro.
  19. If necessary, sign in to the ArcGIS organization.
  20. On the Share tab, in the Deploy group, click ArcGIS Solutions.
  21. Double-click Configure an ArcGIS Solution task.
  22. On the Configure an ArcGIS Solution step, click Next Step.
  23. On the Add Fields step, click Skip.
  24. On the Modify Domains step, click browse next to the Input Layer or Table parameter.

    The Input Layer or Table dialog box appears.

  25. Under Portal, click My Content.
  26. Double-click the Citizen Problem Reporter folder.
  27. Double-click the CitizenProblems_dashboard feature layer view.
  28. Click Citizen Problems, and then click OK.
  29. In the Field parameter, click the drop-down arrow and choose Category.
  30. In the Domain section, type a new category in the Code text box, and then type it in the Description text box. Repeat this step until all the domains that apply to your organization have been added.
  31. Optionally, delete a domain by hovering to the left of the domain you want to delete and click remove.
  32. Optionally, drag the category to a new location in the list to reorder them.
  33. Once you have finished adding or removing domains, click Run.
  34. Click Finish.
  35. Close ArcGIS Pro and save your changes.

Create feature layer view

Create a feature layer view of each new category added to the CitizenProblems feature layer.

  1. Click the Overview tab.
  2. On the CitizenProblems feature layer item page, click Create View Layer.
  3. Type the name of the category in the Title text box. For example, CitizenProblems_animal
  4. Type tag terms separated by commas.
  5. Type a summary in the Summary text box. For example, A public view of <insert category name> problems reported by the public through focused citizen engagement apps.
  6. Save the feature layer view in the Citizen Problem Reporter folder.
  7. Click OK.

    Update the editing setting, so the public can submit nonproblem reports with the Citizen Problem Reporter app.

  8. Open the item page, click the Settings tab.
  9. Scroll to the Feature Layer (hosted, view) section and check the Enable editing check box.
  10. Choose the Add and update features option under the What kind of editing is allowed setting.
  11. Click Save.

    Set the view definition so the public sees the new problem report category.

  12. Click the Overview tab.
  13. Click Open in Map Viewer.
  14. On the new category layer, click More Options more options, and click Set View Definition > Define Features.
  15. Create the following expression: Category is new category.
  16. Click Add another expression and create the following expression: Visible to the public is Yes.

    By default, all problem reports submitted using the Citizen Problem Reporter will automatically set the Public View field to Yes, thus making it visible to the public. Note, you can manually set the visibility to No using the Citizen Problem Manager when triaging the issue.

  17. Click Apply Definition.
  18. On the new category layer, click More Options more options, and click Show Item Details.
  19. Close the new category map tab.
  20. Open the item page, click the Data tab.
  21. Click Fields.
  22. Click the Type of Problem display name.

    Add a problem type domain for the new problem report category.

  23. Open ArcGIS Pro and create a new project.
  24. If necessary, sign in to the ArcGIS organization to which you deployed the Citizen Problem Reporter solution.
  25. On the Share tab, in the Deploy group, click ArcGIS Solutions.
  26. Double-click Configure an ArcGIS Solution task.
  27. On the Configure an ArcGIS Solution step, click Next Step.
  28. On the Add Fields step, click Skip.
  29. On the Modify Domains step, click browse next to the Input Layer or Table parameter.

    The Input Layer or Table dialog box appears.

  30. Under Portal, click My Content.
  31. Double-click the Citizen Problem Reporter folder.
  32. Double-click the new category feature layer view.
  33. Click Citizen Problems, and then click OK.
  34. In the Field parameter, click the drop-down arrow and choose Type of Problem.
  35. In the Type parameter, click the drop-down arrow and choose Coded Value.
  36. Type the category name in the Name text box. For example, Animal.
  37. In the Domain section, type a new category in the Code text box, and then type it in the Description text box. Repeat this step until all the domains that apply to your organization have been added.
  38. Once you have finished adding domains, click Run.
  39. Click Finish.
  40. Close ArcGIS Pro and save your changes.
  41. In your browser, refresh the Type of Problem page.
  42. Click Fields.
  43. Click the Type of Problem display name.

Under the List of Values (Domain), you will see the newly added domains. The domains added will appear in the Type of Problem drop-down list in the Report a problem form.

Repeat the steps in this section for each new category you would like to add to your Citizen Problem Reporter app. Once you have finished adding new categories, you will create a map for each category.

Create a map

Each problem category displayed in the Citizen Problem Reporter app is a single map. Create a map for each category you would like to add to your Citizen Problem Reporter app.

  1. At the top of the site, click Map.
  2. Click the Add button and choose Search for Layers.
  3. Type the name of a category feature layer view in the search box.
  4. Click the Add button add on the layer result.
  5. Click the Back button.
  6. Click the Content button.
  7. On the new category layer, click More Options more options, and click Rename.
  8. Type the category name in the Layer Name text box. For example, Animal Problems.
  9. Click OK.

    Create feature templates for each new problem report category.

  10. On the layer, click Change Style change style.
  11. Click the Choose an attribute to show drop-down arrow and choose Show location only.

    A warning window appears, informing you the changes made to the symbology will affect the symbols displayed. Add and update the symbology once you have created a feature template for your new category.

  12. Click Yes.
  13. Click Done.
  14. Click the Edit button.
  15. Click Manage.
  16. Click the drop-down arrow next to New Feature and choose Properties.
  17. Type the category name – Submitted in the Name text box. For example, Animal Problems - Submitted
  18. Click the Category drop-down arrow and choose the new category.
  19. Click Done.
  20. Click Save Changes.
  21. Click the Close button.

    Update the symbology to reflect your new problem report category.

  22. Click the Details button.
  23. On the layer, click Change Style change style.
  24. Click the Choose an attribute to show drop-down arrow and choose Status.

    A warning window appears, informing you the changes made will affect the symbols displayed.

  25. Click Yes.
  26. Click Options.
  27. Click the Submitted symbol.
  28. Click Shape.
  29. Click the drop-down and choose a symbol set or Custom Images.
  30. If you chose to add a symbol from a symbol set, click a symbol and set the symbol size, click OK.
  31. If you chose to add a custom image, click Use an Image, paste a URL in the text box, set a symbol size, and click OK.
  32. Repeat steps 27 through 29 and assign symbols for the remaining category statuses.
  33. Optionally, click the options button next to the symbol to drag and reorder the symbols.
  34. Click OK.
  35. Click Done.

    Update the pop-up on the new problem report layer.

  36. On the layer, click More Options more options, and click Configure Pop-up.
  37. Enter a title for your pop-up by clicking the button and choosing the Type of Problem field.
  38. Click Configure.
  39. Click the View HTML Source button in the editor.
  40. Delete the existing HTML code.
  41. Copy and paste the following HTML code:
    {category} problem reported on {CreationDate}.<br /><br />
    <b>Details:</b> {details}<br /><br />
    <b>Status:</b><br />
    <table style="border-collapse: separate; border-spacing: 2px 4px; width: 100%; table-layout: fixed; margin: 0px -2px; max-width: 350px;">
      <tbody><tr height="16">
        <td style="{expression/expr0}; text-align: center; width: 25%"></td>
        <td style="{expression/expr1}; text-align: center; width: 25%"></td>
        <td style="{expression/expr2}; text-align: center; width: 25%"></td>
        <td style="{expression/expr3}; text-align: center; width: 25%"></td>
      </tr>
      <tr height="24" style="text-align: center;">
     	<td style="text-align: center; width: 25%; font-weight: normal; padding-left: 0px; word- wrap: break-word;">Submitted</td>
     	<td style="text-align: center; width: 25%; font-weight: normal; padding-left: 0px; word- wrap: break-word;">Received</td>
     	<td style="text-align: center; width: 25%; font-weight: normal; padding-left: 0px; word- wrap: break-word;">In Progress</td>
     	<td style="text-align: center; width: 25%; font-weight: normal; padding-left: 0px; word- wrap: break-word;">Completed</td>
      </tr>
    </tbody></table>
    <table style=" border-collapse: separate; border-spacing: 0px 0px; width: 100%; table-layout: fixed; margin: 0px -1px;">
      <tbody><tr>
    	<td style="display:{expression/expr4}; text-align: left; width: 100%">
    	  <b><br />Resolved On:</b> {resolutiondt}<br /><br />
    	  <b>Resolution:</b> {resolution}
    	</td>
      </tr></tbody>
    </table>
  42. Click the View HTML Source button in the editor.
  43. Click OK.
  44. Click the Configure Attributes link.
  45. Click the check box next to Edit, and then uncheck the check box.
  46. Click the check box next to Display, and then uncheck the check box.
  47. Click the Display check box next to the following fields: {probtype}, {status}, {details}, {expression/expr0}, {expression/expr1}, {expression/expr2}, {expression/expr3}, and {expression/expr4}.

    Display fields will be displayed in the Report a problem form.

  48. Check the Edit check box next to the following fields: {probtype}, {details}, {pocfullname},{pocmail}, and {pocphone}. Ensure {pocfullname}, {pocmail}, and {pocphone} display check box is unchecked, so this information isn’t publicly visible.

    Edit fields will be editable in the form, so when the public submits a problem report, the information will be written to the editable fields.

    Optionally, you can choose to use the {pocfirstname} and {poclastname} fields in your Report a problem form instead of the {pocfullname} field. If you choose to, the First Name and Last Name parameters will appear in the form instead of Full Name.

  49. Click the {details} field row.
  50. Click the Textbox Type drop-down arrow and choose Multiple Line.
  51. Rename the {details} field alias to Problem Details.

    The details field (in the Report a problem form) will be renamed to Problem Details and the text box has doubled in size, so users can add more information about the problem they are submitting.

  52. Reorder the fields in the following order: {probtype}, {details}, {pocfullname}, {pocphone}, {pocmail}, {status}. To reorder the fields, click the field name and use the Move up and Move down arrows.

    The order of the fields in the Configure Attributes window reflects the order of the questions in the Report a problem form.

  53. Add a colon after the following Field Alias: Type of Problem, Problem Details, Full Name, Phone Number, Email, and Status.
  54. Click OK.
  55. Check the Show feature attachments as links check box.
  56. Uncheck the Show when last edited check box.
  57. Under Attribute Expression, press the Shift key and click the Resolution Time and Full Name expressions.
  58. Click the Remove expression button.

    The Resolution Time and Full Name Arcade expressions persisted when you created the category feature layer view from the CitizenProblems feature layer. These Arcade expressions are not used in the Citizen Problem Reporter app.

    The first four expressions define the color used in the status bar in the layer pop-up as well as in the problem details in the Citizen Problem Reporter app. The status bar will update as the problem reported status is updated to Submitted, Received, In Progress, and Completed.

    The last Arcade expression is configured to only display the Resolved On date and Resolved fields and information in the pop-up and problem details if the status is set to Completed.

  59. Click OK.
  60. On the layer, click More Options more options, and click Save Layer.
  61. On the Comments table, click More Options more options, and click Rename.
  62. Rename the table to Comments.
  63. Click OK.
  64. On the Comments table, click More Options more options, and click Configure Pop-up.
  65. Delete the pop-up title.
  66. Click Configure Attributes link.
  67. Click the check box next to Edit, and then uncheck the check box.
  68. Click the check box next to Display, and then uncheck the check box.
  69. Click the Display check box next to the {comments} field.

    Display fields will be displayed in the Citizen Problem Reporter comment form.

  70. Check the Edit check box next to the following fields: {comments}, {pocfullname}, {pocphone}, and {pocemail}. Ensure {pocfullname}, {pocmail}, and {pocphone} display check box is unchecked, so your citizen information isn’t publicly accessible.

    Edit fields will be editable in the comment form, so when citizens make comments about a problem report, the information will be written to the editable fields.

    Optionally, you can choose to use the {pocfirstname} and {poclastname} fields in your Report a problem form instead of {pocfullname} field. If you choose to, the First Name and Last Name parameters will appear in the form instead of Full Name.

  71. Click the {comments} field row.
  72. Click the Textbox Type drop-down arrow and choose Multiple Line.
  73. Rename the {details} field alias to Leave a comment.

    The comment field (in the form) will be renamed to Leave a comment and the text box has doubled in size, so users can add more information about their comment.

  74. Change the Phone Field Alias to Phone Number.
  75. Add a colon after the following Field Alias: Leave a comment, Full Name, Phone Number, and Email.
  76. Click OK.
  77. Uncheck the Show when last edited check box.
  78. Click OK.
  79. On the Surveys table, click More Options more options, and click Remove.
  80. Click Yes, Remove Table.
  81. Click Save > Save As.
  82. Type a title. For example, Animal Problems.
  83. Type tags that describe your map.
  84. Provide a summary that describes the map. For example, A map used to report animal concerns in our community.
  85. Save the map in the Citizen Problem Reporter folder.
  86. Click Save Map.
  87. Click Share.
  88. Check the check box next to the Citizen Problem Reporter group.
  89. Click Cancel to update sharing. You do not want to share the feature layer view to the Citizen Problem Reporter group.
  90. Click Done.
  91. Click the About button.
  92. Click the More Details link.
  93. Close the new category map tab.
  94. Open the item page, click Edit Thumbnail and upload an image for the new category map.

    Repeat the steps in this section for each new category you want to add to your Citizen Problem Reporter app. In addition, you can view your new problem report category, or categories, in the Citizen Problem Reporter app.

  95. At the top of the site, click Content.
  96. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  97. Click the Citizen Problem Reporter folder.
  98. Under Item Type, click Apps.
  99. On the right side of the page, click the Citizen Problem Reporter app
  100. Open the item page, click View Application.
  101. If you haven’t shared the Citizen Problem Reporter app and all the maps referenced in the app publicly, choose Sign in with ArcGIS.

    You will see the new category or categories in the app.

  102. Click a new category, and then Submit Problem.
  103. Click the Type of Problem drop-down arrow to see the type of problem domains you added in ArcGIS Pro.

Once you finished reviewing the Citizen Problem Reporter app, close the tab.

Add problem category symbology

Add new problem category symbology to the Citizen Problem Reporter app.

  1. At the top of the site, click Content.
  2. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  3. Click the Citizen Problem Reporter folder.
  4. Under Item Type, click Layers.
  5. On the right side of the page, click the CitizenProblems layer.
  6. Open the item page, click the Open in Map Viewer drop-down arrow and choose Add to new map.
  7. On the layer, click Change Style change style.
  8. Click the Choose an attribute to show drop-down arrow and choose Category.

    A warning window appears, informing you the changes made to the symbology will affect the symbols displayed.

  9. Click Yes.
  10. Click Options.
  11. Click the Animal symbol.
  12. Click Shape.
  13. Click the drop-down arrow and choose the Government symbol set.

    All category symbols except for the new category you created are available in the Government symbol set.

  14. Browse to the Animal symbol and type 21 in the Symbol Size text box.
  15. Click OK.
  16. Repeat steps 11 through 15 to symbolize the remaining categories.
  17. Optionally, click the options button next to the symbol to drag and reorder the symbols.
  18. Click OK.
  19. Click Done.
  20. On the layer, click More Options more options, and click Save Layer.

    Repeat the steps in this section to update the CitizenProblems_dashboard feature layer view symbology.

  21. Click the Add button and choose Search for Layers.
  22. Type CitizenProblems_dashboard feature layer view in the search.
  23. Click the Add button add on the layer result.
  24. Click the Back button.
  25. Repeat steps 7 through 20 to apply symbols to the CitizenProblems_dashboard feature layer view.
    Tip:

    You can restore the original CitizenProblems symbols, as well as adding new category symbols, by adding a point to the map with every category and status combination.

  26. Click the Edit button.
  27. In the Add Features pane, click the Animal feature and add a point to the map.
  28. In the pop-up, click the Status drop-down arrow and choose Submitted, and then click Close.
  29. Repeat this step to add a point symbol for Animal Received, Animal In Progress, and Animal Completed because it already exists.
  30. Repeat step 27 and 28 to add the remaining category status to the map.
  31. Once all the category and status point combination have been added to the map, click the Close

    button.

  32. On the CitizenProblems layer, click Change Style change style.
  33. Click the Choose an attribute to show drop-down arrow and choose New Expression.
  34. Copy and paste the following expression in the text box:

    return $feature.category + " " + $feature.status.

  35. Click OK.
  36. Click Options.
  37. Click Ungroup to ungroup the remaining categories.
  38. Click the Animal Completed symbol.
  39. Click Shape.
  40. Click the drop-down and choose the Government symbol set.
  41. Choose the Animal Problems - Completed symbol and type 21 in the Symbol Size text box, click OK.
  42. Repeat step 37 through 40 for the remaining symbols.

    All category symbols except for the new category you created are available in the Government

    symbol set.

  43. Optionally, click the options button next to the symbol to drag and reorder the symbols.
  44. Click OK.
  45. Click Done.
  46. On the CitizenProblems layer, click More Options more options, and click Save Layer.
  47. Repeat steps 31 through 45 to apply the original and new category symbology to the CitizenProblems_dashboard feature layer view.
  48. Click the Edit button.
  49. In the map, click one of the points and scroll to the bottom of the pop-up and click Delete. Repeat this step to delete the remaining points.
  50. Click the Close button.

    Browse to the Citizen Problem Dashboard map and open it. You will see the new category, or categories, in the map legend.

  51. At the top of the site, click the Home drop-down arrow and choose Content.
  52. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  53. Click the Citizen Problem Reporter folder.
  54. Under Item Type, click Maps.
  55. On the right side of the page, click the Citizen Problem Manager map.
  56. Open the item page, click Open in Map Viewer.
  57. Click Yes, open the map.
  58. Click the Legend button and review the symbology.

Repeat steps 50 through 57 to review the symbology in the Citizen Problem Dashboard map.

Add problem category indicator

Add or remove a category indicator to the Citizen Problem Dashboard app.

  1. At the top of the site, click the Home drop-down arrow and choose Content.
  2. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  3. Click the Citizen Problem Reporter folder.
  4. Under Item Type, click Applications.
  5. On the right side of the page, click the Citizen Problem Dashboard app.
  6. Open the item page, click Edit Dashboard.

    On the Overview tab, not all the problem categories may apply to your community; you can add new category indicator or indicators to your dashboard.

  7. To add a new indicator, hover over the upper corner of the Animal Control and choose Duplicate Element duplicate element.
  8. Hover over the new indicator upper corner and choose Configure configure element.
  9. In the Value area, under Filter, click the Value drop-down arrow and choose a new category.
  10. Scroll down to the Reference area, under Filter, click the Value drop-down arrow and choose a new category.
  11. Click the Indicator tab, in the Style for value at or above reference area, type a new category in the Top Text text box.
  12. In the Style for value below reference area, type a new category in the Top Text text box.
  13. Click the General tab and type a new indicator name in the Name text box.
  14. Click Done.
  15. Hover over the new indicator in the upper corner and choose Drag item drag item.
  16. Press the Shift key on your keyboard while dragging the item to group as a column. Dock the indicator next to an existing indicator.
  17. Optionally, to delete an indicator, hover over the upper corner of the indicator you want to delete and choose Delete delete element.
  18. Click Save to save changes made to the dashboard and close the dashboard.

Modify problem types and responsible agencies

Citizen Problem Reporter includes problem types and responsible agencies for each problem category. In some cases, you may want to add a problem type to an existing category; or add a new problem type for any new problem category you created. In addition, you may want to modify the responsible agencies provided to more accurately reflect the name of the agency, department, or team that is responsible for responding to problem reports.

  1. Sign in to your ArcGIS organization.
  2. At the top of the site, click Content.
  3. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  4. Click the Citizen Problem Reporter folder.
  5. Under Item Type, click Layers.
  6. On the right side of the page, click the feature layer view you want to modify. For example, CitizenProblems_Animal.
  7. Open the item page, click the Data tab.
  8. Click Fields.
  9. Click the Type of Problem display name.

    Review the List of Values (Domain). Identify domains that are missing or need to be removed from the list.

    To modify problem types and responsible agencies using the Modify Domain tool, you will need install Solution Deployment Tool Add-In. If you already installed the add-in, you do not need to install it again.

    Caution:
    The current version of the ArcGIS Solutions Deployment add-In is 2020.7.28 and it is supported with ArcGIS Pro 2.4 through 2.6 (Basic, Standard, or Advanced). Ensure you have the most recent version of the add-in installed before proceeding.
  10. Download the ArcGIS Solutions Deployment ArcGIS Pro.zip file.
  11. Close before installing the add-in.
  12. Browse to the folder to which you downloaded the .zip file and extract its contents.
  13. Double-click SolutionDeployment.esriAddInX to run the installer.
  14. Click Install Add-In.
  15. After installation is complete, click OK.
  16. Open ArcGIS Pro. If necessary, sign in to the ArcGIS organization.
  17. On the Share tab, in the Deploy group, click ArcGIS Solutions.
  18. Double-click the Configure an ArcGIS Solution task.
  19. On the Configure an ArcGIS Solution step, click Next Step.
  20. On the Add Fields step, click Skip.
  21. On the Modify Domains step, click browse next to Input Layer or Table.

    The Input Layer or Table dialog box appears.

  22. Under Portal, click My Content.
  23. Browse to and double-click your feature layer view.
  24. Click Citizen Problems, and then click OK.
  25. In the Field parameter, click the drop-down arrow and choose Type of Problem.
  26. In the Domain section, optionally, to delete a domain, hover to the left of the domain you want to delete and click remove. Repeat this step until all the domains that do not apply to your organization have been removed.
  27. Optionally, to add a new domain, type a new category in the Code text box, and then type it in the Description text box. Repeat this step until all the domains that apply to your organization have been added.
  28. Optionally, to modify an existing domain or domains, click in the Code text box and type a new problem type, and click in the Description text box and type a new problem type.
  29. Once you have finished modifying domains, click Run.
  30. Click Finish.
  31. Close ArcGIS Pro and save your changes.
  32. In your browser, refresh the Type of Problem page.
  33. Click Fields.
  34. Click the Type of Problem display name.

    Under the List of Values (Domain), you will see the newly added or removed domain or domains.

    Repeat the steps in this section for each problem type you want to add, or modify, in your Citizen Problem Reporter app.

  35. At the top of the site, click Content.
  36. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  37. Click the Citizen Problem Reporter folder.
  38. Under Item Type, click Applications.
  39. On the right side of the page, click Citizen Problem Reporter.
  40. Open the item page, click View Application.
  41. Sign in to the app using Sign in with ArcGIS.
  42. Click the category for which you modified the problem types, and then click Submit Problem.
  43. In the Report a problem form, click the Type of Problem drop-down arrow and you will see the updated type of problem domains.

    Once you finished reviewing the Citizen Problem Reporter app, close the tab.

    Now, let’s review the list of responsible agencies and modify to meet the needs of your organization.

  44. Verify you are signed in to your ArcGIS organization.
  45. At the top of the site, click Content.
  46. On the My Content tab, under Folders, type Citizen Problem Reporter in the search box.
  47. Click the Citizen Problem Reporter folder.
  48. Under Item Type, click Layers.
  49. On the right side of the page, click the CitizenProblems feature layer.
  50. Open the item page, click the Data tab.
  51. Click Fields.
  52. Click the Assigned To display name.

    Review existing agencies and identify missing ones in the List of Values (Domain) section.

  53. Click Edit next to List of Values (Domain).
  54. Optionally, click Add.
  55. Type the new agency name in the Displayed Value and Stored Value text boxes.
  56. Repeat steps 11 and 12 to add the remaining missing agencies.
  57. Optionally, click Delete delete category to remove an agency.
  58. Optionally, click in the Label text box with an existing agency labeled and change the agency name. Repeat this step to change the Code as well.
  59. Optionally, drag the category to a new location in the list to reorder them.
  60. Click Save.

Revise satisfaction survey questions

The Citizen Problem Satisfaction Survey allows you to solicit feedback from the public that helps you improve your community’s customer service. The survey includes six questions. In some cases, you may want to add, or remove, questions from the survey.

  1. Install ArcGIS Survey123 Connect.
  2. Start ArcGIS Survey123 Connect and sign in to your ArcGIS organization.
  3. Click on Citizen Problem Satisfaction Survey to download the survey.
  4. Click on Citizen Problem Satisfaction Survey again to open the survey.
  5. On the left pane, click Open XLSForm Spreadsheet.
  6. In the Microsoft Excel spreadsheet, click on the choices tab. This tab comprises all the selectable options for survey questions.
  7. Click the survey tab. This tab comprises all the questions in the survey.
  8. Revise the survey to reflect your needs.
  9. Save the Microsoft Excel spreadsheet and preview your changes in ArcGIS Survey123 Connect.
  10. In ArcGIS Survey123 Connect, click Publish in the left pane to publish your changes.

Extend Citizen Problem Reporter

You can extend the Citizen Problem Reporter solution with a set of Python tools that can be used to generate report IDs, moderate reports, send email notifications, and enrich reports. These tools can be executed automatically via Task Scheduler and as new problem reports are submitted, or updated, the corresponding action will occur.

Add the ServiceFunctions toolbox

The ServiceFunctions toolbox contains tools for generating report IDs, moderating reports, sending email notifications, and enriching reports. Download and add the ServiceFunctions toolbox to your ArcGIS Pro project before configuring the appropriate tools.

  1. Download the ServiceFunctions toolbox.
  2. Browse to the ServiceSupport.zip file and unzip the file to the desired location from which you want to the tools to execute.
  3. Open ArcGIS Pro and create a new project.
  4. If necessary, sign in to the ArcGIS organization to which you deployed the Citizen Problem Reporter solution.
  5. If necessary, on the View tab, in the Windows group, click the Catalog pane.
  6. In the Catalog pane, right-click Toolboxes and choose Add Toolbox.

    The Add Toolbox dialog box appears.

  7. Browse to the ServiceReport folder and double-click the folder twice.
  8. Click the ServiceSupport.pyt Python toolbox, and then click OK.
  9. In the Catalog pane, expand Toolboxes and ServiceSupport.pyt.

    If you've never used the ServiceSupport toolbox before, run the Define Connection Settings tool to establish a connection between the toolbox and the CitizenProblem feature layer.

  10. In the Catalog pane, in the ServiceSupport.pyt Python toolbox, double-click the Define Connection Settings tool.
  11. In the ArcGIS Online organization or ArcGIS Enterprise portal URL parameter, click the drop- down arrow and choose a URL.
  12. In the Username parameter, type your user name for the organization you chose in step 11.
  13. In the Password parameter, type your password for the user name provided in the Username

    parameter.

  14. Click Run.

Generate report IDs

Many workflows require that a unique identifier be generated when a feature or record is created so it can be referenced and tracked in other workflows. The Generate IDs tool can be used to configure custom unique identifiers that will be applied to features at a regularly scheduled interval of your choosing. The tool only generates the configuration; an additional script (provided) must be run to update the features with incrementing identifier values.

  1. If necessary, in the Catalog pane, expand Toolboxes and ServiceSupport.pyt.
  2. Double-click the Generate ID’s tool.
  3. In the Layer parameter, click Browse.

    The Layer dialog box appears.

  4. Under Portal, click My Content.
  5. Double-click the Citizen Problem Reporter folder.
  6. Double-click the CitizenProblems feature layer.
  7. Click Citizen Problems, and then click OK.

    Expand General Identifier Settings. If the tool has not been run previously, start by specifying at least one identifier sequence.

  8. In the Sequence Name parameter, type a name for the sequence. This value will appear in the drop-down menu for selecting the sequence to assign to each layer.
  9. In the Pattern parameter, type a pattern to use for the sequence.

    This can be a combination of letters, number, and symbols. Mark the location for the incrementing value with a pair of curly braces {}. Python formatting will be applied to the pattern text, so string formatting syntax such as {0:03d} will pad the incrementing number section with zeros to a length of 3. For example, the pattern seq-{0:05d} would result in identifier values such as 'seq-0001', 'seq-002', 'seq-0010', and so on.

  10. In the Next Value parameter, type a value.

    When initially creating the sequence, this should be the first value want to use in the identifiers. After this point, this value will show the value to be used for the next identifier generated.

  11. In the Interval parameter, type a value.

    The interval by which the identifier values should increase between features. For example, an initial Next Value of 1 and an Interval of 10 would create identifiers with the incrementing values of 1, 11, 21, and so on.

    Keep in mind that deleting or changing these sequences will impact all the layers that are configured to use the edited sequences.

  12. If an identifier configuration already exists, a check box will appear that, when checked, will delete the existing identifier configuration for the selected layer. Alternatively, edit the identifier configuration and run the tool to overwrite the existing identifier configuration for the selected layer.
  13. Choose the sequence to use to generate the identifiers for each feature in the layer.
  14. Choose a text field to store the generated identifier.
  15. Click Run to write out the identifier configuration for the layer and any changes to the identifier sequences.
  16. To configure identifiers for another layer, rerun the tool with the settings for the next layer.

Keep in mind that the General Identifier Settings are not specific to any one layer—they apply to all layers configured using this tool.

Moderate reports

Public comment apps can occasionally generate feedback that should not be made publicly visible. Data entered into specific fields, such as personal information, can be hidden and protected using the pop-up configuration and layer security, but sometimes entire comments need to be hidden to avoid displaying sensitive or explicit content to other users.

Features can be hidden by updating the value of a field so that it no longer meets the requirements of a filter applied to that layer in the map. The Moderate Reports tool can be used to configure which layers and fields to scan for explicit or sensitive words and phrases, and how to update the feature so that it can be filtered from the map. Features and records can be scanned with a frequency of your choosing. The tool only generates the configuration; an additional script (provided) must be run to scan the features.

  1. In the Catalog pane, expand Toolboxes and ServiceSupport.pyt.
  2. Double-click the Moderate Reports tool.
  3. In the Layer parameter, click Browse.

    The Layer dialog box appears.

  4. Under Portal, click My Content.
  5. Double-click the Citizen Problem Reporter folder.
  6. Double-click the CitizenProblems feature layer.
  7. Click Citizen Problems, and then click OK.

    Expand General Moderation Settings. If the tool has not been run previously, start by specifying at least one moderation list.

  8. In the List Name parameter, type a name. This value will appear in the drop-down menu for selecting the moderation list use when scanning each layer.
  9. In the Filter Type parameter, click the drop-down arrow and choose to scan feature for words and phrases that exactly match the provided list of words and phrases.

    For example, when the filter type is EXACT, if the list contains the word 'duck', the script will update the specified field when the feature contains the word 'duck', but not when it contains the word 'duckling'. When the filter type is FUZZY, the script will update the feature when either 'duck' or 'duckling' are found.

  10. In the Words and Phrases parameter, type in a word or phrase. Provide a comma-separated list of words or phrases to scan for.

    Keep in mind that deleting or changing these lists will impact all the layers that are configured to use the edited sequences.

  11. If a moderation configuration already exists for the selected layer, choose to either edit an existing configuration by selecting the name of the moderation list used in the configuration, or choose the option to add a new moderation configuration.

    If you choose to edit an existing configuration, a check box will appear that, when checked, will delete the existing moderation configuration for the selected layer. Alternatively, edit the moderation configuration and run the tool to overwrite the existing moderation configuration for the selected layer and moderation list.

    To add a new moderation configuration, click the Add New button and continue with the following steps.

  12. Choose the moderation list to use to process the features in the selected layer.
  13. Choose the fields that will be scanned for content that matches the words and phrases in the selected moderation list.
  14. Optionally, provide a SQL query to only apply moderation to some features. If no query is provided, all features are processed.
  15. Choose a Field to Update when a match is found between the value of a field and the content of a moderation list. Use the Found Value parameter to specify the value that should be written to this field indicating a match.
  16. Click Run.

Send email notifications

Many workflows require that an email be sent when a feature or record is created and updated. The Send Emails tool can be used to configure emails that can be sent based on attribute values and a schedule of your choosing. The tool only generates the configuration; an additional script (provided) must be run to actually generate and send the emails.

  1. In the Catalog pane, expand Toolboxes and ServiceSupport.pyt.
  2. Double-click the Send Emails tool.
  3. In the Layer parameter, click Browse.

    The Layer dialog box appears.

  4. Under Portal, click My Content.
  5. Double-click the Citizen Problem Reporter folder.
  6. Double-click the CitizenProblems feature layer.
  7. Click Citizen Problems, and then click OK.

    All existing email settings for the layer will load and can be edited by updating the parameter values for each configuration. To delete a single email configuration, click the x next to the configuration. To delete all the email configurations for the layer, check the Delete all existing email configurations for this layer check box. Execute the tool to save your changes.

  8. In the Email Template parameter, click Browse to the ServiceSupport folder.
  9. Click one of the HTML templates for the body of the email, and then click OK.

    To add attributes from the triggering feature to the email, use unique string keys in the places where the values should appear in the HTML and reference these strings in the Find column of the Substitutions section of the General Email Settings along with the name of the field that contains the value to be substituted for the string key in the Replace column.

  10. Optionally, in the SQL Query parameter, provide a SQL query to only trigger an email from specific features.

    If no query is provided, all features will trigger emails every time the script is run, so you most likely want to use this query along with the Field to Update and Sent Value parameters to ensure that the same email isn't sent repeatedly for the same feature.

  11. In the Recipient Email Address parameter, type an email address of the recipient, or the name of a field in the layer that contains the address of the recipient.
  12. In the Email Subject parameter, type the subject for the email.

    Like the email body provided in the HTML document, this text can contain string keys that will be swapped out for attribute values based on the Find and Replace values defined in the Email Substitutions list in the General Email Settings section.

  13. In the Field to Update parameter, type Email. When the email has been sent for each feature. Use the Sent Value parameter to specify the value that should be written to this field indicating that the email has been sent. This field and value can be used in the previously described SQL query to prevent duplicate emails from being sent.
  14. Configure additional emails to be sent for the currently selected layer by clicking the Add New button. Emails will be sent in the order they are configured.

    Expand General Email Settings. If the tool has not been run previously, start by specifying the connection information for your SMTP server in the tool.

  15. In the SMTP Server parameter, type the URL of the SMTP server used for sending emails.
  16. In the SMTP Username parameter, type the user name required to authenticate to the SMTP server. This is not required if authenticating through a port.
  17. In the SMTP Password parameter, type the password required to authenticate to the SMTP server. This is not required if authenticating through a port.
  18. In the From Address parameter, type the address from which the emails should be sent.
  19. In the Reply Address parameter, type the address that should be used for any replies to the email message.
  20. Check or uncheck the Use TLS check box to enable or disable TLS.
  21. In the Email Substitutions section, type Find and Replace values. Swap out one piece of text for another in the outgoing email subject or body. Anywhere a value in the Find column is found in the email subject or body, it will be replaced with the corresponding value from the Replace column. If the value in the Replace column is a field in the layer, the Find value will be replaced with the value in that field in the triggering feature.

    For example, to add the ID of a feature from the REQUESTID field to the email subject, include a piece of text such as {ID} in the configured Email Subject, and add {ID} to the Find column and REQUESTID to the Replace column in this parameter. All specified substitutions are applied to all emails configured for all layers so, while the Find values can be any piece of text, it's suggested that you use something that is clearly variable-like and unlikely to appear elsewhere in the messages in a literal form.

    Keep in mind that deleting or changing these settings will impact all the emails for all the layers configured with this tool.

  22. Click Run.

Enrich reports

Reports made in public comment apps can be enriched with information about the report location. This information can then be used to efficiently direct the report to the correct person or agency responsible for its resolution.

The Enrich Reports tool can be used to configure which attribute values to calculate from a coincident or intersecting set of features at a regularly scheduled interval of your choosing. Note that the tool only generates the configuration; an additional script (provided) must be run to update the features based on intersecting features.

  1. In the Catalog pane, expand Toolboxes and ServiceSupport.pyt.
  2. Double-click the Enrich Reports tool.
  3. In the Layer parameter, click the browse button.

    The Layer dialog box appears.

  4. Under Portal, click My Content.
  5. Double-click the Citizen Problem Reporter folder.
  6. Double-click the CitizenProblems feature layer.
  7. Click Citizen Problems, and then click OK.
  8. In the Enrichment parameter, if an enrichment configuration already exists for the selected layer, choose to either edit an existing configuration by selecting the configuration from the drop-down list, or choose the option to add a new enrichment configuration.

    If you choose to edit an existing configuration, a check box will appear that, when checked, will delete the existing enrichment configuration for the selected layer. Alternatively, edit the configuration and run the tool to save the changes. To add a new enrichment configuration, click the Add New button and continue with the following steps.

  9. Choose the polygon feature layer that will provide the enriching attribute values by either choosing a layer from the active map, or by browsing to your hosted content and choosing a polygon feature layer.
  10. In the Source Field parameter, click the drop-down arrow and choose a field from the enrichment layer.
  11. In the Target Field parameter, click the drop-down arrow and choose a field from the CitizenProblem feature layer. The script will not process features that already have a value in the target field.
  12. In the Priority parameter, type a value. Specify the priority that should be given to this enrichment configuration relative to the other configurations for the CitizenProblem feature layer. Enrichment configurations for a layer that have a lower priority value will override enrichment configurations with a higher value.

    For example, a layer has two enrichment configurations that use the same target field, but one has a priority value of 1 and the other a priority of 2. If the configuration with priority 1 does not produce a valid value for the field, the field will be populated with the value produced from the configuration with priority 2.

  13. Click Run.

Set up Task Scheduler

Use Windows Task Scheduler to schedule the script to generate report IDs when a feature or record is created, moderate reports when feedback contains inappropriate language, send email notifications when a feature or record is created or updated, or enrich reports. All the tools in this toolbox share a common configuration file and execution script, so only one scheduled task is required to automate running all the associated processes.

  1. Open the Task Scheduler on the computer that is hosting the scripts.
  2. Click Action > Create Task and name your task.
  3. Click the Action tab and click New.
  4. Set Action to Start a Program.
  5. Browse to the location of your Python 3 installation (for example, <default directory>\C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\python.exe).
  6. In the Add arguments text box, type the name of the script (servicefunctions.py).
  7. In the Start in text box, type the path to the folder where your script is and click OK.
  8. Click the Trigger tab, click New, and set a schedule for your task.
  9. Click OK.

When the trigger occurs, the scripts will begin scanning the configured layers and, for each one, processing (in order) configurations for generating identifiers, enriching reports, moderating reports, and sending emails.