Automatically open a form after login

We have a requirement to open a form that the user must acknowledge that opens after login but before launching the main menu. I found this in another article:

Sounds like you are looking for the “shortcut” functionality.

Open your UD Form and then from the toolbar - File > Send > Record to File
Save that in the Client Config folder and create a Windows Epicor.exe shortcut that references the Sysconfig file created by the “Record to File” option. When you run with that Sysconfig, it will only open the Menu item stored in the Shortcut section of the Sysconfig.

I did this but it only opens the form, not the actual application. How do I get Epicor to open after showing this form? I put the shortcut into my normal config file but it doesn’t do anything beyond the form.

Also, is this possible in Kinetic? We haven’t moved there yet but we will be moving there soon. I will need a solution for both if possible.

2 Likes

This is not possible in Kinetic, nor is it possible in Classic. What is the business case you are trying to solve here?

2 Likes

A Post BPM to display a messagebox via widgets or C# InfoMessage.Publish on SessionMod.Login might work? If it’s to be informational only? You would want to try on a non-prod and be ready to bail yourself out with an API Key if it breaks.

2 Likes

We are a government contractor and are moving toward our CMMC assessment. There is a requirement to display a message to the user when they log in. We are trying to determine if we can meet that requirement for Epicor or not.

I will look into the post BPM to see if I can get that working (not thrilled with the idea of breaking even a test environment).

Hi,

I tested this in 2025.2.10, and it seems to meet your requirements. I moved it away from SessionMod.Login to another BO that fires only once on login in the hopes that it’s a little less dangerous :slight_smile:

If you wanted to block login without agreeing, you might be able to move this to SessionMod.Login and change it to a Yes/No prompt, and throw an exception on No. that should prevent login.


image

InfoMessage.Publish("First Login Message");

Works in Classic, too.

4 Likes

Yes! For what you need, with just a notification to the user, it is doable just like @GabeFranco showed.

1 Like

Thanks! This meets our needs.

2 Likes

Did you try this with SSO in Classic? I’m not having the same luck.

1 Like

I did not, it makes sense that a different set of BOs would fire with SSO - no need to check if a password expired if you are authenticating by another means.

Putting the same thing SessionMod.Login should work (or you can find another BO that fires only one time on login with SSO)

1 Like

Thanks. If I find the right BO I’ll let everyone know.

2 Likes

That would be great. We are moving to SSO also so it will be needed. Thanks!

1 Like

I am still working on this. In Gabriel Franco’s post he mentions SessionMod.Login. Is that available in Epicor 10? If so where is it? I can’t seem to find it.

1 Like

Unknown - but this is how I tracked down those two BOs on Kinetic →
I logged in, then I checked the Application Server Log for the first instance of my username.

When I found it - I looked for any BOs that fired just once.
IsPasswordExpired fit the bill, SessionMod.Login was the only other one I noticed that fired one time.

2 Likes