New answers tagged

0

Like Omri Brandes already said you need to delete the %% around jobid to make it work. But there is another thing i would like to point at. You dont use RedirectTo function in your code, which i believe is another mistake in this. From Omri Brandes Code: %%=concat("https://www.xxyy.com/busca?fq=H%3A1425&utm_source=", jobid, "5430J&utm_medium=email&...


0

I have shortened the script and made some comments. Maybe this helps you but please leave a comment because i am not totally sure that i covered the aspect you wanted an solution for. %%[ /* We do not know how you set @prefcountry therefore we do not know if the empty function can be used*/ /* empty function only works reliably when you set the value with ...


3

It appears this is necessary for custom font hosting in SFMC. See here for more details: Upload custom font on Marketing Cloud Basically you cannot host a font in SFMC without including it as the base64 encoded string inside your stylesheet. Example pulled from the above listed answer: AMPscript: %%[ SET @customFont = "BlahBlahBase64String" ]%% CSS: @...


1

To set this, you need to have a recurrence set, but you can set this to 1, which is exactly what is set inside the UI version. Example SOAP: <ScheduleRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI"> <Action>start</Action> <Schedule> <!-- Can leave blank to use current schedule --> <...


2

The @ symbol is used to define the following text as a variable name in AMPscript. It sounds like Amount is inside of your sendable DE, so you would not need the @ symbol. Also since it is inline, you do not need the %%. You also have a v() wrapper, but no closing parenthesis on the end, which is throwing a syntax error. This v() wrapper is actually not ...


0

Use following soap request to remove role at business unit level: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-...


2

Yes, you can do this with the Next Keyword (see: video explanation by Eliot Harper) setting in your text messages. You can fulfill the requirements with this setting alone, but you won't shield yourself about answers different than expected. The core of a proper implementation is a text message of the Text Response template that detects if the answer was ...


0

If your target DE have SubscriberKey as primary key, you should certainly apply a partition to the result to avoid a Primary Key violation error. SELECT LinkName, SubscriberKey FROM (SELECT LinkName, c.SubscriberKey, eventdate, ROW_NUMBER() OVER (PARTITION BY c.SubscriberKey ORDER BY ...


1

You can achieve this via the REST API using the undocumented endpoint /automation/v1/automations/{{automation_object_id}}. Do a PATCH request to: YOUR_DOMAIN/automation/v1/automations/YOUR_AUTOMATION_OBJECT_ID The request's JSON payload is similar to: { "name": "AUTOMATION_NAME", "description": "DESC", "key": "YOUR_AUTOMATION_KEY", "steps": [], ...


3

Append ?dl=0&raw=1 to the end of the dropbox url and insert between your TreatAsContent and HTTPGet functions as such: %%=TreatAsContent(HTTPGet('https://www.dropbox.com/s/abcdefghijk123/my_page.html?dl=0&raw=1'))=%%


0

When you set your entry event as SF Data, then a data extension is automatically created with the selected object fields on activation. The process for calling data into an activity is the same across DE and SF entry events. The primary difference in this regard is naming convention, so it's likely you'll need to wrap any calls to retrieve those values with [...


4

You can use the @i variable and compare with the rowcount to determine whether to use a comma or an 'and'. IF @rowCount == 1 THEN outputline(concat(@AdvisorName)) ELSE IF @rowCount == @i THEN outputline(concat(" and ",@AdvisorName)) ELSE outputline(concat(", ",@AdvisorName)) ENDIF ENDIF


3

Unfortunately there is no way to gather this information as it is only present in the submit HTTP headers and after that it disappears once the processing page is closed. Unless you have some sort of pre-existing analytics around these (which it doesn't sound like you do) or you store the raw submit headers somewhere, you are out of luck. Usually in ...


4

The issue might be that the date format of the two is not matching correctly. Try using: DATEDIFF(year, CAST(creation_date__c as DATE), CAST(getdate() as DATE)) So that you cast each as identical data types, which should remove any possible data mismatch.


2

If your field creation_date__c is of the correct type, date, this should fulfil your use case: SELECT DATEDIFF(year, creation_date__c, getdate()) AS AnniversaryYears FROM DataExtensionName Result: The difference between GETDATE() and SYSDATETIMEOFFSET() is that the latter will just add the time zone, which won't be comparable to creation_date__c since it ...


2

This is my understanding and I strongly believe that there shouldn't be any method to encrypt this method by yourself, otherwise there would be a security breach for salesforce. I believe you will not be able to do it because you do not have the private encryption key and encryption method that salesforce uses to encrypt the data. Therefore you will not be ...


5

Unfortunately it is not possible to send MMS messages through Journey Builder without creating a custom activity for it. There is no (and probably will not be any) OOB functionality for it. The reason why there is barely any support for MMS-related options is because Marketing Cloud only supports sending MMS messages in the US. There is an open Idea that ...


0

As far as I know, there is no Data View available out of the box for Push Tracking. One thought of what you can do is to automate/schedule the Push Message Detail report to an FTP. And then import this to a Data Extension which you add to an Attribute Group. Then you can refer to this in your Journey. Haven't tried it out myself. But should be possible.


3

You can register a listener to be notified. See NotificationManager.NotificationMessageDisplayedListener In your application, you could set a tag (ref. Device/Contact Registration) based on the message being received or opened. That tag would be sent up with the device registration and become visible in MobilePush Demographics. It could then be used to ...


5

You should add in a decision split after your custom activity that checks whether that date is NULL in the data extension. If it is, then have a wait step (15mins - 1hr) before you rejoin the path and proceed to your wait by attribute step. This would also allow your application time to log any contacts where the insert failed and then run batch jobs to try ...


6

It is the SYSTEM_DATA Attribute Group in the DataDesigner. When you watch the All-Subscriber-Table inside marketing cloud this is the stuff where this data refers to. It is the email address that is attached to the subscriber in the marketing cloud. All e-mails where you only include a subscriberkey to send an email will result to send in this direction (...


2

Question 1 - not at this time. Most of the countries do not even support a From Name on SMS. Question 2 - partially possible: You can track responses and trigger specific events depending on the context of received message. Responses would be stored with the number it originated from - so technically you would be able to build an automation with SQL ...


2

The dynamic content blocks will always look at the sendable data extension, to which the email is sent to. So using it in a journey, will use values from the journey data extension - B. If you want to use logic based on data extension A, you need to replicate the logic behind the dynamic content in AmpScript, using LookupRows, and IF/ELSEIF logic: %%[ SET @...


2

The Data Extension that's being used for Dynamic Content is the one that you are sending too. So Dynamic Content will be based on Data Extension B, or well, Journey Data. More about Journey Data here. https://help.salesforce.com/articleView?id=mc_jb_journey_contact_data.htm&type=5 If you want to do personalization based on Data Extension A, then you ...


1

You will need to build two CloudPages. The first one, will have the unsubscribe button and your subscribers will be taken to that page from a link within the email. Upon clicking the unsubscribe button, your subscribers will be taken to the second CloudPage. On the second CloudPage, you will need to include the unsubscribe script, which can be either ...


0

If you are using Smart Capture to capture user preferences, according to the Salesforce Documentation you can set the form action to Upsert to Data Extension which will do the following: Create a new record if no record is found with the unique identifier Update a record if the record already exists with the unique identifier Please refer to the Smart ...


0

Short answer is, you can't. To be able to use a DE filter you would need to first get that date out of your json string, format it appropriately and put and into a separate DE field with Date datatype. Depending on your scenario, you could use a query or script activity in order to do this.


1

If you have the emails you want to exclude in a data extension, you can use an Exclusion Script in the Journey Builder send. ROWCOUNT(LOOKUPROWS("Exclusion_DATA_EXTENSION_NAME","EMAIL_ADDR_FIELD_NAME", EMAILADDR))>0


1

You have a syntax error on the following line: If @Startswith(@sfid, 1, 3)=='00Q' then It should be: If @Startswith =='00Q' then Refer to the AMPScript Language Elements for an understanding on how the language operates. Try this: %%[ if @rowCount < 1 then set @Startswith = Substring(@sfid, 1, 3) if @Startswith == '00Q' then set @...


0

Instead of writing %%jobid%%, remove the percentages and write only jobid like this: %%=concat("https://www.xxyy.com/busca?fq=H%3A1425&utm_source=", jobid, "5430J&utm_medium=email&utm_campaign=DESPACHO", Format(now(),"dd/MM/yyyy") )=%%" With personalization strings used within inline code declaration, you don't need to use the percentages. ...


3

As @MarkusSlabina said, you need to utilize the SOAP API, I just wanted to provide a couple sample envelopes for you to work off of: Retrieve: <RetrieveRequest> <ObjectType>DataExtension</ObjectType> <Properties>CustomerKey</Properties> <Properties>Name</Properties> &...


1

The answer is actually relatively simple. You just use the DataExtension.Retrieve function and use the filter of 'CategoryID'. See below sample: var results = DataExtension.Retrieve({Property:"CategoryID",SimpleOperator:"equals",Value:95303}); Where 95303 is the folder id. (categoryid) This will return a JSON with each of the DEs in that folder. If you ...


6

Using the SOAP API you can retrieve all data extensions older than a certain date (using a simple filter) in order to retrieve all the keys. In following calls you can delete all of these data extensions. In order to fetch all the relevant data extensions you just need to change the filter in the example request of technical article page Retrieve Data ...


2

I have had this challenge (mass updates from marketing cloud) before and could solve it with the SFSC Bulk API. Journey Builder does not leverage the bulk API, which means JB is considerably slower than the speeds you could achieve with Bulk API. I tested the JB throughput once with Campaign Members, and it was somewhere around 200 - 400 records per minute. ...


6

So Mobile lists are DEs (which you can't see in the UI) and you can query them using a query activity. With this you can query the subscriberkey into a target DE which you can leverage elsewhere. Select subscriberkey From [name of MobileConnect/MobilePush filtered list name] Other attributes are not accessible through the query activity though


0

These attributes are not designed to be a multi-value field. At least thats what i have heard from Salesforce regarding this matter plus they are purely used to activate rules. Its just conditions for rules that you can write with those. These values are used inside the rule engine to define "custom attributes". Therefore its these are values like "gender", ...


1

Try this.. SELECT s.SubscriberKey, j.EmailName, s.EventDate as SentDate, o.EventDate as OpenDate, c.EventDate as ClickDate FROM Recipients r LEFT JOIN _Sent s ON s.SubscriberKey = s.SubscriberKey LEFT JOIN _Job as j ON s.JobID = j.JobID LEFT JOIN _Open o ON s.JobID = o.JobID and s.ListID = o.ListID and s.BatchID = o....


1

As EazyE pointed out, updating all your records with JB can be very time consuming and will certainly affect your other running Journeys. To answer your question, the API calls coming from SFMC through the connector will not count towards the API Limits. Having done several hundreds of thousands of updates using Salesforce Activities, I can tell you that ...


2

You can also use the API entry. But NOTE that you may need to custom code few things in Sales cloud, compared to the SALESFORCE Data entry source method. Sales/Service cloud: By using Future class, pass the parameters to the Marketing cloud's Landing page. Make sure to include the 18-digit Contact/Lead ID. Marketing cloud Fire Entry to Journey https://...


3

It is indeed possible and very simple. You should use Salesforce Data Event in Journey Builder: A Salesforce Data Event is an action in Sales or Service Clouds, such as creating or updating an object record, injects a contact into a journey. When the primary object meets rule criteria and reference object filtering criteria, Salesforce Flows initiate a ...


3

For Salesforce Entry Events, this is a bit different and you need to add double quotes around the path/column name to the field. So for your case this should look like this: "fieldKey": "{{Event." + eventDefinitionKey + ".\"Task:Field_Name__c\"}}" which should result in: {{Event.SalesforceObjacf28b016bf83c75b4926e0ec292eda5."Task:SMS_Content__c"}} For ...


4

The code above doesn't specify a publication list at all, so it is unsubbing at the child BU level and flowing down to the publist automatically. This example will work (but will not log an unsub event). SET @ll_sub = CreateObject("Subscriber") SetObjectProperty(@ll_sub,"EmailAddress", @EmailAddress) SetObjectProperty(@ll_sub,"SubscriberKey", @...


2

This is fairly well documented in the SFMC Content Builder API documentation as @EazyE has stated in comments. Here is a quick sample of the payload for the REST call to build an asset: { "name": "NTO Welcome Series Email", "channels": { "email": true, "web": false }, "views": { "html": { "content": "<!DOCTYPE html><body&...


3

Unfortunately as it stands right now there is no way to do this utilizing the public SFMC API (neither SOAP nor REST). You, as an end user will need to utilize the UI to activate/deactivate a file drop Automation. There is an internal rest endpoint (use developer tools on your browser, click on network tab in dev tools and then toggle your automation off/on)...


3

This is covered in this help doc: Nested Tags IMPORTANT Tagging to raw files like images is unavailable until the January 2020 release.


0

I'm not sure I quiet understood what's the exact error. But I'm not familiar with the first part of your WHERE clause. Instead of writing: WHERE s.Emailname = (EmailABC,EmailXYZ) Try using the IN operator: WHERE s.Emailname IN (EmailABC,EmailXYZ) This shall do it.


2

I believe you have a problem in your script activity. As odd as it looks like, in script activities, you need to add script tags to your code and use the Platform.Load function, otherwise your code won't be executed. <script runat="server"> Platform.Load("Core", "1"); /* YOUR SSJS CODE */ </script> This shall do it.


0

You can probably create a 'flag' at the top of your email to determine which is the current version (Mother, Father, Guardian) and then from there systematically pull only the matching var through concat. Basically, one time at the top of the email you do something like: %%[ SET @Mother = AttributeValue("Mother_Email__c") SET @Father = AttributeValue("...


0

Yes, it's possible: All of the email fields can be replaced by the personalization string %%emailaddr%% which will return the email address of the recipient. You will not know which of the 3 email fields was used, so you need to perform a series of lookups to your synchronized data extension trying to return the name (of the mother, father or guardian) ...


0

A primary key is an identified Unique ID. So basically it is the definition that differentiates a record from being an 'add' or an 'update'. So when you do an overwrite without a primary key, it just adds all records into the DE, including those with the same CustomerKey, because you did not identify it as a primary key. When you change it to contain a ...


Top 50 recent answers are included