New answers tagged

0

Assuming you mean universally, yes you can actually control the time period that your links expire. This resource will walk you through it. Essentially you would go into Setup and look for Link Expiration section and there you can set the time period/length you want to allow before your URLs expire. As a note though, this is a universal setting and is not ...


1

Here is a simple example. This was my first time using YML/YMAL files and I found spacing is very important. Got undefined errors for spacing issues. openapi: 3.0.1 components: schemas: owner: type: object required: - id - name - region - gender ...


1

I do not believe this is possible, You have a few options Create Mobile Demographics to store these values to be used in the message. Use a journey to send these and use the API entry event Hold these values in another DE and use ampscript lookup Provide the override message in the PUSH api to be the dynamic message you want to send


0

You are close, but AMPscript does not have a CONTAINS function or operator. What you have to use instead is IndexOf(). So you would do something like: %%[ set @favoriteSize_name = AttributeValue("favoriteSize_name") SET @unfinishedIndex = IndexOf(@favoriteSize_name, "(unfinished)") SET @noGrommetIndex = IndexOf(@favoriteSize_name, &...


0

In the absence of details about ent.[ReferenceDE], here's my interpretation: For all rows in Staging_DE2 that match a row in ent.[ReferenceDE] use the DoNotTrack value from ent.[ReferenceDE], otherwise use the DoNotTrack value from Staging_DE2. Select a.SubscriberKey , b.Created_Date , b.Last_Modified_Date , case when r.SubscriberKey is null then a....


0

I haven't found much meaningful info from the journey data views. You'll have to leverage Update Contact steps for Journey logging and build the logging/reporting yourself. Example here. The gist is: Create a status DE and relate it to the Contact in Contact Builder Create a log DE to receive the status rows Create a Query Activity in an hourly Automation ...


0

Although @SwatiMishra's answer may work, it is a bit more complicated than it needs to be. Regular and Auto Suppression lists can be imported into through an Import Activity. So all you need to do is create an automation with 3 activities in it. Data Extract Activity - use this as a data extension extract activity to move the data extension information into ...


1

Auto Supression list at the back end are Data extensions. You have to create a ssjs script that will create a SQL activity to extract records from your source DE and insert in the auto supression list. You can use the below script. <script runat="server"> Platform.Load("Core","1.1"); ...


1

You can't do this on a per-user level, but there is a setting under Setup > Feature Settings > Content Builder > Content Builder Settings where you can enable and disable specific types of content blocks. This will, however, apply to all users. I would check this list, to see if any of the blocks you mention, have been disabled:


1

By looking at the description, I believe its just an issue with the FILTER turned on for the Content types. Just follow the below steps to turn the filter off, Click on the Filter icon Click on Clear All Filters Unfortunately many struggle same as you, as there is NO INDICATION of the filter is being TURNED ON :-| Hopefully SFMC product team would fix/...


2

I don't see any WSProxy in your post. You could use it to retrieve your Points DE rows instead of Points.Rows.Retrieve(filter) as it provides an explicit view into the continuing a request to traverse all of the results the filter selects. Here's an example from the Advanced Retrieves with WSProxy page var prox = new Script.Util.WSProxy(), objectType = &...


0

Im my case Im using cordova-plugin-push and MCCordovaPlugin I used this configuration in the config.xml file: <preference name="com.salesforce.marketingcloud.sender_id" value="9834503948008503" /> Finally I removed this and it is working. I think if you have two dependencies passing the sender_id try to configure only one.


0

Not sure why you're casting to nvarchar(max). I'd simplify it like this: select replace(replace(a.[Email Name], char(13), ''), char(10), '') as EmailName , replace(replace(a.[Content], char(13), ''), char(10), '') as EmailSubject , a.[Language] as language__c from [Email Dictionary v2] a where a.[Block Name] = 'Subject' and a.[Language] = 'en' The ...


3

If the output of <ctrl:var /> is a string, then you would need to wrap it in quotes to show it as such. Although in many places this is automatically done, but it is not done with this output. So if you do console.log("<ctrl:var name=temp />"); it should work. Also, it is lowercase console not uppercase Console. JS is case sensitive so ...


3

You will need to ask support to ensure you have multi-bounce domains enabled. Let's assume you are sending from email.example.com today: SAP domain populates the bounce domain: bounce.email.example.com Your new private domain populates the from domain: brand2.com DMARC fail because example.com does not equal brand2.com What would work: SAP domain ...


1

You can have exactly 1 SAP per Business Unit. Assuming you bought 10 SAPs, you'd need 10 BUs to install them. Private Domains indeed do not brand images and links. Quoting an SF presentation on the subject: Q: Can we put multiple SAPs on 1 account? A: No, a single MID can only support 1 SAP for branding purposes (i.e. the links and images can only point to ...


0

This was an issue with the sender profile configured in the send classification.


1

So if I am understanding your question, the issue is that you have the primary key of ContactId, which limits the results to just a single contact record instead of including each of the correlated campaign records. To get the 500k result, you would need to either include both ContactId and CampaignId as the primary keys or shift it to just show CampaignId ...


0

Probably not what you want to hear, but you should not rely on a real-time call to a SF object to retrieve a coupon in your email scripting. If you want a performant and stable process, I'd recommend storing your coupons in a Data Extension and doing a simple lookup or claimrow to retrieve them at send time. You'll forever be battling locking and latency ...


1

VAWP will continue to execute AMPscript as long as the connection to the sending data extension row exists -- which is what the qs parameter on the URL enables. I'd suggest adding an additional AMPscript conditional when _messageContext == "VAWP" to display alternate content after a certain period of time after the send. How you arrive at that ...


0

So, @VishalKumarCV is correct in the solution that your sample size is small, but the reason for this is one that is not always intuitive. So when a split is made, the percentages you see are not a guarantee, think of it more as a coin toss or a dice roll. If you used a 6 sided dice, you would have around a 16.6% chance of getting a 1. So if you roll this ...


0

So from my tests inside of POSTman, the only requirement outside of having the id inside of the endpoint is to include the "fileTransferLocationId" inside of the payload. I am not positive why this is required, but the call returns an 'internal server error' (500) status any time it is not present. The easiest way to get this information is to do a ...


1

Neither platform notifies the software layer when an application is uninstalled. There is no way for the SDKs to detect this.


2

The answer lies in your question itself i.e., (though I know it's very small number) The short answer/reason is: If you are not seeing the expected distribution, increase your sample size. More details here --> https://help.salesforce.com/s/articleView?id=000333919&type=1 Within the Marketing Cloud May Release, Journey Builder released a new feature ...


1

Check the Platform.Function.LookupRows documentation for an example of how to emulate a rowcount: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/ssjs_platformDataExtensionLookupRows.html Essentially you just look at the result of Platform.Function.LookupRows like the array that it is, and count its elements (= you count rows). <...


-1

I found a solution! I added a HTML block with only a comment in there, so it won't show anything in the email. The ID of that contentblock I used for the parts that I don't want to show any block.


0

Here is my answer for the question. Prepare data: I would need to collect external keys of email triggers from journeys. In my case, I need to refresh email contents from running journeys. Can take a look how I prepared my data extension from this Post where I collected external keys from running journeys. Note: I named my data extension "Email tsd from ...


1

Have you tried looking for "Publication Lists" in the SFMC documentation? Publications lists are used for managing opt-ins and unsubscribes, they do not define the audience of your send. And if you don't have a specific publication list that you would like to use for a particular send, the All Subscribers list will be used. Here are more details ...


1

I compared your code with a working example from a recent implementation - From that I see a couple small things off in your code: contentType header is set differently. You needlessly stringify the payload resp.content needs to be stringified and parsed. All these things are "formal" errors, which don't apply to POSTMan, so that would be ...


0

Thanks to @Swati Mishra for your help. To whom it may interest, my final SQL to get the external keys from email triggers will look like this: SELECT DISTINCT a.VersionID as VersionID, a.JourneyID as JourneyID, a.JourneyName as JourneyName, a.VersionNumber as VersionNumber, a.JourneyStatus as JourneyStatus, b.JourneyActivityObjectID as ...


0

The _BusinessUnitUnsubscribes Data View is a very convenient source for obtaining the unsubscribe reason, but records will only appear in this data view for BUs that have the 'Subscribers will be unsubscribed from this business unit only' option enabled in Business Unit setup. As an alternative, you can extract the unsubscribe reason from the unsubscribe ...


0

There is no specific answer to your question about how impactful it would be to increase the syncing frequency from every hour to every 15 minutes. There are some official best practices that suggest you limit the number of synced fields to 250. As for the volume of the records, there is this good answer and reference that might give you an idea. Based on ...


0

You can achieve that using Simple Query and adding all your filters directly to the GET request URL: https://[your_domain].rest.marketingcloudapis.com/asset/v1/content/assets?$page=1&$pagesize=50&$filter=Content%20like%20'%20OTC%20'&$fields=AssetType,Views,Content The main filter here would be Content%20like%20'%20OTC%20', which would search for ...


0

I had the same issue and the reason it happened is because the updated email template contained new dynamic text for the First Name of the subscriber. Basically the journey needs to have such content validated first before making it live. The best way to solve this is to launch a new version of the journey, update the email template, validate and then ...


0

The platform should know the email address and will deploy accordingly. I do think you can parse the data out, but I'm not the one to ask.


2

Script activities do have timeouts. Large data volume, especially stuff like refreshing data extensions, is generally something that you want to process with SQL, not ssjs. The problem is in the general approach, looking into WSProxy will probably just change details (a few hundred / thousand records more or less until it times out). == With that disclaimer ...


1

The problem is probably with a delimiter in the Data Extract that you set up OR what delimiter Import Activity is expecting, so check those 2 places. Usually, it would be enough to use a pipe or tab delimiter to properly split the values, however, if you have a really extensive file, you can use a more "powerful" delimiter as "☺" for ...


2

You have a 401 status code in the response, which means based on documentation for handling API errors: The token was not found in the request, or it is invalid or expired. or Ensure that access token is passed in the request header. So check your Postman's variable {{access_token}} within the current environment: Are you actually receiving the token? Are ...


1

You can't create an Inbox Message, but this has been solved by a number of customers. Simply store the message you received in your own database and collate those messages with the Inbox Messages fetched from getMessages() for your display. Analytics, however, will be a different issue. Tracking the message being opened will be ignored on our platform as ...


0

Can you please let me know, if we add blackout period in Mobile connect we don't need to configure in the journey builder ? Messages would be automatically queued after the blackout period ends?


3

You need to change the content returned from CLR to a String and then JSON to dissect the info. This can be done using String()and ParseJSON()function. var resultJSON = Platform.Function.ParseJSON(String(resp.content)); Read this article https://gortonington.com/restapimethodinssjs/


1

Here's the sargable method that I typically use to get yesterday's records: select o.subscriberkey from _open o where o.eventdate >= convert(date, getDate()-1) and o.eventdate < convert(date, getDate()) and o.isunique = 1 Converting to date effectively resets time portion to midnight and using a range captures all times between midnights. Appears ...


0

You can achieve this by creating an installed package with a web app integration component, that will allow you use authorization code flow to check if a visitor of your Cloud Page is a Marketing Cloud user. If they are not already logged into Marketing Cloud upon visiting the Cloud Page, they will be redirected to the login screen and they content of the ...


-1

I would recommend you please do any of the below for 1 Subscriber Key referring multiple email addresses -- Edit the values in the All subscribers list for all the Subscriber Keys that have multiple email addresses before the send -- check for the default email address in the Contacts record Create a Salesforce DE if you wish not to edit the records in '...


2

AMPscript lookup criteria pairs only use = operators -- it doesn't handle > or <. You'll need to either loop through all of the rows and check each one with an AMPscript conditional or do as @EazyE suggested, and create columns in your DE that match 1:1 with the criteria you'll need to select the rows exactly. I usually just create a lookupKey column ...


0

MarketingCloud Mobile Push SDK v8.0.0 has been released. This release includes support for Android 12.


0

Using the Above script I'm able to raise an error and save the error values in DE: /** Consent OptIn Start **/ set @RaiseError_Flag = 'False' set @JobID = JobID set @ListID = ListID set @BatchID = _JobSubscriberBatchID set @SubID = Id set @Error_DE = 'RaiseError_SendLog_DE' set @Master_Lead_Data = 'Webinar_test' set @numRowsToReturn = 0 set @Crows = ...


2

we ran a test with chinese a while ago with similar (so far, positive) results that I can share: All of these refer to the usage of Chinese symbols: Content Builder: Email name - OK External Key of an Email - OK Content - OK Dynamic Content (Dynamic Subject) - OK DEs: name - OK external Key - OK fieldnames - OK record data - OK; a symbol has the length of ...


0

As per your comment, you are attempting to use rows.Update from child BU on a Shared DE. Shared DE location means it is treated like being located in parent. Your code does not work as you are in the wrong context (child trying to update parent). This can be done though using the "ENT." prefix. (= ENTerprise context) It's just that the function ...


1

The elements in pure %% %% without any [ ] or = are called personalization strings and are documented here: https://help.salesforce.com/s/articleView?language=en_US&type=5&id=sf.mc_es_available_personalization_strings.htm (at least for emails, this is the complete list to my knowledge. Cloudpages have at least one more called tabid). There is no ...


Top 50 recent answers are included