AWS Contact Center

Best practices for Amazon Connect step-by-step guides

Traditionally, contact center agents required several disconnected applications to handle simple customer interactions. For example, this includes: contact control panels, customer profile information, knowledge articles, and wikis. Amazon Connect agent workspace offers a unified experience for contact center agents to access the tools they need to address customer calls effectively. Within the agent workspace, step-by-step guides helps speed up these interactions by creating guides that walk agents through tailored views focusing on what steps to take during a customer interaction. For instance, you can easily customize the agent workspace with guides that help agents fill out request forms for customers or provide disposition codes at the end of a contact. All of this is available natively in the Amazon Connect agent workspace and through Amazon Connect StreamsAPI.

There are several considerations for how to get the most out of using guides. When are step-by-step guides a suitable solution to my problem? How can you make guides reusable across several use-cases? And, what are the security and cost considerations with guides? In this blog, learn about some best practices for working with step-by-step guides. We’ll look at each from both a conceptual and practical level to help answer these types of questions.

Note: If you’re just looking for examples to get started with step-by-step guides, check out the Step-by-step guides module library on GitHub!

Image of step-by-step guides in the agent workspace

Conceptual framework for step-by-step guides

To build effectively, you need to have a clear conceptual framework for thinking about step-by-step guides. At its core, step-by-step guides gives contact center administrators the ability to create simple user interfaces (UIs) using predefined views. Think of views as visual containers for helping agents through a process. Some available views include the form view, for creating forms, and the cards view, for displaying content cards with buttons to trigger actions. This is useful for creating guides that help agents in common scenarios. For example creating new accounts, working on refunds, troubleshooting issues and so on. Guides can also do more because they are implemented within a flow. In Amazon Connect, flows define how an incoming contact is handled in your contact center, including how it is routed, what prompts the caller receives, and now what step-by-step guide is displayed to the agent when they accept the call. The full power of the flow designer is behind you when building step-by-step guides.

For example, enabling step-by-step guides to invoke an AWS Lambda function in a flow – provides agents the ability to kick off automated back-end processes without leaving the agent workspace. Let’s say a contact center agent needs to create a new entry in a customer relationship management system (CRM) during a call. Previously, this meant leaving the agent workspace and manually entering the contact information within the CRM. This approach requires the agent to navigate multiple windows which leaves room for copying errors and increases agent cognitive load. Step-by-step guides offers a different approach.

Using the form view you can create a step-by-step guide for agents to create new CRM entries within the existing agent workspace. Contact attributes are used to pre-populate the form with relevant information, like the customer’s name and phone number. When the agent submits the form, an AWS Lambda function could be invoked to create the actual CRM record using the values provided by the agent. There are several benefits to this:

  • Agents do not need to navigate multiple windows. Everything is in the agent’s workspace and consistently styled.
  • The number of copying errors are reduced because form values can be pre-populated using features like contact attributes and Amazon Connect Customer Profiles.
  • Backend systems are abstracted away from the agent experience. Agents will not have to worry about how their CRM system works and changes over time. Step-by-step guides ensures a consistent agent experience and integrating with the CRM system is offloaded to a Lambda function.
  • The potential for security issues is decreased because agents are no longer interacting directly with a backend system. Step-by-step guides allows the agent to record new entries into the CRM without explicitly giving them access to the CRM itself by using a Lambda function as a go-between. This reduces your contact center’s overall attack surface.

As the name suggests you can use step-by-step guides to walk agents through common scenarios, but there is also the opportunity for so much more. Combined with AWS Lambda functions, step-by-step guides lets us create simple UIs for an agent to trigger events. Sometimes these UIs may just display relevant information to the agent or provide scripting. However, they can just as easily provide agents with a single pane of glass for interacting with multiple applications and starting complex automated processes.

Building reusable and extensible guides

Now that you understand guides conceptually, you need to consider how to build them effectively for providing business value. It is easy to get overwhelmed when first starting out with step-by-step guides if you try to tackle use cases that require many steps for the agent to complete. It is totally possible to dive right into solving a specific use case. However, taking time to build out smaller guides that are reusable and extensible will enable you to iterate faster and better maintain older guides. The terms reusability and extensibility come from the software engineering field but are just as applicable to how you create step-by-step guides.

  • Reusability: Rather than making one big guide, you should split your guides into smaller, self-contained modules that can be connected and reused.
  • Extensibility: You will want your guides to be easy to update and edit in the future. Can you design guides so only a small tweak is required to fulfill another use case? How would the guide change if you need to introduce another step or request additional information?

Let’s say you want your agents to send emails based on a template that notifies a customer about a submitted refund request. The email structure is always the same, but specific values such as order number, refund amount, and payment account vary with each email. The agent must provide these directly. There are several ways you can make a guide to address this use case:

  1. You could have a new flow with a guide for each email template.
  2. You could make one large guide with different paths depending on the specific email that needs to be sent.

Both are valid approaches. However, adopting a reusable and extensible approach will allow for smoother development and future maintenance. The following steps can help you adopt this mindset:

  1. Split the problem into modules based on each step that must be taken.
    • The agent needs to choose the “refund email” template from a list of templates.
    • The agent must provide details for the values in the email template that are unique to the customer.
    • After the agent provides the data, an email template must be filled out and sent.
  2. For each module, consider what information and functionality is needed.
    • Your first module requires a list of possible email templates and the ability to select one of them.
    • Your second module requires you to know what email template was selected and the various fields required to complete that template. The agent needs the ability to input values for each of these fields.
    • Your third module requires you to know the email template and agent provided values. The agent needs the ability to trigger the creation of an email from a template and to receive confirmation once the email was sent.
  3. For each module, consider what is constant and what might change in the future.
    • The list of email templates may change, but the agent always needs to choose from the list.
    • The fields required in an email template may change, but the agent always needs to input these values or double check pre-populated values.
    • The backend mechanism for sending this email may change, but the agent always needs to trigger the email creation and receive confirmation.
  4. Build out each module in isolation of the others, accounting for the potential for future development.
    • Your first module could use the actions section of the Detail view to create a button for each email template. Extending this in the future only requires you to add another button.
    • Your second module could use a Form view to get agent input. At first this could be a show view block for each email template but as complexity increases you could switch to using an AWS Lambda function to create the JSON object and pass it dynamically to a single show view block. Relying on an AWS Lambda function increases flexibility for building your form view, making reusing and extending easier. Using a single show view block keeps our flows easy to read.
    • Our third module requires calling an AWS Lambda function and displaying a Confirmation view once the email is sent. You can pass the output data of the Form view to the Lambda function. The function would then generate and send the email. This approach is extensible because it allows additional processing via a Lambda function if needed. It is reusable because it is not unique to any one email template.

Once each module is made, simply connect them in a final flow, providing any filler logic such as checking what action was selected and handling the Lambda functions response appropriately.

Focusing on reusability and extensibility over time gives you a set of modules to bootstrap future step-by-step guides, minimizing duplicate work. For instance, you can easily reuse these modules to send text notifications to customers. All that needs to change is the type of input collected in the form and the Lambda function for sending the notification. You could also reuse these modules to help agents perform backend tasks like recording an entry to a database.

If you want some pre-built examples of reusable and extensible modules for step-by-step guides, check out the public modules library. We also recommend learning more about Flow Modules to understand how to make your guides even more reusable with modularity.

Developing quickly

In the design phase, the focus is on designing step-by-step guides that are reusable and extensible. Actually creating the guides and flow presents its own considerations. Specifically, you want to leverage developer tools and pre-existing guides to create new ones rapidly.

Perhaps the toughest part of creating a step-by-step guide is ensuring that the JSON formatting is correct. Because these guides can contain large, complex JSON objects, you need to be extra meticulous when writing them to avoid syntax errors. Two key ways to do this are:

  1. Do not start from scratch. Copy pre-existing JSON object and use the new Views tab under Flows to bootstrap your guides.
  2. Use a code editor with JSON formatting to troubleshoot and finalize your views.

Image of new view tab for Amazon Connect step-by-step guide

Besides the show view block, there is a new tab in the flows section called Views that helps visually mock-up your guides. To use the Views tab:

  1. In your Amazon Connect instance click Routing > Flows
  2. On the Flows page click the Views tab on the top. It will be next to the Modules tab.
  3. Inside this tab you will see examples of all the available views
  4. Click one of the example views.
  5. The view will render it on the left and a friendly interface to update the underlying JSON definition on the right.

Using the Views tab will help you avoid difficult to find formatting errors. It will also familiarize you with the different options available for customizing views. Once you have finished visually designing your view, you can copy the raw JSON data into your Show View block. To do this:

  1. Click the Raw Data tab on the right side of the page.
  2. Copy the underlying JSON definitions.
  3. Paste each JSON definition into their corresponding parameter within a Show View block.

While the Views tab is the perfect place to start, as you get more comfortable with the JSON definitions, you might find it faster to edit them directly by stringing together previous snippets. Here, it is recommended you use a code editor to format the JSON in a human-friendly way. Many modern code editors come with built in support for JSON syntax highlighting and auto-formatting. Copying the raw data from the Views tab into a code editor and auto-formatting quickly makes the JSON readable, allowing you to get a better sense of the structure and extend your views.

Last, remember underneath it all step-by-step guides are just another part of a flow. This means you can copy and paste them like every other flow block. Working with the principle of reusability, take a moment before building your step-by-step guide to see if you can reuse a previous one. If the changes are small enough, you can likely copy the entire block from one flow to another and make any minor adjustments within the flow editor.

Securing guides

Step-by-step guides let agents interact with backend systems via AWS Lambda functions in the flow. While this can improve your agent’s productivity, it is important to consider the security implications to ensure your contact center functions smoothly and customer data is protected.

The two main things to consider here are:

  1. Always follow the principle of least privilege when designing your step-by-step guides and the underlying AWS Lambda functions that get triggered.
  2. Always validate client provided data.

Following the principle of least privilege ensures you do not accidentally give users unnecessary access to data. Amazon Connect handles broad access control to step-by-step guides using security profiles. However, you cannot limit access to specific step-by-step guides with security profiles. Because of this, special precaution should be taken to ensure that only the agents you want accessing a guide can do so. This is done by validating how your step-by-step guides are called within your flows. Generally, you set the DefaultFlowForAgentUI and DisconnectFlowForAgentUI attributes in a handler flow before transferring the call to another queue. Any agent in the queue that receives the call might use the guide so carefully decide how calls with associated step-by-step guides are routed.

In addition to following least privilege access to agents, you want to practice least privilege on the backend with any data pulls or Lambda functions. Always make sure that the IAM role associated with your Lambda functions only give permission to perform the necessary actions and nothing else. To learn more about designing secure policy roles for your functions check out the AWS Lambda IAM policy best practices.

Lastly, step-by-step guides lets agents provide form inputs that are passed on to a Lambda function. In general, you always want to validate the input you receive before processing it in a backend system. This helps mitigate unexpected behavior because of poorly formed or malicious input. In turn, this reduces the potential for security issues and our Lambda functions crashing. To learn more check out this blog post on AWS Lambda event validation.

Monitoring Guides

It is unlikely that you will build the perfect guide with the very first iteration. This is okay because guides are easy to update within the flow editor. To improve your guides over time you can monitor how agents are interacting with them, when they are getting invoked, and other log information.

Similar to regular contacts, whenever you invoke a guide, Amazon Connect creates a flow log .Flow logs provide detailed log information about your guide and how agents are interacting with it. For instance, let’s say you have a form view that agents can use to submit data to a backend application. When testing out your guide you may have a manual override button that agents could click instead. This button would return the agent to the previous view with the assumption that agents entered the data manually in the backend application. By monitoring the flow log, you get a sense of how many agents are using your guide and how many are choosing to manually enter information. Based on this, you may need to adjust the guide to make it more useful to agents.

Of course, manually monitoring log data is not feasible within a modern contact center. Rather, you can take advantage of Amazon Cloudwatch metrics and alarms to automate this process. By creating a custom Amazon Cloudwatch metric you can get a sense of how often the manual override button is being pressed over time. If you only want agents using the manual override button in an emergency you could also use an Amazon Cloudwatch alarm to trigger a notification whenever the button is pressed.

Spend some time exploring the different log data available to you with step-by-step guides. As your usage of step-by-step guides scales these logs can become invaluable to ensure your guides are actually helping agents and being used as intended.

Cost optimization

Similar to Amazon Connect itself, step-by-step guides has pay-as-you-go pricing that occurs every time a show view block is invoked. To optimize costs, you should consider how you are presenting information in a view.

For example, think of a simple use case where you want to allow agents to view information about the current contact. One way to do this is to present a details view with different action buttons associated with the information needed. When the button is clicked, a new show view block would be invoked with another details view displaying the specific information. When the agent is done they could navigate back to the original show view block to click another button. While this flow definitely works, it requires invoking three show view blocks.

The above flow can be optimized to save costs. You could present the agent with all the information needed using a cards view. Whenever an agent clicks a card, it will drop down and display the relevant information. Using the card view instead of the details view gives the agent access to all the information they need with a single show view block invocation. All while still providing a pleasant visual experience.

Think about the flow of your guides before deploying them. Consider how you want to balance agent experience with cost. It is totally possible to just present the agent with a landing page show view block for all your step-by-step guides. However, taking some time before invoking the show view block to process and present the most applicable guide to your agent will speed up their ability to address customer issues and save money by limiting invocations.

Learn more about pricing for step-by-step guides by visiting the pricing page.


Step-by-step guides for Amazon Connect provides clean user interfaces for agents to use during contacts. This blog post discussed several best practices to ensure you get the most out of this feature. Remember to always consider how to make your guides reusable, extensible, secure, and cost effective.

To get started with step-by-step guides check out the official documentation and the modules library on GitHub.

Join us for AWS Contact Center Day, a free virtual event where you’ll learn about the future of customer service, how machine learning can optimize customer and agent experiences—and more. Register now »