Skip to main content

Hi all,

 

I am relatively new in the Action Flow but I am making good progress. But I currently struggling to find a solution to my problem.

 

I want to send one scheduled email to users whom created Sales Orders matching certain criterias.

 

1/ to avoid spaming their mail box, I want to group all the matching Sales Order in one email (this I managed to do). The format of the email is HTML to make it readible. But this is maybe the root cause of my problem since I am using a text agregator.

 

2/ The list of recipients will depend on the output of the query, and I can't find a way get this input to the Outlook module without getting rid of my HTML email format.

 

Ideally I would want to send ONE grouped email with all recipients. But ONE email per user is acceptable.

 

Note: the reason I am using an Array Agregator is because in this cases what is important is the Sales Order regardless of the number of Items/Cases.

 

Any help will be most welcome

 

 

Email sent to users 

Action Flow 

image 

 

 

UPDATE:

 

I think I may have a solution, but I am getting another issue

I split my routes to set two variables, one to get the recipients list and one with the table I want to display in the email body.

 

BUT my "get multiple variables" module gets completed BEFORE my 2 set variables module get a change to provide anything.

How do you control/manage the sequence of the modules ? I cannot find any documentation regarding this.

 

I change the action flow setting for it to be sequential, I don't see any difference.

 

image 

image 

 

 

 

UPDATE 2 : SOLUTION

 

Not sure if it is the right way to do it, but I found a solution to my second problem

In short, I put a router at the start in order to have the "get variable" module on a different route. I am really keen to read some documentation to understand how the route are prioritised within each other. Not clear to me.

 

image 

Thanks for your feedback

Starting with a router is totally fine. I've got a similar use case where the router is the first module.

 

What I've found to be helpful is the "Explain Flow" button at the top. It'll provide a sequence of the modules.

 

The other option is building the HTML table prior to routing to the appropriate users. If the email addresses are built into a table in Celonis, you can create arrays within the action flow to set those aside and then aggregate them after the fact.

 

imageThe map() function then gets your list (array) of emails and stores them there. You wouldn't necessarily have to have an additional router.

 

The way you have it is totally fine and definitely works!


Hi Matt,

thanks for answering to my post.

I used the "explain flow" button a lot while building this. But it does not tell you why a module gets priority against another. I really broke a couple of neurons last week trying to find a way for this to work. If there are not documentation available, I hope somebody is working on it 😅 .

Cheers


Yeah the priority is a little confusing sometimes. I'm not entirely sure what takes priority before the other. Glad you were able to figure it out!


Hi Lovise,
Thank you for reaching out.

The solution to your requirement is to add the outlook module at the end of 2nd route, no need of 3rd route. Also add some delay (Tools-> delay, 2 sec for ex.) before the outlook module so if 1st route takes time you have sufficient time to process correctly.

It would be looking something like this

 

imageAbout the processing of modules, there are processed as per the sequence in the sense whichever module gets executed first based on the query and result.

 

The setting of sequential processing is for when you enable it and it has error handling done

this Link for information "Sequential Processing"

 

Please let me know in case of any further questions.


It would be looking something like this

 

imageAbout the processing of modules, there are processed as per the sequence in the sense whichever module gets executed first based on the query and result.

 

The setting of sequential processing is for when you enable it and it has error handling done

this Link for information "Sequential Processing"

 

Please let me know in case of any further questions.

Thanks for the tip @avinash.gutte12 about the sleep tool, I will have a go next week.

I did enabled the sequential processing setting, but it did not make any difference, but maybe something else was in the way.

 

when you say the modules are "processed as per the sequence in the sense whichever module gets executed first based on the query and result", are you saying this is a matter of processing time ? meaning the fastest route gets completed first, is this what I understand ?

 

If yes, is there a way to anticipate which route is going to be slower/faster in order to avoid these kinds of issues?

 

Thanks


About your comment

meaning the fastest route gets completed first, is this what I understand ?

-> Yes that is correct

 

Sequential process takes effect when you are error handler directives like break, and when there are failures, those failures would be processed first and then the next bundles

 

Router will forward all records to all routes in a go, at same time, It depends on the processing of each route.

For Ex.

you are fetching only emails from route 2 which seems less operation than route 1

and you are doing some aggregation in route 1 which would take more time as compared to 2

 

I hope this helps.


@avinash.gutte12 this is the best insight I had on this subject !! thank you

not sure this information is clearly documented, it definively should be.

have a great day


Hi all! I have a similiar issue but I need that the add the Text agregator of the 1st route in the email, how I can do that?

image


Hi all! I have a similiar issue but I need that the add the Text agregator of the 1st route in the email, how I can do that?

image

Hi @hugo.dario.peña.12 

 I havent tested @avinash.gutte12 suggested solution yet

but I wonder if you should add the GET MULTIPLE VARIABLE module After the SLEEP module in order to get all the necessary inputs available for the outlook module


Reply