Within your Cloud Page collection, you can create a Code Resource:
After you fill out the name of the code resource, you can select the type, which in your case will be CSS:
You will now be able to paste your code into the editor, and reference the stylesheet with the url you declared during the creation wizard.
Read more about Code Resources here.
So, I actually was inspired by this question to do some more digging. I found out that the URL fetched by RequestParameter('PageURL') differes, depending on whether the page is presented in the "Publish" context, or accessed through the proper URL, e.g. http://cloud.example.com/cloudpage
The URL in "publish" is internal and contains e.g. Preview part, e.g.:
To my knowledge, the following are the limitations:
Callout Limits: Currently there is not much documented, but there is a 'limit' of 2000 SOAP calls per minute. The other consideration is that if your Automation using this script is a huge resource draw, you can see the rest of your Enterprise slow to a crawl and likely will draw the attention of SFMC that ...
There are three options for this to retain time displayed in email:
Now(1): Originally it provides current time. After send it provides job start time/Job publish time for Triggers/Journeys. This can be an issue for Triggers as there are times that it could be days, weeks or even months since the email was last published (which is likely the issue you are ...
Depending on the system you like to fetch files from, there is no need to do so via an API as the (S)FTP protocol is capable of doing so and almost any programming language supports this protocol or has packages/libraries that do so.
This might also be the reason why there is no (or at least no standard and documented) endpoint for interacting with files on ...
It is seconds. The lifetime of the token is 20 minutes (20*60=1200), as per this documentation: https://developer.salesforce.com/docs/atlas.en-us.mc-app-development.meta/mc-app-development/access-token-s2s.htm
Normally I store the expiry timestamp in the system integrating with SFMC, which allows me to generate a new token well before the expiry.
This can be achieved by setting up a SendLog:
The Send Log Data Extension is an ongoing record accessible to users
within Marketing Cloud that stores Send-Time data specified by the
Admin User, including subscriber specific Attribute data or Unique
Use-Case Data Extension row data. This ongoing record provides
access to data that isn't readily ...
Stringify isn't an AMPscript function. You should be able to use concat instead:
var @testID, @cloudpage, @link, @leadId, @bitlyPage, @contentType, @content,
@bitlyToken, @additionalHeaderName, @additionalHeaderValue, @output, @respheader
set @testID = 'XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
set @bitlyToken = 'myToken'
set @bitlyPage = 'https:...
Judging from your SQL, it looks like you already have the Data Views going to a data extension and using that for your query instead of the actual data view itself, which is great! (DV_Send vs. _Sent)
So I think really the best way to create this is by breaking it out into multiple queries.
So looks like ContactKey, SentDate, EmailID and JobID are your ...
It is possible using the DateDiff function.
This function returns the count (as a signed integer value) of the
specified datepart boundaries crossed between the specified startdate
In a nutshell, this function does the operation: enddate(SubscriptionEndDate in your case) minus startdate(today's date).
This would translate into the ...
Hi it seems a know issue:
did you go through this url, I think yes
Marketing Cloud Connect integrated sends failing after installing package for the first time:
Yes, unless a contact is accepted and indeed enters the journey, this person will still be evaluated in the future. So in your example, contacts who are evaluated and not accepted, are not excluded from future evaluations.
It looks like your 'OR' statement for Department__c needs to be grouped together, as it's evaluating the OR statements in line with the AND statments. For example:
ContactID__c IS NOT NULL OR (Department__c = '2' AND Class_c = 'A')
In the statement above null values are considered valid for ContactID__c if the second part of the expression is true.
It doesn't appear that you've asked the user for their permission to use Location nor have you called the iOS SDK's start watching location method. Not 100% on this next point, but I suspect you should see a locationEnabled=true in the first portion of this SDK State JSON object too. Net-net-net, it is unlikely that you've followed the documentation at all ...
I'd suggest only breaking out of AMPscript blocks when there's a loop involved. It's much easier to format if you simply utilize the blocks to validate data and set variables.
SET @rows = LookupRows("Contact_Salesforce","Id", _subscriberkey)
set @firstName = ""
set @Mother_First_Name__c = ""
if rowcount(@rows) > 0 then
SET @row = row(@rows,...
There are a few ways to resolve this (I know you mentioned in your comments that you utilized CASE to solve for it, but thought i should leave something as a reference for anyone else having this issue):
WHEN field1 IS NULL THEN
END as field1
Datediff works, but it's not sargable. Plus, I always have to review the order of the parameters and second-guess myself on if the result should be positive or negative.
I've gotten into the habit of simply specify a range for handling the time portions with as few functions as possible.
You can use the now() function to get the current timestamp, resulting in following code:
SET @CustomerID = RequestParameter('CustomerID')
SET @EmailAddress = RequestParameter('EmailAddress')
SET @emoji_selected = RequestParameter('emoji_selected')
SET @clickTime = Now()
It would be ?item=XXXX
this is covered in the help docs
item: This unique identifier for your product or content must match the unique key in the catalog and the value sent in the trackPageView collect item variable. This parameter is required to make a product- or content-based recommendation on any page.
Not sure I understand your use-case completely, but you certainly can do what you've illustrated in your code but you have to separate the double-percents in the concat.
You'll also need to define @DIN_copy before you use the TreatAsContent/Concat combo. The TreatAsContent forces the AMPscript to get evaluated.
Set @m1 = 'DIN'
Set @DIN_copy = "...
A few things that I spotted in your script:
Replace RequestParameter("_Subscriberkey") with _SubscriberKey. If you put quotes around it, it will be interpreted as a string. You also don’t need to use the RequestParameter function if you pass the Subscriber Key correctly: using the CloudPagesURL function to redirect subscribers from the email to your ...
There is nothing wrong with using same Data Extension in both Attribute Groups in Data Designer and Data Relationships in Email Studio. These work fully independently. It is also fairly normal for same Data Extension to be part of multiple Attribute Groups
You can't validate or test your ampscript outside of the platform since this is a proprietary language for Salesforce Marketing Cloud (unless you build your own interpreter).
When you are testing your scripts within a CloudPage, and you are receiving a 500 error, you should be executing your logic within a try/catch statement in order to output script-...
Configure the Send Blackout under Administration in MobileConnect:
click Set Blackout Window.
Change the status to Enabled.
Set the beginning and end of the send blackout.
Save the send blackout.
What happens after the blackout window?
If your send starts at 9 PM and takes two hours, and your send
blackout starts at 10 PM, ...
I hope this is what you are looking into! If your requirement is as below,
Create a new template with the below HTML code.
update the respective data-label with your desired description of the content block to be placed.
You can add additional tr as much as content blocks you need. [keep in mind that more than 8 blocks, might clip in Gmail!]
If you had a control group attribute/column in every send context, you could exclude sends to these subscribers using an Exclusion Script like this:
AttributeValue("IsControlfGroup") == 1
@IsControlfGroup == 1
The NotSent Tracking Extract will give you the exclusions, but it's not readily available.
Exclude Subscribers from a Triggered ...
Under the assumption that this resolved the issue, I am changing this from a comment to an answer for easier reference to anyone else experiencing this issue:
The issue is you are trying to pull a row of 1 from a rowset with 0 rows. Likely need to change IF @rows > 0 to IF @Rowcount > 0 and condition should work as expected.
See below sample: