Add custom event

Custom events can be used to add metadata to your conversation. There are some restrictions when using custom events:

  • Event type must begin with custom:
  • Event type must not exceed 100 characters
  • Event type must contain ONLY alphanumeric, - and _ characters
  • Event body must not exceed 4096 bytes

Example

Ensure the following variables are set to your required values using any convenient method:

Key Description
CONVERSATION_ID The unique ID of the Conversation.
MEMBER_ID The unique ID of the Member (optional).

Prerequisites

Use your existing application

You will need to use an existing Application that contains a Conversation in order to be able to add a custom event. See the Create Conversation code snippet for information on how to create an Application and some sample Conversations.

Write the code

Add the following to create-custom-event.sh:

Copy to Clipboard
# `from` is only required if you're using a JWT with a `sub` claim
curl -X "POST" "https://api.nexmo.com/beta/conversations/$CONVERSATION_ID/events" \
     -H 'Authorization: Bearer '$JWT\
     -H 'Content-Type: application/json' \
     -d $'{
  "type": "custom:YOUR_EVENT_NAME",
  "from": "'$MEMBER_ID'",
  "body": {
    "your": "data"
  }
}'

View full source

Run your code

Save this file to your machine and run it:

sh create-custom-event.sh

Prerequisites

Use your existing application

You will need to use an existing Application that contains a Conversation in order to be able to add a custom event. See the Create Conversation code snippet for information on how to create an Application and some sample Conversations.

Install dependencies

npm install nexmo@beta
Initialize your dependencies

Create a file named create-custom-event.js and add the following code:

Copy to Clipboard
const Nexmo = require('nexmo')

const nexmo = new Nexmo({
  apiKey: NEXMO_API_KEY,
  apiSecret: NEXMO_API_SECRET,
  applicationId: NEXMO_APPLICATION_ID,
  privateKey: NEXMO_APPLICATION_PRIVATE_KEY_PATH
})

View full source

Write the code

Add the following to create-custom-event.js:

Copy to Clipboard
nexmo.conversations.events.create(CONVERSATION_ID, {
    "type": `custom:${YOUR_EVENT_NAME}`,
    "from": MEMBER_ID,
    "body": {
      "your": "data"
    }
  },
  (error, result) => {
    if (error) {
      console.error(error);
    } else {
      console.log(result);
    }
  });

View full source

Run your code

Save this file to your machine and run it:

node create-custom-event.js

Try it out

When you run the code you'll see a custom event in your event list