---
title: Create a signal URL
source: https://docs.newrelic.com/docs/workflow-automation/setup-and-configure/actions-catalog/newrelic/notification/newrelic-notification-createsignalurl
---

The action identifier is `newrelic.notification.createSignalUrl`.

Generates a URL to send to a user via Microsoft Teams, Slack, or email so they can send a signal to a running workflow. This action powers the [human-in-the-loop pattern](https://docs.newrelic.com/docs/workflow-automation/workflow-examples/advanced/human-in-the-loop), where a workflow pauses at a wait step until a person clicks the URL to approve, deny, or otherwise route the run.

> #### ⚠️ IMPORTANT
>
> This action provides no benefit on its own. Always use this action with:
>
> -   A **notification action** (`newrelic.notification.*` or `slack.chat.postMessage`) that delivers the generated URL to a person.
> -   A **wait step** that defines at least one signal for the workflow run to wait on.
>
>     The `waitStepName` you provide as input must match the name of a valid wait step in the same workflow definition, and that wait step must contain at least one signal. Otherwise the workflow definition fails validation when you create it.

## Inputs

The following table describes all available input fields for this action.

| Input          | Type   | Description                                                                                                                                                                                                                                        | Example                                   |
| -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| `waitStepName` | String | **Required.** The name of the wait step in the workflow that contains the signals the run waits for. Must match a valid wait step name in the workflow definition, and that step must contain at least one signal. Maximum length: 100 characters. | `waitForApproval`                         |
| `selectors`    | List   | **Optional.** Selectors to extract specific fields from the output.                                                                                                                                                                                | `[{"name": "url", "expression": ".url"}]` |

## Outputs

The following table describes all output fields returned by this action.

| Output         | Type    | Example                                                                      |
| -------------- | ------- | ---------------------------------------------------------------------------- |
| `url`          | String  | `https://one.newrelic.com/launcher/workflow-automation.launcher?pane={pane}` |
| `success`      | Boolean | `true | false`                                                               |
| `errorMessage` | String  | `Unable to create signal URL`                                                |

## Example

| Workflow example                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ```yaml name: humanInTheLoopDemo steps:   - name: createApprovalUrls     type: action     action: newrelic.notification.createSignalUrl     version: 1     inputs:       waitStepName: waitForApproval   - name: newrelicNotificationMsTeam     type: action     action: newrelic.notification.sendMicrosoftTeams     version: 1     inputs:       destinationId: acc24dc2-d4fc-4eba-a7b4-b3ad0170f8aa       channel: "dev-channel"       teamName: "dev-team"       message: "To approve continue at: ${{ .steps.createApprovalUrls.outputs.url }}"   - name: waitForApproval     type: wait     seconds: 3900 # 1 hour 5 minutes     signals:       - name: "approve"         next: logApproval       - name: "deny"         next: logDenial     next: handleTimeout ``` |
