Email invoices to multiple emails

We added a text box on the customer where the multiple email addresses are stored separated by semicolons. This field is then used to send the invoices. We use APM for emailing invoices.


We do the same. Adding one UD field is way less work than all these other solutions, and its transparent to the users (hide the original box, so they only see the replacement that has room for as many emails as they want).


Unless Epicor gave us a control to manage the lists :smiley:

1 Like

I’m not holding my breath. That idea has been posted in various forms on ideas for awhile now.


Like Randy said, if a company is small enough and does everything in Epicor, then I suppose so. But a lot of companies have other systems that send out emails. Duplicate this list again in a CRM? And again for other SaaS services one might have like a texting service or a hazardous material reporting system? And yet again for PowerAutomate/SharePoint/Teams? And yet again for IoT systems?

Send automated emails? I have no idea. I despise automated emailing. In fact, I have a draft article in LinkedIn that I need to finish. (This is just the working title…)

The only thing worse than automated email is automated email with attachments FFS. Email is a cesspool of phishing, malware, and business email compromise. THIS is where we want to put all our important communication? There are old and yet still active exfiltration techniques that use local SMTP servers. It wouldn’t be difficult to set up an APR rule, BPM, Function, or customization to email out a Balance Sheet every time it’s printed so the attackers know how much cash a company has on hand or email a supplier list to set up a phishing scam. Do we monitor the emails automagically going out of our systems?

And email is not even guaranteed communication. How many times have customers claimed not to get their invoices? Why do we want multiple email addresses? Because people change jobs, or go on leave, or just claim not to receive our invoice to buy more time. If we send them to more recipients, maybe, just maybe they will get there.

We’re just talking invoices in this thread. We have the same issue with suppliers. Now multiple this by every single notification that we email to our users. Every. Single. Day. All that time creating these emails just to have users ignore them. Now add to that all the reports “I want to see every morning” that never, ever get opened.

Our idea of a notification system is a complete dumpster fire made popular by a service that dutifully told us, “You have mail.” (AOL for you youngsters…There’s a cute Tom Hanks/Meg Ryan movie about it on VHS if you want to watch it…)

But if we HAVE to send :poop: through email, wouldn’t it be wise to have some control of what is going out and who is sending it? How does letting every single .NET app send out email make ANY sense here?


What’s the alternative?

Apologies to @taustin for highjacking the thread. The first best solution for Tanya is yours and John’s.

Moving forward, I made this suggestion here on EpiUsers (no votes to add to Ideas at the moment).

This needs to be done in steps but the first one is encouraging users to use the Single Responsibility Principle. Move the job of notification out of the business logic. For the rest, I’ll start a new thread or finish that damn LinkedIn article.

1 Like

It would be nice if you could perform custom code and assign variables in the APR workflow designer similar to BPMs and functions to gather a list of emails from contacts

1 Like

That is pretty much what my solution is doing. It emails the primary contact and then all others with the appropriate flag.

The ones with the flag selected are included in your RDD though and not generated when the routing rule runs?

Correct. Did not understand what you meant, but do now. And yes, that would be nice.

But all I had to do was add the CustCnt table to the OrderAck RDD and then joined on ship to info to only pull back the subset of contacts that are attached to a ship to.

1 Like

I did it once where I assigned those flags to the person/contact role. I was able to then pull all of that in via the APR. When adding the To field in the e-mail template I just changed the value to “All” instead of “First”:


This let me pull all of the PerCon records with that flag via the APR. I would assume doing it via just the PerCon record itself (not the role) would be feasible.

I’ve also done it the other way (following some work that @Chris_Conn did for us) that allowed you to build the address in a BPM based on some more complex logic.

1 Like

We were not using the role code field in customer contacts, so we created a role code called Email AR Invoice. Any customer contact that we wanted to send the invoice to we selected that role. We could have used a UD checkbox in customer contact instead.

The next step was to duplicate the ARFORM data definition and add the CustCnt table. Add criteria to CustCnt where RoleCode = Email AR Invoice role code. If you were to use the UD checkbox instead, use that as your criteria. Then create a relationship to InvcHead table on Company and CustNum.

Then in APR we had criteria for current user belongs to AR user group. Condition for validate email address. When those conditions were true it would send the email as defined in the routing action Send E-mail. Of course we created a new report style and linked the new rdd to it.