Set up custom Playbooks for Portals

  • Release version: Zurich
  • Updated July 31, 2025
  • 3 minutes to read
  • Create custom Playbooks for Portals to provide end users with the playbook experience on your service portal.

    Overview of Playbooks

    Playbooks guide users through complex processes and enable them to save their progress and resume their work when convenient. They can also get the information that they need for each stage of the flow and its associated activities with the Customer Service Management (CSM) playbooks on service portals.

    You can activate Playbooks for Portals if you have the admin role. The base system is delivered in an inactive state. You must activate it in the Playbooks (PAD) for the user to see it.

    Plugins required:
    • Playbooks for Customer Service Management: sn_csm_playbook
    • Playbook Experience: sn_playbook_exp
    • Case Playbook for Onboarding: sn_onboarding (required if you need the predefined playbook experience)
    • Case Playbook for Product Support: sn_product (required if you want to use the product case playbook and record generator)

    Plugins are available from the ServiceNow® Store. For more information, see Playbook plugins.

    Summary of steps for setting up Playbooks for Portals

    You can set up Playbooks for Portals using the following high level steps.

    1. Define your process using Workflow Studio. See Create a playbook for more information.
    2. Activate the record generator. For more information, see Activate the record generator.
    3. Set up ACLs (Access Control Lists) to provide the appropriate read, write, and create permissions for users. See Explicit Roles in CSM for more information.
      Note:
      Add write and create roles with a condition based on "State=draft" so that users can only edit the fields in the draft state.
    4. Create a Playbook Content Item so that users can navigate to the Playbook experience. See Create a Playbook Content Item for more information.
    5. Set up a redirection widget so that users are redirected to the playbook intake experience once the state changes from "draft" to "new." See Set up a redirection widget for more information.

    Create a Playbook Content Item

    Create a content item of Playbook type on portal so that users can navigate to the playbook experience. These content items are specifically configured to enable the playbook experience on portals.

    Before you begin

    Role required: admin

    Procedure

    1. Navigate to All > Playbook Content Items > New.
      Figure 1. Content item form
      content item form showing all fields
    2. In the form, fill out the fields.
      Table 1. Relevant Content Item form fields
      Field Definition
      Name The name of the content item you are creating
      Table Map your table here
      Record ID Always enter -1
      Playbook experience The name of your playbook experience
      Playbook experience record generator Map your record generator
      Portal page csm_intake standard with the Playbooks for Customer Service Management application.
      Note:
      You can clone the csm_intake page and modify it per your requirements.
      Title Title that appears at the top of the page.
    3. Select Submit.

    What to do next

    After completing this step, you can navigate to the portal where the catalog is mapped and execute the content item. The playbook intake experience opens, with the record generator mapped as the first activity.

    Set up a redirection widget

    You can set up a widget to reroute the user to the csm_ticket page once the record state changes from draft to new, indicating that the user has completed the intake process.

    Before you begin

    Role required: admin

    Procedure

    1. Navigate to All > Service Portal > Widgets.
    2. Open the widget CSM Intake Redirect.
    3. Add the following code the in the client controller section.
      Note:
      As a best practice, clone the CSM Intake Redirect widget to modify and replace it on the csm_intake page, or on your custom page.
      spUtil.recordWatch($scope, 'sn_customerservice_case', c.data.filter, function(response) { //replace sn_customerservice_case with your table.
      
              if (response.data.operation == "update" && response.data.record.state && response.data.record.state.value != "0") { //checking if the state is not draft
      
                  if (($window.location.href).indexOf('?id=csm_ticket&') == -1);
                  $window.location = "?id=csm_ticket&table=" + c.data.table + "&sys_id=" + c.data.sys_id;
              }
          });
    4. Select Update.