Implementation
Easily set up your lifecycle hook's external webhook in your NLX workspace
Last updated
Easily set up your lifecycle hook's external webhook in your NLX workspace
Last updated
A lifecycle hook's Implementation is where you'll set up a static response or external webhook/API URL for your lifecycle hook. When a conversation with your conversational AI application starts, ends, escalates, or streams state modifications and a lifecycle hook is attached at one of those stages, the webhook will trigger the specified URL and run the process required.
Need more context? See Application lifecycle
External mode is used for integrating with a URL that triggers your lifecycle hook:
Set implementation toggle to External
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 setup
Headers: expand section > Click + Add header > Enter the Name and Value to be sent with the request. Useful for custom headers such as an API key, content type, content length, etc.
Now that your implementation setup is complete, attach your lifecycle hook to an application under the application's Lifecycle tab.
Static mode is useful for creating a static response when building demos or for early testing.
Set implementation toggle to Static
Enter your response in JSON structure
Click Save
Now that your implementation setup is complete, attach your lifecycle hook to an application under the application's Lifecycle tab.
HTTP POST payloads that are delivered to your lifecycle hook's configured URL endpoint will contain a few headers, including:
Content-Type
application/json
The only content type currently supported is JSON
nlx-correlation-id
<uuid>
A unique identifier that can be used for debugging
nlx-lifecycle-hook-version
v1
The version associated with the lifecycle hook configuration
The body of the POST request your webhook will receive may contain:
eventType
string
The event type determined by the Bot Lifecycle configuration. Possible values: conversationStart
, conversationEnd
, escalation
, messageReceived
, stateModification
All
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
All
context.botId
string
A unique identifier of the application associated with this lifecycle hook that has been triggered
All
context.channelType
string
A human friendly label indicating the channel type in use such as API
, AmazonChime
or Genesys
All
context.channelId
string
A unique identifier of the channel associated with the appplication
All
context.conversationId
string
A unique identifier of the conversation that triggered this lifecycle hook
All
context.lastUtterance
string
The last user utterance captured before the lifecycle hook has triggered
All, except conversationStart
and stateModification
context.intentId
string
The intent ID from where the lifecycle hook has triggered
All, except conversationStart
and stateModification
context.userId
string
A user identifier such as a E.164 format phone number, UUID or other formats depending on the channel type
All
context.<attributeName>
any
A set value of a custom context attribute
All
context.request
object
The request message information
messageReceived
context.request.text
string
The user utterance
messageReceived
context.request.intentId
string
The intent ID if the request was structured, void of a user utterance
messageReceived
events
array of objects
An array of objects, where each item represents a state modification
stateModification
event.name
string
The name of the data request property being modified, such as Profile.FirstName
stateModification
event.before
object
The whole data request object before the state modifications
stateModification
event.after
object
The whole data request object after the state modifications
stateModification
event.timestamp
string
The timestamp in milliseconds indicating when the state modification happened
stateModification
The response body of your lifecycle hook can optionally include the following properties:
context
object
A map of key value pairs that you would like to be set as context attributes
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
For example, the response body of a lifecycle hook for a conversationStart
event type may look like this:
Lifecycle hooks have a response timeout set to 3 seconds. Currently this value cannot be adjusted.