Implementation

Easily set up your action's external webhook in your NLX workspace

What's the Implementation of an Action?

An Action's Implementation is where you'll set up a static response or external integration for your Action. When a conversation is brought to an Action node in a flow, the API call for that Action will trigger by sending a POST request to a specified URL and run the process required.

Need more context? See Action node

Implementation tab of an Action

External implementation

External mode is used for integrating with a URL that triggers your Action:

  • Set implementation toggle to External

  • Select the appropriate HTTP method from the Method dropdown (usually POST for an Action)

  • Expand endpoint section > Enter the URL

  • Use NLX's AWS CloudFormation template provided within the Instructions section

  • Click Save

Whether you have sensitive data or frequently enter the same URL string, try setting up a Secret in your workspace for enhanced security and efficiency.

Optional:

  • Headers: expand section > Click + Add header > Enter the Name and static Value to be sent with the request. Useful for custom headers such as an API key, content type, content length, etc.

  • Dynamic: Enabling the toggle allows you to view the header and provide it a custom value on the Action node's side panel when triggering the action in an intent flow

  • Development endpoint: For situations where multiple URLs are used by the environment


Static response

Static mode is useful for creating a static payload when building demos or for early testing. Switch the implementation's toggle to Static to begin:

  • Enter your response in JSON structure

  • Click Save


API spec

HTTP payloads that are delivered to your Action's configured URL endpoint contain several headers, including:

Header
Value
Description

Content-Type

application/json

The only content type currently supported is JSON

nlx-webhook-version

v3

The version associated with the action configuration

x-nlx-botId

<uuid>

A unique identifier of an application

x-nlx-channelId

<uuid>

A unique identifier of the channel associated with the application

x-nlx-channelType

string

A human friendly label indicating the channel type in use such as API, AmazonChime or Genesys

x-nlx-conversationId

<uuid>

A unique identifier of the conversation that triggered this action

x-nlx-correlationId

<uuid>

A unique identifier that can be used for debugging

x-nlx-deploymentKey

<uuid>

A unique identifier of the deployment associated with the application

x-nlx-intentId

string

The intent ID from where the action has triggered

x-nlx-languageCode

string

The application's language code used in the current conversation

x-nlx-userId

string

A user identifier such as a E.164 format phone number, UUID or other formats depending on the channel type

The body of the request your webhook will receive may contain the conversation context (nlx_context) if the send context option is enabled in the action settings. It will always include the properties defined in the Action's Request model.

Name
Type
Description

nlx_context

object

The conversation context containing essential values such as the conversationId and any context variables that have been set up to this point in the conversation.

nlx_context.botId

string

A unique identifier of an application

nlx_context.channelType

string

A human friendly label indicating the channel type in use such as API, AmazonChime or Genesys

nlx_context.channelId

string

A unique identifier of the channel associated with the application

nlx_context.conversationId

string

A unique identifier of the conversation that triggered this action

nlx_context.languageCode

string

The application's language code used in the current conversation

nlx_context.<attributeName>

string, number or boolean

A set value of a custom context attribute. The attribute name can be an alphanumeric string with dashes and underscores

<propertyName>

any

One or more set values corresponding to the schema defined in the action's request model

The response body of your Action can optionally include the following properties:

Name
Type
Description

context

object

A map of key value pairs that you would like to be set as context variables

context.<attributeName>

string, number, or Boolean

A set value of a context variable. The name can be an alphanumeric string with dashes and underscores

For example, the response body of an Action may look like this:

{
    "context": {
        "SmsSent": true
    }
}

Last updated