Expand my Community achievements bar.

Check delivery day of X email for sending Y email

Avatar

Level 3

Hi,

 

There are 2 workflows. 1st is for X email (welcome email) and 2nd is for Y email. X email workflow will run daily and Y email workflow will run on Tuesday and Friday only. Recipient shouldn't receive X and Y email on same day. There should be at least 1 day gap between them.

 

I'm trying to check few conditions for the following scenarios.

 

Scenario - 1

 

We have sent X email (welcome email) On Monday

 

Now, Workflow for email (Y) will run on Tuesday and recipient will get Y email as there is a day gap.

 

Scenario-2

 

We have sent X email on Tuesday

 

Now, workflow for Y email will run on Tuesday but recipient should not get Y email as there is no day gap. They should get email on Friday when workflow runs again.

 

So basically, when sending Y email, needs to check whether X email (welcome email) was delivered one or more days ago.

 

I have used the following condition but I am not sure whether condition below is right or not.. Can anyone plz help ?

 

reminder-email.JPG

15 Replies

Avatar

Level 6

Hello,
bad practice as condition in your filter:
1- try to avoid "exist such as" condition in a general way... It's better to use a specific filtering dimension:
targeting dimension: recipient
filtering dimension: recipient delivery logs
2- try to avoid at maximum functions on your table attributes: if an index is placed on this attribute, it won't take it into account
In your scenario:
     A- select your target without applying communication pressure in you first query
     B- After your query, use a split activity and search for who you want to exclude:
you should use in your split activity "event date of recipient deliveryLogs - on or after - DateOnly(1 day before)". Note: read carefully step 1 for making difference between targeting dimension and filtering dimension
In the general tab of your split activity, click on "generate complement".
You will have two branchs after the activity: The one you need to exclude for communication pressure (put an "End" activity to it) and the "complement"... This is this one you will want to continue with to send a delivery.
3- quick tip: as this is a daily workflow you're setting, don't forget to use a test activity with "vars.recCount > 0" as condition in order to avoid analyse a delivery with 0 recipient -> electonical pollution on long term

Also, if you need more general pressure rule on your platform, don't forget to check "commercial pressure" as typologie rules that you can create:
Pressure rules | Adobe Campaign
 

Avatar

Level 3

Thank you so much for reply.

 

Regarding filtering dimension and filtering dimension - I'll keep this in mind.

 

For "event date of recipient delivery logs", shouldn't I use "date only" ? 

 

If I can use "date only" for that, operator will be "greater than or equal to". Can you plz confirm ?

 

Also, I have used vars.recCount > 0 already. Thanks for the tip.

 

Avatar

Level 3

In addition to above comment, value date only(1 day before) is right ?

 

What I'm trying to do is below:

 

X email will be sent out daily.

 

Y email will be sent out on next Tuesday and Friday only.

 

Scenarios are like:

 

1 If X is sent on Monday, Y should be sent on Tuesday (next day)

2 If X is sent on Tuesday, Y should be sent on Friday (immediate Friday)

3 If X is sent on Wednesday or Thursday, Y should be sent on Friday (immediate Friday)

4 If X is sent on Friday, Y should be sent out on Tuesday (immediate Tuesday)

5 If X is sent on Saturday, Sunday and Monday, Y should be sent out on Tuesday (immediate Tuesday)

 

Hope date only(1 day before) and expression - on or after - will work for this.. Can you plz share your thoughts?

 

Avatar

Community Advisor

Hi @vinay16 ,

 

Yes, your filtering function seems to be correct
If I understand you currently you are using broadLogRcp table and have used @deliveryCode Y in each of the deliveries then using a Split activity in the workflow you are looking for the "Recipients" who received this 'Y' delivery yesterday (1-day gap or not)  and these recipients you then exclude in your main target of X.

Two suggestions in your above approach:

1. In the column of @eventDate where you check for delivery events 1 day ago under Operator use "On or After" (screenshot) I think the current parameter "greater than or equal to" is wrong.  

_Shubham_Goyal__0-1673847792438.png

2. Keep using "Date only()" with DaysAgo() as this will help to look for the delivery with deliveryCode 'Y' from 12:00AM of the day date else if use only DaysAgo(1) then it will look for data from the current server time minus 1 day, not from 12:00 AM.

 

Br,

Shubham

 

Avatar

Level 3

Hi Shubham,

 

Thank you for detailed reply.

 

I have used Date only() because of that reason only.

 

However, I can't see "on or after" operator if I use Date only() function on both sides. I can use "greater than or equal to" only.

 

What I'm trying to do is below:

 

X email will be sent out daily.

 

Y email will be sent out on next Tuesday and Friday only.

 

Scenarios are like:

 

1 If X is sent on Monday, Y should be sent on Tuesday (next day)

2 If X is sent on Tuesday, Y should be sent on Friday (immediate Friday)

3 If X is sent on Wednesday or Thursday, Y should be sent on Friday (immediate Friday)

4 If X is sent on Friday, Y should be sent out on Tuesday (immediate Tuesday)

5 If X is sent on Saturday, Sunday and Monday, Y should be sent out on Tuesday (immediate Tuesday)

 

Hope date only(1 day before) and expression - on or after - will work for this.. Can you plz share your thoughts?

Avatar

Community Advisor

Hi @vinay16 ,

 

For all your 5 scenarios it seems that your communication Y is sent on Tuesday and Friday whereas X is sent daily so yes if you can apply this filter of 1-day gap (DateOnly(DaysAgo(1)) in your Y communication workflow.

 

Now, coming on your operator "On or After" so as the @eventDate column is date&time so it should give you options for the operator such as "On or After" / "Or or Before", etc
Can you confirm what you mean by "if I use Date only() function on both sides", the function just need to be added on the right side under "Value" and the left side is the label which is calculated automatically.

You can try to delete this expression and add it again in the filtering properties, then you might get the desired operator value.

Br,

Shubham

Avatar

Level 3

Hi Shubham,

 

Thanks for reply.

 

As you can see in first screenshot, I have used DateOnly() function on left side as well. Do I need to use that or not? If I use that, I will have option of using either "greater than or equal to" or "less than or equal to". If I don't use that function, I will have an option of using either "on or after" or "on or before".

 

I have used this function as I wanted to check from 12 am to 11:59pm duration only and not from current server time.

 

Also, I mentioned scenarios and as you confirmed, DateOnly(DaysAgo(1)) will work. I do have doubt for "on or after" ..

 

It's "on or after" - DateOnly (1 day before) -- so if X is sent on Wednesday and Y is supposed to be sent on Friday ( there is a gap of 2 days) - will the condition mentioned work ?

 

Thank you so much for your help again..

Avatar

Community Advisor

Hi @vinay16 ,

 

Following are my answers:

1- It's "on or after" - DateOnly (1 day before) -- so if X is sent on Wednesday and Y is supposed to be sent on Friday ( there is a gap of 2 days) - will the condition mentioned work ?

If using this Split Acitvity >> 

As you said minimum gap should be 1 day so if X is sent on Wednesday and on Friday Y runs then the gap is >1 (greater than 1) and as per our condition it will look for targets who have received delivery on or after Thursday 12:00AM and as these targets received delivery on Wednesday then they won't be loaded in the target. In summary with this condition On or After 1 day Ago, you will get targets who received the delivery 1 day before (i.e. Yday) so you can exclude them end their journey using the 'End' activity by 'Generate Compliment' and compliment will be the targets who haven't received the delivery in the 1-day gap so you have continued using these targets for actual send. 

_Shubham_Goyal__7-1674030984731.png

 

_Shubham_Goyal__6-1674030972587.png

_Shubham_Goyal__8-1674031009068.png

 

 

 

2. I have used DateOnly() function on left side as well. Do I need to use that or not?

You need to follow the following steps:

_Shubham_Goyal__0-1674030729151.png_Shubham_Goyal__1-1674030747757.png_Shubham_Goyal__2-1674030771464.png_Shubham_Goyal__3-1674030786690.png_Shubham_Goyal__4-1674030824134.png

Otuput:

_Shubham_Goyal__5-1674030845961.png

 

Hope the above heps!

 

Br,

Shubham

 

Avatar

Level 3

Hi Shubham,

 

Thanks for reply again and detailed explanation..

 

I understood your reply. However, there are other scenarios as well. It's not just about Wednesday. If you can see below scenarios and let me know the condition.

 

3 If X is sent on Wednesday or Thursday, Y should be sent on Friday (immediate Friday)

4 If X is sent on Friday, Y should be sent out on Tuesday (immediate Tuesday)

5 If X is sent on Saturday, Sunday and Monday, Y should be sent out on Tuesday (immediate Tuesday)

 

So, it's not just one day gap. Even if, it is 2 days, Y should be sent out. It's just that X and Y can't be sent out on same day. 

 

I'd be really thankful for your help.

Avatar

Community Advisor

Hello @vinay16 

 

The conditions you have posted in your questions are correct. Instead of DateOnly, use the event date = 1 day before condition.

 

It will cover the one-day gap.


     Manoj
     Find me on LinkedIn

Avatar

Level 3

Hi Manoj,

 

Thanks for reply. I know 1 day will be covered. However, there are few other scenarios that I mentioned above. There are 5 scenarios. Can you plz check and help ?

Avatar

Community Advisor

Hello @vinay16 

 

Change the date condition to event date - on or after  - 4 days before

And add another split activity to exclude anyone who has already received Y email and all scenarios will be covered.

 

 

 


     Manoj
     Find me on LinkedIn

Avatar

Level 3

Thanks for reply. I have already added condition that person won't receive email if he/she has already received.

 

Regarding on or after - 4 days before, X and Y can't be sent on same day and I think "on or after" - 4 days before will not help in this condition. Is there anyway to do so ?

 

Also, I want to use date only for event date - so can I use "greater than or equal to" ? I don't want to use range from server time to 11:59pm. I want to use 12am to 11:59pm..