
I created separate blog posts for my notes from each session.
Day 1 (Wednesday, June 17, 2020)
09:00am – Welcome & Kick-off – Ajoy & Mark
11:30am – Acumatica Mobile Framework – Cesar Betances
12:00pm – Push Notifications & Webhooks – Marco Villaseñor (this post)
01:50pm – Acumatica Workflow Engine – Stan Lesin
Day 2 (Thursday, June 18, 2020)
12:30pm – Acumatica Developer Roadmap – Mike C. & Andrew
Now for Push Notifications and Web Hooks with Marco #CloudxRPSummit pic.twitter.com/DMYEOTtqPm
— Tim Rodman (@TimRodman) June 17, 2020
Webhooks and Push Notifications working together #CloudxRPSummit pic.twitter.com/eOXPfxZW0B
— Tim Rodman (@TimRodman) June 17, 2020
Why Marco is excited about Webhooks #CloudxRPSummit pic.twitter.com/EkK2IvmZSJ
— Tim Rodman (@TimRodman) June 17, 2020
Webhooks are new and improved in #Acumatica 2020 R1 #CloudxRPSummit pic.twitter.com/sK5pvuLCQN
— Tim Rodman (@TimRodman) June 17, 2020
Webhooks allow an external application to tell Acumatica when something happens rather than having to repeatedly ask on a recurring schedule. #CloudxRPSummit
— Tim Rodman (@TimRodman) June 17, 2020
Push Notifications send data in JSON format, allowing you to notify an external application when something happens in Acumatica #CloudxRPSummit pic.twitter.com/f6hQAiMgU7
— Tim Rodman (@TimRodman) June 17, 2020
Now time for some fun #CloudxRPSummit pic.twitter.com/2Tzs4g9wKt
— Tim Rodman (@TimRodman) June 17, 2020
Our example is to sync Non-Stock Items between Acumatica Instances #CloudxRPSummit pic.twitter.com/t9UcC7RJJW
— Tim Rodman (@TimRodman) June 17, 2020
Nice visual way of showing the two Acumatica Instances #CloudxRPSummit pic.twitter.com/ReHzQYsKc4
— Tim Rodman (@TimRodman) June 17, 2020
Before we do anything, looks like this #CloudxRPSummit pic.twitter.com/faGHMG05eL
— Tim Rodman (@TimRodman) June 17, 2020
Adding new item on left. Then it appears on the right. #CloudxRPSummit pic.twitter.com/rIVbwjqg2Y
— Tim Rodman (@TimRodman) June 17, 2020
How we push data on the left which uses a Generic Inquiry #CloudxRPSummit pic.twitter.com/9ico08WIXQ
— Tim Rodman (@TimRodman) June 17, 2020
How we receive something on the right #CloudxRPSummit pic.twitter.com/row9GoOvwM
— Tim Rodman (@TimRodman) June 17, 2020
Now looking at how to create a Webhook in Acumatica #CloudxRPSummit pic.twitter.com/axK1noJAFa
— Tim Rodman (@TimRodman) June 17, 2020
Seems like the Push Notification is easier to create than the Webhook. The Webhook has to understand the structure of the data that it's going to receive. #CloudxRPSummit pic.twitter.com/Ck1iOJJHDl
— Tim Rodman (@TimRodman) June 17, 2020
Here's an example of a Push Notification "payload" #CloudxRPSummit pic.twitter.com/qxPKfZoAhw
— Tim Rodman (@TimRodman) June 17, 2020
The ID and Timestamp are an important part of why this structure is stable. #CloudxRPSummit pic.twitter.com/LT4Of0osnt
— Tim Rodman (@TimRodman) June 17, 2020
Now for the Webhook, defined with some C# code in a Customization Project that implements the IWebhookHandler interface. This is what reads the information and executes the business logic that we want to see. #CloudxRPSummit pic.twitter.com/0wiwmqTbU7
— Tim Rodman (@TimRodman) June 17, 2020
Here's a more detailed Webhook example #CloudxRPSummit pic.twitter.com/3XVWobVftZ
— Tim Rodman (@TimRodman) June 17, 2020
When you register the Webhook, Acumatica generates a URL that any subscriber can send data to. Because of that, it's recommended to implement some kind of authorization like this. Here's a simple example that looks for "secretValue" in the payload. #CloudxRPSummit pic.twitter.com/ySifn8YXo6
— Tim Rodman (@TimRodman) June 17, 2020
This reads the JSON data and converts it, including adding a Note that it was added by the Webhook. #CloudxRPSummit pic.twitter.com/MZe4TUcfDa
— Tim Rodman (@TimRodman) June 17, 2020
All of that code is compiled into a DLL. Our DLL will appear in the "Implementation Class" field on the Webhooks screen. Then Acumatica gives us a URL. Notice the Webhook was also added to the Customization Project for easy publishing to another environment. #CloudxRPSummit pic.twitter.com/1ax1YVopmQ
— Tim Rodman (@TimRodman) June 17, 2020
Some final recommendations for Webhooks. Important to keep them as simple as possible because they run instantaneously in real-time. #CloudxRPSummit pic.twitter.com/qqKdAAofUE
— Tim Rodman (@TimRodman) June 17, 2020
An overview of the simpler part which is the Push Notification that sent data from the left-hand side to the Webhook on the right-hand side. #CloudxRPSummit pic.twitter.com/PSUC40l3XP
— Tim Rodman (@TimRodman) June 17, 2020
Note the "Header Name" and "Header Value" fields which is how we implemented simple authentication #CloudxRPSummit pic.twitter.com/Fpui5DeJxI
— Tim Rodman (@TimRodman) June 17, 2020
Here's the Generic Inquiry data where the Push Notification detects any updates/inserts to the data #CloudxRPSummit pic.twitter.com/bBiFK71GLc
— Tim Rodman (@TimRodman) June 17, 2020
Use the REQUEST HISTORY on the Webhooks screen to monitor Webhooks #CloudxRPSummit pic.twitter.com/n9Kyq68b3n
— Tim Rodman (@TimRodman) June 17, 2020
Use the Process Push Notifications screen to monitor Push Notifications #CloudxRPSummit pic.twitter.com/TUJLxaY7AT
— Tim Rodman (@TimRodman) June 17, 2020
Tips from Vladimir Perov for Push Notifications #CloudxRPSummit pic.twitter.com/NxqsHZ7tH5
— Tim Rodman (@TimRodman) June 17, 2020
Here's a nice summary of Webhooks and Push Notifications #CloudxRPSummit pic.twitter.com/dr0D8Wr2B4
— Tim Rodman (@TimRodman) June 17, 2020
Webhooks are a critical component of Acumatica as the critical "one version of the truth" ERP system in an organization. #CloudxRPSummit pic.twitter.com/GlCjabudtb
— Tim Rodman (@TimRodman) June 17, 2020