Contact Us

Using webhooks with your CRM

You’ve been employed as a developer in a company that owns and manages a CRM software. The CRM was developed a long time back and is quite legacy in terms of its capabilities. It doesn’t support JSON, only XML and currently polls external servers to check for updates so that it can notify your clients. All of that is going to change now that you’re here. Today we'll talk about how you can use the MessageMedia Webhooks Management API to optimize and improve the existing system.   


Installing Webhooks Node.js SDK 

First things first, we’ll have to get rid of the not-so-pretty polling method. You’ll need a code editor such as Sublime Text or Atom. We’ll be using Node.js to develop our app, so you’ll need to make sure you’ve installed it on your machine as well. Now create an empty folder for your project, let’s name it “testApp”. Now, open up your command prompt, cd to the directory and run the following command to install the Webhooks SDK:

npm install messagemedia-webhooks-sdk


Creating a webhook 

We’re going to create a webhook that will notify you when a customer receives an SMS. To do this, create an index.js file inside that folder and open it up in your editor. Write down the following code. I’ve commented it, so you can understand what’s going on with each line. But wait a second, the CRM does not accept JSON. Don't worry, you can choose the format you’d like the payload to be sent back to you. You can pick XML, JSON or FORM_ENCODED. For this tutorial, we’ll go with XML. Let's try and understand what's going on in the code. We’ve created a webhook for the URL that will be triggered when an SMS is received. The event we've subscribed to is RECEIVED_SMS which will trigger the webhook when an SMS is received. You can add other events such as RECEIVED_MMS or FAILED_DR which will notify you when a message has failed to deliver. You can view the full list over here. The template attribute decides what will be returned via the response. For our example, the id, account_id, sent_time and received_time of the message will be sent back. Don’t forget to replace the placeholders with your actual credentials and then call the function at the end of your file using:


You can run the file using this command:

node index

  This is what a successful response body should look like.

 Updating a webhook 

What if you wanted to add additional attributes to the webhook? Maybe change the HTTP method of the webhook? Or even encode in a different format? Easy! To update a webhook, you’ll need the id of the webhook. You can retrieve this by looking at the response of the above example which should display the id of the webhook. For my webhook, it was 841bb8e8-48ab-4d02-8469-5ce6717ab452 And the code for this section is: We've changed a few attributes:

Add this line after the code to call the function:


  And a successful run of the script should result in something similar being shown in the console.<screenshot>

Deleting a webhook 

One of your customers decided to unsubscribe from receiving notifications. You can easily remove their webhook from the system. Similar to the updateWebhook method, you’ll need an id to be able to delete a webhook. Once you’ve got it, replace it with the WEBHOOK_ID placeholder in the file and you’re ready to go. Add this line after the code to call the function:


And a successful response should output null in the command line:


Well done - you're now ready to blow the execs' minds with your new found knowledge and skills on how to use the MessageMedia Webhooks Management API.   

Get the code 

All the code for this tutorial is available in the Webhooks Node.js Tutorial Github repo