Currently employees are clocking into Ceridian for payroll and then also into epicor so they can clock to jobs.
We would like for them to clock into Ceridian then use and API to do the clock into epicor.
Has anyone done anything like that?
Currently employees are clocking into Ceridian for payroll and then also into epicor so they can clock to jobs.
We would like for them to clock into Ceridian then use and API to do the clock into epicor.
Has anyone done anything like that?
You can go either way with this, but maybe you want them to use Epicor to clock into Ceridian.
Either way, the question of error handling comes into play. I know Epicor has a few hard stops in place for clock-outs and clock-ins and I feel like you would be running into those frequently and having to code for them in the Ceridian integration.
If you started on the Epicor side you could make sure that the clock out action actually took place in Epicor and then send the API call to Ceridian.
I see ceridian has an API too: Integration of software partner program advantage | Ceridian
There are plenty of posts on here about people doing clock-ins programmatically.
yeah ive read a few, but most are Epicor to X.
The business wants the payroll clock to be in Ceridian because its controlled by HR.
I am guessing Ceridian has webhooks available in their API, if so you would need to set that up and then point it to an endpoint that would consume the payload related to the webhook action to then perform the clocking in Epicor. This may be possible using an Epicor function as the webhook endpoint but I donât think so. Typically the endpoint is listening for a post request so you probably need to build a middleman (nodejs and express?) to point the webhook to for processing.
âSounds like a job for Automation StudioââŚ
Ok⌠seriously folks⌠this is the type of thing that Automation studio can help with⌠I did just look into the platform, and our service provider (Workato.com) does NOT have a connector YET⌠but that doesnât mean that Automation studio is out of reach. it can also use the HTTP connector into Ceridian to push the data from Kinetic to Ceridian for the clock-in/clock-out⌠As @tkoch said, this could also be done with an Epicor Function⌠but sometimes having Automation Studio as the middleman would make any âprogrammingâ and debugging (along with data logging) much easier.
it COUDL be done having Ceridian as the host, and pushing the data into Kinetic, but as someone else pointed out⌠there are rules about clocking out⌠for example, if you are still clocked into a job, you would have to clock out of the jobs first. OF COURSE, with Automation Studio, you COULD have it automatically âEnd Activityâ on all jobs first, and then clock out for the day (which is not possible with base Epicor).
Tim, thank you for bringing it up. I didnât have time to post this advice to look into workato.
@Craig We are both Epicor and Ceridian as well - and I can tell you that after multiple attempts to get support for the Dayforce API - I was left with the statement âWe do not support the API from Dayforce, any development with that would be self-supported.â
Dayforce is a product that Ceridian uses, but doesnât write/maintain. So itâs like us with Epicor sort ofâŚ
I agree that @timshuwyâs Automation Studio would be great for this, but Workato currently does not have an endpoint for Dayforce time series data. I plan on working on this later this year, but for now itâs not happening.
Also - we have a script putting our pay period summarized time data in the Dayforce quick-entry format and our payroll person simply logs into Dayforce and pastes it in there. that way she can check totals for hours worked, OT, vacation, etc. before it becomes part of Dayforce.
The other problem you will have it that Dayforce getâs major updates every year (at least) and the import/export specifications change - not always, but weâve seen two changes in the last year to the HR import spec, but none on the quick-entry spec.
@MikeGross, sounds like you have potential challengesâŚ
One option that Automation Studio opens up is that it you can create a new Automation Studio WEBHOOK⌠that webhook can have custom parameters (Employee number, Clock in/out flag, Date, Time)⌠If you can customize Dayforce to send that webhook (one html call), then Automation Studio could do all the rest of the work in Kinetic. You would not need any APIs in Dayforce.
@timshuwy Iâve not seen any API reference material talking about web hooks in Dayforce - but that doesnât mean it isnât there. Iâll have to take a peek when I get my Studio license and can get some time to work on it. I suspect that Iâll have to do more than a web hook and actually write an endpoint to their API.
Dayforce tech support is isolated behind Ceridian - and the Ceridian guys are just not working with the API enough o be useful right now. Maybe they will be more help when I get back to it.
you would not need Dayforce to have a webhook, you would simply need to modify dayforce to call a webhook when an employee clocks in/out. The webhook could look something like:
https://www.workato.com/webhooks/rest/x3a47475-5ea9-4a66-bb8b-3c5ae9dd865c/empClocInOut?EmpID=1234&action=ClockIn&Date=08/15/2022&time=08:51
or to clock out:
https://www.workato.com/webhooks/rest/x3a47475-5ea9-4a66-bb8b-3c5ae9dd865c/empClocInOut?EmpID=1234&action=ClockOUT&Date=08/15/2022&time=08:51
This webhook would then trigger Workato to do the âactionâ and notify Epicor that the employee needs clocked in/out.
@timshuwy Ahh - I see what you mean - I was thinking slightly the other way around, but yes I see what you mean. Thanks for the perspective update!
So I couldnât help myself⌠I went to Dayforce online help/support sites and it looks like there is an âExternal Integrationsâ module - BUT - it looks like it is a series of preconfigured items, although they talk about setting up a service using the OpenAPI spec. I cantâ get to the module yet - working on that, so weâll see what I can find.
No such luck - I got the External Integrations menu option activated but they are indeed pre-established integrations. I suspect they are hard coded to certain events based on their name/function.
Iâm going to put a ticket in to Ceridian and see what I can find about creating user-defined integrations.
@timshuwy my question is, what happens when there is an error on the epicor side? Does that get logged in automation studio? Does the user see anything?
Automation Studio creates a log entry for EVERY time a recipe runs⌠and saves it for 30 days. You can look at each failure and see the results, see what the failure is, fix the failure and re-run that event using the same inputs as before if you desire.
You can also add in âon errorâ conditions so that it automatically does something different (sends email, tries a different way, etc). it is much better than a BPM at handling and tracking what happened. It even has charts and graphs telling you how many times your recipe ran, and how many failures which is really important when integrating things.
For example⌠here is a chart for the last 30 days. You can see that we have a major failure that happened several weeks ago⌠I can CLICK on the chart it it tells me the recipe that is failing. Then I can click on that recipe, and i can see the details of each run (image 2 below) I can further look into this and see that the failure was âCanât call a stopped recipeâ⌠this means that someone stopped a sub-recipe and forgot to turn it back on again. If I wanted to, i could restart the other recipe, and come back into this log, and re-run each of the failed recipes and they would then run with the data that was originally sent.
Here is how the error handling looks in a recipe⌠you can have it âmonitorâ a section of code for an error, and then do something different if it finds one. (this example is empty⌠just showing the structure).
I really appreciate you showing me this Tim, this helps.
I found out from Ceridian that we can do a Get Raw punches at a limit of 100 requests an hour. So not quite real time but might work for what we are doing.
My agency does this although we do the exact opposite. To us it makes more sense to have these employees clock in via Epicor MES and pull it to Dayforce.
We are rather complicated in the reporting we need to pull into Dayforce because of the type of company we are (special state reporting guidelines).
Iâll be brief on the details unless you ask for more, but the gist is this:
We have two sets of imports. The first is a RawPunchImport which is made of a 4 level query in Epicor which pulls the raw data of the employeeâs in, lunches and out (from LaborHed mostly). This initially processes into Dayforce as the WRK pay code.
We then do a second import bringing in much more information (mostly from LaborDtl). We have multiple manufacturing cost centers so we do a Pay Adjustment import bringing in the cost center that particular Epicor job belonged to and the employeeâs job code (which in the BAQ map into the Dayforce work assignment reference code) and the part number (mapping to the docket field in Dayforce). Once these pay adjustments come in, it flips the raw punches to an unpaid code and the employee is paid from the pay adjustments.