cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Webhook Actions: Sending Replies

Webhook Actions: Sending Replies

Whenever you receive a webhook call, Flow expects a 200 response code from your server. With each reply you can send back messages and information.

Example

{
    "verifyToken": "59a755e5-2581-4307-393f-630ad4983adf",
    "messages": [{
        "fallback": "Hi there",
        "responses": [{
            "type": "text",
            "payload": {
                "text": "Hi there"
            },
            "delay": 0
        }]
    }]
}

When your webhook runs on Node.js it's best to use flow-js-templates to send back reply messages. Any other technology stack is possible as long as you send back JSON formatted data.

Send later

Flow expects a Webhook call to return a reply within seconds. This can cause problems whenever you need to do a long running process.

Certain business processes may however take considerably longer. For those cases Flow provides a mechanism that allows you to reply with messages at a later point in time.

To do this there is a reply URL being provided with each webhook call. Use this URL to make a HTTP POST request.

The JSON payload you send is the same as when replying directly. Do not forget to include the verifyToken with each request.

// Node.js example using request
const opts = {
  method: 'POST',
  uri: replyUrl,
  body: {
    verifyToken,
    messages
  },
  json: true
}

request(opts)

Trigger events

Like sending messages you can also trigger events using Webhooks. It works the same as with sending messages except you specify which event to trigger

// Node.js example using request
const opts = {
  method: 'POST',
  uri: replyUrl,
  body: {
    verifyToken,
    events: [{
      name: 'MY_EVENT_NAME'
    }]
  },
  json: true
}

request(opts)

Sending params

With each reply (or immediate response) you can also manipulate data that is used by the NLP engine. This is done by sending along params with a reply message.

The following example sends a reply that contains the params destination_city and departure_city.

const replyBody = {
  verifyToken,
  params: {
    destination_city: [{
      value: 'AMS'
    }],
    departure_city: [{
      value: 'NYC'
    }]
  },
  events: [{
    name: 'WELCOME'
  }]
}

const opts = {
  method: 'POST',
  uri: replyUrl,
  body: replyBody,
  json: true
}

request(opts)

Further reading

Labels (1)

Webhook Actions: Sending Replies

Whenever you receive a webhook call, Flow expects a 200 response code from your server. With each reply you can send back messages and information.

Example

{
    "verifyToken": "59a755e5-2581-4307-393f-630ad4983adf",
    "messages": [{
        "fallback": "Hi there",
        "responses": [{
            "type": "text",
            "payload": {
                "text": "Hi there"
            },
            "delay": 0
        }]
    }]
}

When your webhook runs on Node.js it's best to use flow-js-templates to send back reply messages. Any other technology stack is possible as long as you send back JSON formatted data.

Send later

Flow expects a Webhook call to return a reply within seconds. This can cause problems whenever you need to do a long running process.

Certain business processes may however take considerably longer. For those cases Flow provides a mechanism that allows you to reply with messages at a later point in time.

To do this there is a reply URL being provided with each webhook call. Use this URL to make a HTTP POST request.

The JSON payload you send is the same as when replying directly. Do not forget to include the verifyToken with each request.

// Node.js example using request
const opts = {
  method: 'POST',
  uri: replyUrl,
  body: {
    verifyToken,
    messages
  },
  json: true
}

request(opts)

Trigger events

Like sending messages you can also trigger events using Webhooks. It works the same as with sending messages except you specify which event to trigger

// Node.js example using request
const opts = {
  method: 'POST',
  uri: replyUrl,
  body: {
    verifyToken,
    events: [{
      name: 'MY_EVENT_NAME'
    }]
  },
  json: true
}

request(opts)

Sending params

With each reply (or immediate response) you can also manipulate data that is used by the NLP engine. This is done by sending along params with a reply message.

The following example sends a reply that contains the params destination_city and departure_city.

const replyBody = {
  verifyToken,
  params: {
    destination_city: [{
      value: 'AMS'
    }],
    departure_city: [{
      value: 'NYC'
    }]
  },
  events: [{
    name: 'WELCOME'
  }]
}

const opts = {
  method: 'POST',
  uri: replyUrl,
  body: replyBody,
  json: true
}

request(opts)

Further reading

Labels (1)
Last Reviewed:
12-29-2021 01:22 PM

Webhook Actions: Sending Replies

Whenever you receive a webhook call, Flow expects a 200 response code from your server. With each reply you can send back messages and information.

Example

{
    "verifyToken": "59a755e5-2581-4307-393f-630ad4983adf",
    "messages": [{
        "fallback": "Hi there",
        "responses": [{
            "type": "text",
            "payload": {
                "text": "Hi there"
            },
            "delay": 0
        }]
    }]
}

When your webhook runs on Node.js it's best to use flow-js-templates to send back reply messages. Any other technology stack is possible as long as you send back JSON formatted data.

Send later

Flow expects a Webhook call to return a reply within seconds. This can cause problems whenever you need to do a long running process.

Certain business processes may however take considerably longer. For those cases Flow provides a mechanism that allows you to reply with messages at a later point in time.

To do this there is a reply URL being provided with each webhook call. Use this URL to make a HTTP POST request.

The JSON payload you send is the same as when replying directly. Do not forget to include the verifyToken with each request.

// Node.js example using request
const opts = {
  method: 'POST',
  uri: replyUrl,
  body: {
    verifyToken,
    messages
  },
  json: true
}

request(opts)

Trigger events

Like sending messages you can also trigger events using Webhooks. It works the same as with sending messages except you specify which event to trigger

// Node.js example using request
const opts = {
  method: 'POST',
  uri: replyUrl,
  body: {
    verifyToken,
    events: [{
      name: 'MY_EVENT_NAME'
    }]
  },
  json: true
}

request(opts)

Sending params

With each reply (or immediate response) you can also manipulate data that is used by the NLP engine. This is done by sending along params with a reply message.

The following example sends a reply that contains the params destination_city and departure_city.

const replyBody = {
  verifyToken,
  params: {
    destination_city: [{
      value: 'AMS'
    }],
    departure_city: [{
      value: 'NYC'
    }]
  },
  events: [{
    name: 'WELCOME'
  }]
}

const opts = {
  method: 'POST',
  uri: replyUrl,
  body: replyBody,
  json: true
}

request(opts)

Further reading

Labels (1)
Version history
Last update:
‎06-17-2021 05:19 AM
Updated by:
Contributors