Webhooks for epicor cloud?

How would I go about creating a webhook with Epicor cloud?

Situation is this. Making a bidirectional connection to a project management app to Epicor. When a job is updated in Epicor, I need a way to know that it was updated and then send the data to the project management app.

So how would I go about this?

I saw two other posts. One said, to use UD tables and or CDC. Never seen anything related to CDC before, maybe that’s for on premise only? UD tables I looked at quite a while ago. But I don’t believe I saw how I could use UD tables to create a webhook. It’s been a while though.

Whatever table or method you want to use to make the “hook” setup a BPM to call out to your external system. You can use RestSharp to do it if you like and test it all in Postman first. If you are on ST cloud and can’t do BPMs then I think you’re boned.

1 Like

Only boned if MT but it should work with Single Tenant (ST), Public Cloud, or Private Cloud (Azure/AWS/GCP).

1 Like

But what function are you using in a BPM to call out to an external URL?

I just looked through them. The only one I think I could use is the “Execute custom code” but not sure that would be it.

On Public Cloud.

yeah that. I can’t keep track of the abbreviations I was thinking “Shared Tenant” but yeah “Multi Tenant” that was the intent.

You would need to use custom code yes and perform the HTTP requests manually. There’s no widget for that. For integrations like this I use functions libraries

But there should be! A REST widget would be good to have.

1 Like

Heck yeah, it would be nice. Thank you both for your help.

I’m not up on C# as much as I probably should be so if you got the custom code already written up, that would help. Otherwise I’ll figure it out.

I can kind of understand why the lack of widget for it, other than the actual call a lot of it is usually integration specific. What would really be helpful is being able to define your own classes.

@carguy you can setup everything and test your integration in Postman and it will actually generate the c# code you need to make the call in Epicor as long as you use RestSharp library to do it, which I would recommend anyways.

1 Like

For more complex situations like this we use an ETL. Service Connect, Jitterbit, Mulesoft, Make your own .NET Core Service…

1 Like

My bad, you said that before. I missed that. Alright, I’ll build it out in postman. Thank you!!!

In addition to the REST widget (based on the RestSharp library), the next best thing to creating classes would be JSON-typed variables (NewtonSoft or System.Text.Json which is gaining in popularity with the newer versions of .Net).

Abstracting the details away in a widget makes upgrades smoother since the code generation could be altered without having to have to rewrite your code as better libraries are written.

Also the ability to return json datasets directly vs having to string them and then unstring them later that would help greatly for pass through integrations in EFX does it work to stringify them sure but it’s gross and annoying lol

2 Likes

This project was put on hold and recently brought back up to the top.

I have the BPM setup and I tired adding the Restsharp code from postman to the custom code function in the BPM. But I get this error(s):

From what I’ve read, it looks like I need to add the restsharp dll to my externals folder. I’m assuming that applies to locally hosted Epicor. But there must be away to add the restsharp dll to epicor cloud. Any ideas?

Just for anyone else that runs into this issue. We cannot run the restsharp code in the cloud environment. Which means, no webhook calls.

Alan - Did you have an EpicCare ticket number for this issue? You should be able to reference the RestSharp DLLs from BPM and Functions.

1 Like

I did and the account manager said it was not possible. I can find the ticket number if you’d like.

Did you add it to the assemblies?

It should be included by default now.

Hmm I’ll have to look into it and see if it works now.

The RestSharp DLLs were included with the Server installation starting with 10.2.700.