Incoming Webhooks

Incoming Webhooks

By adding the Incoming Webhook in the channel, you will be able to post messages from external sources into the a channel in WOZTELL.
Set up an Incoming Webhook
  1. In "Settings" -> "Channel", head to "Incoming Webhooks".

  2. Select "+ Create Webhook" to add a new webhook.

  1. Add a name for the webhook. Then "Save" the new webhook settings.


  1. Once the new webhook is saved, an URL will be generated.


Edit an Incoming Webhook

For the existing incoming webhook, you toggle this switch to activate/deactivate the webhook.

You can click "Delete" to remove the webhook.

Post Message to the Channel

To pass a message to the WOZTELL channel using the incoming webhook, you will need to use the POST method and format the message accordingly.

Generate the Signature

To POST the messaging using the incoming webhook, you would to generate a signature and add to headers:

"X-Woztell-Signature": signature

To generate the signature:

  const bodyStr = JSON.stringify(Body)
const signature = crypto.createHmac("sha256", channelSecret)
.update(bodyStr)
.digest("base64")


Request

The following is the reference for formulating the request.

Body

PropertyTypeDescriptionRequired
externalIdStringTo determine which member the incoming webhook logic will run onRequired
messageEventObjectRequired for bot logic, the messageEvent can be set up to work with however your trigger is set up.Required
metaObjectData that will be sent in the meta of the inbound and outbound webhook eventsOptional
messageEvent
PropertyTypeDescriptionRequired
typeStringAny type decided by the sender; if type is set to be a "Status" type (i.e. READSENTDELIVEREDFAILEDDELETED), it can be used to update the status of chats.Required
dataObjectData to be included in the messageEvent.Optional
data.messageIdStringIf the "Status" type is used, the messageId can be used to update specific message's status.Optional
data.watermarkStringalternative to messageId, this instead updated all message before the watermark time (uses epoch with ms number) with the status.Optional
fallbackStringNeed to be specified in order to enable all the component in styleOptional
styleObjectLook and view of the text message which is allowed to customizeOptional

style

PropertyTypeDescriptionRequired
borderlessBooleantrue or false; set to true to remove the border of the textOptional
backgroundColorStringBackground color of the message block. Accept hex codehex code shorthand, and default browser color stringOptional
textColorStringFont color of the text. Accept hex codehex code shorthand, and default browser color stringOptional
positionStringBOTUSER or CETNER; position of the block shown in the inbox threadOptional
markdownBooleantrue or false; set to true to allow formulating the text in markdownOptional

Example:

{
externalId: "852992919292",
messageEvent: {
type: "EVENT_TYPE",
data: {
invoiceId,
amount
},
"fallback": "**Hello there!**",
"style": {
"borderless": false,
"backgroundColor": "#fff",
"textColor": "#645",
"position": "BOT",
"markdown": true
},
data: {
messageId,
watermark
//This is the example data specifically for message status events.
}
}
}