The issue will be with the CRM. Check you setting to ensure email notifications are turned on. Also, make sure the task assignee is different from who assigned the task. Here's a reference for what I mean: https://help.salesforce.com/articleView?id=000335293&mode=1&sfdcIFrameOrigin=null&type=1
Here's a parsing example using SSJS.
If this were the value of the json attribute:
I would show/hide on the server level to help reduce the total size of your email and the related processing.
Set @CouponCode = AttributeValue('CouponCode')
Set @CouponDiscount = AttributeValue('CouponDiscount')
%%[if NOT EMPTY(@CouponCode) THEN]%%
<span class="span" style="font-size: 16px; line-height: ...
If you're feeling that the list is becoming congested with all the versions, you can always delete the unwanted versions. The only scenario where I see the need to re-do the journey is if the Entry Data structure was changed (additional fields etc.) especially if your Entry Data is Salesforce or something else broke the journey which is no longer performing ...
There are some granular permissions regarding how has access to these on the journey canvas, outlined in this help doc.
Some Marketing Cloud customers want their users to access Salesforce events but not Sales and Service Cloud activities. Some want the opposite experience. Two new Journey Builder permissions in Setup let you grant access to these ...
Ok, so as it turns out if you make changes to the config.json you MUST create a new journey to reload the configuration, you cant just test in the same journey. If you dont and make changes to any other code the changes are reflected in the journey when you activate and test. But changes to the config.json require that you create a new journey and re-...
Unfortunately, as it currently stands there is no public REST endpoint nor SOAP object to interact with Landingpages or Cloudpages. All of this is handled via internal API endpoints inside of the UI and all exploration on the undocumented endpoints did not turn up anything related to this.
I am hopeful as they roll out the new dynamic content integrations (...
New Version vs. New Copy
Review the recommended guidelines for when to use a new version or copy of a journey in Marketing Cloud’s Journey Builder.
Creating a copy of a journey creates a journey that is identical but runs independently, with a unique title, audience, and reporting. Creating a version using New Draft also duplicates the journey, but this ...
This is indeed not possible, as you can't invoke real time events based on changes to subscriber status. Also, you have very limited possibilities of customising the standard Subscription Center to provide the ability to perform any API related activities.
Hence, the best solution would be either to build the preference center within the system holding this ...
Email name should be the only value inside of 'Name' in 'My Tracking' inside the SFMC UI.
The only way this name would be different from current emails is if you changed the name of the email after the send already went out. Than that send would have the old name that the email had at time of send.
That being said, you should be able to match 1:1 from the ...
Deploying a triggered send with unhandled errors will cause those records to queue up and prevent additional ones from processing until the the queue has been cleared and the trigger has been refreshed.
I'd make the necessary updates to your email, clear the queue and then either refresh both the TSD and email activity in the journey or just create a new ...
You can search using XPath. Something like this:
set @xml = ""
set @xml = concat(@xml,"<product-lineitems>")
set @xml = concat(@xml," <product-lineitem>")
set @xml = concat(@xml," <net-price>79.95</net-price>")
set @xml = concat(@xml," <tax>0.00</tax>")
set @xml = concat(@xml," <gross-price>...
The below should give you what you need. Be careful though as depending on the volume of records in the Open DV, this can time out.
SELECT FORMAT(GetDate(), 'MMMM') as Month,
FORMAT(GetDate(), 'yyyy') as Year,
COUNT(SubscriberKey) as Count
WHERE FORMAT(eventdate, 'MMMM') = FORMAT(GetDate(), 'MMMM')
AND FORMAT(eventdate, 'yyyy') = FORMAT(GetDate(),...
I think this should work
datename(month,s.EventDate) as SentMonth,
1 as Emails_Sent,
j.EmailName as EmailName
LEFT JOIN _Open o ON o.JobID = s.JobID AND o.SubscriberID = s.SubscriberID AND o.IsUnique = 1
INNER JOIN _Job j ON j.JobID = s.JobID
WHERE s.EventDate between '06/01/2019 00:00:00.000' and '...
There isn't an out of the box solution to get SMS tracking of a specific journey.
However, there are other ways to get what you want:
Query SMSMessageTracking data view and tie the data back to your customers who received that specific SMS.
This data view allows customers to view their send and receive
history. Information from this query ...
This solution cannot really be implemented. What you can do is to make a journey based on one customer activity. Please go to trailhead to learn more about Journey Builder: https://trailhead.salesforce.com/en/content/learn/modules/journey-builder-basics
I personally use IndexOf AMPScript function to check for keywords within a defined variable or string.
This function returns character position where string occurs in the variable. Index numbering begins with 1.
SET @string = 'ab'
SET @Find = IndexOf(@string,'a')
The result of above will be 1
You probably have bits of html after your initial ampscript block, and you need to check further down the code, if a closing ENDIF exists. Hence you code should be something along these lines:
set @rows = LookupOrderedRows("Consult_Notifications_Daily_followedreply",3,"date desc","EmailAddress",emailaddr)
if @followedReplyNotificationType == '...
The Auto-Suppression list, despite its name, is a Data Extension.
Here's how to insert a row to an Auto-Suppression list:
var addRow = Platform.Function.InsertData('Auto-supression list name',['Email Address'],['email@example.com']);
You will have to add a loop to insert more contacts in one go. You don't ...
Yes, but you would have to upgrade to multi-org. With multi-org, you would be able to connect the parent with your Salesforce org using one API user and choose which objects should synchronize, and connect the child BU to the same org using a different API user and choose different objects to be synchronized. Take a look here at this example from Multi-Org ...
I get the feeling that your pipe delimited string is not always ending with a pipe - meaning you are cutting off the last char of your final column.
To take out the potential issue of the string not ending in a pipe (meaning that your current ampscript will delete the final char of your string) I would look at doing the following, which basically just ...
Below is a good reference for each aspect of the SOAP Subscriber object create/update options.
You should be using something like below:
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
Are you using the relatively new Transactional Messaging API? If this is the case, you will not find any UI for managing those sends, and all operations, such as updating the send definitions when making changes to emails, will need to be performed via the API.
This new API should not be mistaken for the old Trigger Send Definition setup, as the ...
I haven't encountered this problem - however regarding "good practice" you have made the right decision to use a value that is not an email address for the recommendations.
The IGO identifies a user by whatever value you give it during the "Set User Info" call in the Collect Tracking Code configuration.
Note that "SubscriberKey" can sometimes render as an ...
The ROW_NUMBER() function is great if you have an order that you need to find or maintain. However if you are looking to find duplicates (no order needed), then you should try the COUNT(*) function, as below:
FROM [Channel_Audience] a
INNER JOIN (
Domain whitelist is intended to store domains to which you can perform redirects on form submission in Cloud Pages or in Smart Capture forms. Let's say you host a form on Cloud Page hosted on e.g. marketing.ampscript.guide and want it to redirect to sprignaturemoves.com, your form submission will fail, if domain whitelisting is enabled, but sprignaturemoves....
If the numbers of email send-outs is not too high, there is another easier way to do this.
1. Send your transactional email via Journey Builder by inject into journey using API event.
2. Add wait for 1-2 days as per need.
3. Add engagement split activity and send reminder email on basis of open/click etc. Setup in engagement split activity.
I found the following regarding push apps on iPhone:
Troubleshooting Push Notifications
Issues with Using the Feedback Service
If you remove your app from your device or computer and then send a push notification to it, you would expect to have the device token rejected, and the ...
It looks like you want to target the "ListSubscriber" Object where the CreateDate is a recent value (greaterThan %%date%%).
Assuming only "Active" subscribers are being added to your All Subscribers List only, you can use the simple filter below:
Yes, if the object holding this field is synchronized and this fields appears in Synchronized Data Extensions.
No, if it's not synchronized.
Another way to retrieve it if you don't want to synchronize it would be to use the RetrieveSalesforceObjects() AMPscript function, but that would only make sense on a CloudPage.
Since your initial email is triggered and NOT sent from Journey Builder - you could do the following:
Run a daily Automation Studio activity to find customers who didn't click the initial email from the previous 24-48 hour period, and add them to a Journey Builder activity that sends them a follow up.
Query to add customers to Journey Builder based on "not ...
I've also had this problem and solved it by running each activity manually to the base "Import" folder to confirm the files were being extracted and moved correctly.
The 3 activities needed to run a Tracking Extract process are:
Data Extract (Tracking Extract)
File Transfer (Safehouse to ExactTarget Enhanced FTP)
File Transfer (Manage File - Unzip ...
I'd do something like this with left joins:
'Rolling' as [Group]
when em.account_number is not null then 'Y'
when sm.account_number is not null then 'Y'
from [12mth_shoppers] s
left join (
select distinct em0.account_number
from [email marketable] em0
) em on em....
You can't add SSJS into validation script, as it is executed in the front-end only. I would very much recommend moving away from Smart Capture and build a custom solution, which will use Ampscript function of CreateSalesforceObject before upserting the form data to a data extension. This way you ensure you can store the field values with a reference to e.g. ...
Advertising Studio is basically just an easier method for taking your data that sits in SFMC, and securely making it available for ad audiences on social platforms, in your case that being Facebook.
The most common approach would be to create a data extension that contains your segmented audience, map it to a new audience in Advertising Studio, and then ...
the processing is done on a cloudpage handler. Set up a Cloudpage as target for the link and write AMPScript there.
Each Emoji can point to the same Cloudpage, and the different emojis can deliver different parameter values.
Use CloudPagesURL() function to point to the cloudpage, adding additional parameters so that the link the cloudpage is appended with ...
What you would do is have each of these link to the same cloud page via CloudPagesURL() function. You then append an added parameter (inside the function) to share which image they clicked. E.g. %%=CloudPagesURL(ID, 'Satisfaction', 'FrownyFace')=%% which could be utilized as the href for the Frowny face emoji to show dissatisfaction.
You can't configure the Mobile Opt-in template in Mobile Connect to be triggered by a different keyword than the one you want to subscribe them to.
To achieve this you would need to a text new interactive text message (Text Response template on your OFFER2020 keyword) that will use ampscript to write the data about this customer (SubscriberKey found with a ...
I have solved this issue in a more generic way, using MD5 checksum of the content as an identifier, i.e.
SET @Content = "Hello <a href='http://www.salesforce.com'>world</a>"
SET @textChecksum = MD5(@Content)
Hence if this same code is reused across one email, you will automatically set ...
If you need to get the value before the @ character, you'll need to use something like:
SELECT LEFT(Email, CHARINDEX('@',Email)-1) FIELD_ALIAS FROM YOUR_DE
Replace the FIELD_ALIAS with the name of the field where you want to store this value. Also, replace Email with the field from where you'll be getting the emails..
Basically, we are using the LEFT ...
There are a few things that I see here:
You don't declare where @CustomerID comes from
I don't understand why you would check this condition, as this will always be true since it comes from the lookup used: @SubscriptionData == @CustomerID - or did I misunderstand?
Is @WSubscriptionProgram a mandatory field? If yes, then it will never be empty and the ...
Please make sure you have these additional fields added to your SYNCED object.
Then make sure you are searching based on "ContactID" and NOT "Id"
set @lookupvalue = "0030o00002dgaRDAAY"
set @CaseId = Lookup("Case_Salesforce","Id","ContactId",@lookupvalue)
set @Subject = Lookup("Case_Salesforce","...
So from Contact Builder > Data extensions I right clicked on a link and got this url:
(replace ##CUSTOMOBJECTID## with your GUID) (and you stack SXX or S7/s10)
If my assumption is right then I don't think you can store the private keys at this point on your own.
It seems like you'll need to reach out to Salesforce professional services team to configure your own private key.
Here is the reference article.
I ran into this issue some time ago. You can read my case details below:
Case Question (sent to SF)
I am seeing sporadic behaviour in the following scenario:
I have a Active subscriber on the All Subscribers list
Their SubscriberKey is 1234 and email is firstname.lastname@example.org
I do a real send from a data extensions to that same SubscriberKey (1234) but with a ...
With the Jan. 2020 release this will be possible,
When you use MobileConnect with Journey Builder, you have full control of your SMS message name in Journey Builder. SMS messages sent through Journey Builder now use the Activity Name as the Message Name in all reports and data extracts. The Activity Name gets populated with the content name, but you can ...
Yes, but it'll require that you add some AMPscript code to your email (or template) -- code that retrieves the value from an attribute coming over in the API payload.
set @topContent = AttributeValue("topContent")
<!-- the rest of the email HTML -->
When you schedule an email in SFMC, the following process is done:
Email Content (HTML and AMPScript from all associated content areas or other assets) is stored in a 'snapshot' at time of schedule.
All associated Properties (subjectline, preheader, deliveryprofile, audience,etc.) are stored inside job 'snapshot' similar to content
Although the Sendable ...