Skip to main content
Featured group

* Marketing Cloud Engagement *

Welcome! This group is dedicated to your success with Salesforce Marketing Cloud Engagement. Join the conversation here to stay up to date on the product, learn best practices, and everything in between. Use this group to review resources, ask questions, help each other, and share experiences. --------------------------------------- This group is maintained and moderated by Salesforce employees. The content received in this group falls under the official Forward-Looking Statement: http://investor.salesforce.com/about-us/investor/forward-looking-statements/default.aspx

I'm trying to extract all MobilePush Opt-In contacts from SFMC.

This query works:

 

SQL

SELECT

 _ContactID AS ContactID,

 _DeviceID AS DeviceID,

 _Platform AS Platform,

 _OptInStatusID AS OptInStatusID

FROM _PushAddress

WHERE _OptInStatusID = 2 

 

However, _PushAddress only exposes ContactID.

 

In Contact Builder > All Contacts > Mobile Opt-In I can see both:

ContactKey

DeviceID

 

Using the same DeviceID in _PushAddress, I can retrieve:

ContactID

DeviceID

 

So SFMC clearly knows: ContactKey <-> DeviceID <-> ContactID

 

I've already tried:

SQL

_PushAddress._ContactID = _Subscribers.SubscriberID

``

SQL

_PushAddress -> _MobileAddress -> _SMSSubscriptionLog

and all joins return 0 rows.

 

Is there any SQL-accessible Data View that maps MobilePush ContactID to ContactKey / SubscriberKey? Or has anyone successfully extracted all MobilePush Opt-In ContactKeys via SQL?

0/9000

*** Important Security Update: Enforcement of IP Allowlisting in Marketing Cloud Engagement on September 23, 2026 ****** Important Security Update: Enforcement of IP Allowlisting in Marketing Cloud Engagement on September 23, 2026 ***As part of our commitment to strengthening the default security of the Marketing ClAs part of our commitment to strengthening the default security of the Marketing Cloud Engagement platform, Salesforce is requiring the use of the login IP allowlist in blocking mode for all accounts. We have identified that your instance doesn't use the login IP allowlist in blocking mode. On September 23, 2026, we will enable it on your behalf.

 

Next Steps & Timeline

To help minimize potential disruption, we reviewed your recent login activity and compiled a list of recommended baseline IP addresses to include on your login IP allowlist. On September 23, 2026, we will enable blocking mode for your instance. After this date, users can log in to your Marketing Cloud Engagement account from an IP address on the allowlist.

 

Configuration Impact and Customer Responsibility

No action is required before September 23, 2026. To ensure your configuration is applied correctly, we recommend waiting until after September 23, 2026, before making any changes to your login IP allowlist settings. If you have any concerns, contact Salesforce Support.

 

After September 23, 2026, you are responsible for reviewing and maintaining your login IP allowlist. Monitor your login IP allowlist access logs on an ongoing basis to identify new IP ranges to add.  See View the Access Log, Add IP Addresses to the Allowlist, and Edit an IP Range.

 

When we enable blocking mode in your account, you can expect these changes:

  • We will apply a Salesforce-recommended baseline IP list consisting of standard /24 (256 address) IP ranges. These ranges are based on IPs observed to successfully authenticate to your instance over the last six months, excluding known malicious IPs.
  • "Log Violations and Deny Access" (blocking) mode will be enabled at the EID level for both UI Login and API access, with the IP ranges uniformly applied to all Business Units (BUs).

Resources

#Marketing Cloud Engagement #Marketing Cloud

 

 

13 comments
  1. Today, 1:46 PM

    IP Allowlisting would continue in cohort wise manner, with final enforcement in January. Customers will be notified via email when an enforcement date has been set for their instance to enable blocking mode.

0/9000

Hi All,

Hope you are doing well.

Could you please help with the below requirement? 

 

Requirement:-

 

 We have multiple campaigns where the audience is segmented into:

  • Control Group (does not receive email/SMS)
  • Non-Control Group (receives email/SMS)

Currently, only the Non-Control Group data is updated in the Send Log, while the Control Group data is not. However, the client requires that Control Group data also be captured in the Send Log.

In the Journey, we are using a Random Split to divide the audience into 90% Non-Control Group and 10% Control Group. At the same time, we are updating the source data by marking the ControlGroup field as true

 using an Update Contact activity. 

 

Ask: 

We need a way to include Control Group data in the Send Log Data Extension across all campaigns.

 

Thanks, 

 VNR

2 answers
  1. Yesterday, 6:33 AM

    @Nagaraju Vadlamudi

    Sendlog DE will only show or add records when a send has occurred. 

    It is not recommended to update Sendlog DE in any other way. (i.e. using SQL, import etc) 

    As you already have the ControlGroup "true" in the source DE, you can apply a filter and run it via automation to review the Control Group audience.  

    Additionally, as you have highlighted that you are using "Random Split" in Journey for 10% control group exclusion, I assume that the number of records being processed is >1000, otherwise Random Split may work unexpectedly. See this article for better understanding -

    https://help.salesforce.com/s/articleView?id=000386619&type=1

0/9000
3 answers
  1. Sep 29, 5:26 AM

    Hi @Ajith M S

     

    Most of these are read-only helpers that sit on top of the SFMC UI, so they're low-risk to try. 

    Navigation and discovery 

    • SFMC Companion lets you click through Automations, Queries, Data Extensions and more to see where they're saved and what uses them. For example, clicking a Data Extension shows which Queries target it and which reference it in their code. It's the most useful one for untangling an unfamiliar account. Chrome Web Store
    • DESelect Search in SFMC is a free extension for finding things that native search handles poorly. Native search only scans one selected folder at a time. It can search across business units or just your current one. The listing carries a note that because of recent Google security updates, it only works if the AppExchange version is already installed, so check that before relying on it. DESelect Search in Salesforce Marketing Cloud - Chrome Web Store +2
    • SFMC Scout (recommended in the Trailblazer thread) gives you a side-panel search across Data Extensions, Automations, Journeys, Emails and Content Builder assets.

    Development and debugging

     

     

    • SFMC Inspector (from the thread) covers Data Extension exploration, automation-to-DE mapping, Journey discovery and SQL linting.
    • SFMC Dev Studio (from the thread) adds AMPscript/SSJS syntax highlighting, linting, snippets and function references.
    • SFMC IntelliType offers AI-powered code completions, snippet management, and contextual assistance for AMPscript, SSJS and SQL. It also includes Data Extension tools for finding and opening a Data Extension quickly without any API configuration. Chrome Web Store Chrome Web Store
    • Marketing Cloud  Developer Tools is a DevTools panel. Its features include exposing Publication List IDs and Journey Builder activity keys, showing Data Extension and Journey details, and surfacing more detailed error messages. One reviewer said it doesn't work in their org and another said it's hard to read in dark mode, so test it in your own account. Extpose

    Journey Builder and day-to-day admin

     

     

    • MCX (Marketing Cloud eXtension) covers a lot. It can compare Journey versions and Data Extension configurations side by side, map object relationships visually, and send push notifications directly from Journey Builder. Chrome Web Store
    • SFMC Automation Viewer lets you view automation details without pausing active automations. That's handy for checking a live automation. Chrome Web Store
    • There's also a Journey Builder email-preview extension that sends previews for every email in a journey at once. I only saw it in Chrome Web Store related-listing snippets, so I don't have its exact name.

    Things to check before rolling these out

     

     

    • Some of these are small third-party tools, and they act with your logged-in SFMC session. Companion notes it's limited by the Marketing Cloud user's roles and permissions, but check each one's requested permissions and privacy disclosures. That matters most on client or production accounts, where you should get sign-off first. Chrome Web Store
    • Several of these overlap (Companion, Scout and DESelect all do search), so one or two are usually enough.
    • Some listings are old, so confirm each is still maintained before depending on it.
    • For serious AMPscript/SSJS work, the Trailblazer answer also suggests Salesforce's AMPscript extension for VS Code. That gives you local development instead of coding in the browser.

     I hope you find the above information helpful. If it does, please mark it as Best Answer to help others too.

0/9000

Hello experts! 

 

I have a question about WhatsApp Chat Messaging subscribers in Salesforce Marketing Cloud. 

 

We have integrated WhatsApp in SFMC to send promotional WhatsApp messages from Journey Builder. We are also using Data Cloud, where we created a segment with opted-in clients and activated/exposed it as a Data Extension in Marketing Cloud. 

 

To make these contacts available for WhatsApp sends, we created an Automated Import Definition to subscribe the opted-in contacts to our WhatsApp Chat Messaging channel, following this article: https://help.salesforce.com/s/articleView?id=000396825&type=1

 

 

During testing, we noticed that a contact subscribed through the Automated Import Definition can receive WhatsApp messages successfully, but after some time it seems that the contact may need to be imported/subscribed again to receive later WhatsApp messages. 

 

My questions are:

  1. Does a WhatsApp Chat Messaging subscription created through an Automated Import Definition expire or need to be refreshed periodically?
  2. Is it enough to import/subscribe each opted-in contact only once?
  3. Or is it recommended to run the import automation regularly, for example before each campaign or every few hours?

Thank you!

1 answer
  1. Sep 29, 7:28 AM

    Hi Rebeca!

    I wouldn’t assume the WhatsApp Chat Messaging subscription itself expires just because it was created through an Automated Import Definition. The important distinction is between the channel subscription/opt-in status and whether the contact is still eligible and available for the send.

    If contacts are successfully receiving messages initially but later stop receiving them, I’d check the subscriber’s current WhatsApp subscription status, opt-in/consent data, and whether the Data Cloud segment/activation is still including the contact.

    For the automation, running the import regularly can be useful to keep the WhatsApp audience synchronized with your latest opted-in population, especially when opt-in/opt-out status can change. However, I’d avoid re-subscribing everyone blindly; make sure the source data represents the current consent state.

    If you can share what changes in the contact’s WhatsApp subscription status when the later send fails, that would help determine whether this is an expiration issue, consent change, or audience/synchronization issue.

0/9000

Hello, 

 

I’m currently working with an Installed Package in Marketing Cloud Engagement (MCE) for our On24 integration, and I’ve run into an issue with an expired staged secret. 

 

I’m trying to rotate/update the client secret, but On24 does not appear to have any documentation on how this process should be handled. Additionally, their support team hasn’t been able to clarify where or how the updated secret should be provided on their side. 

 

Has anyone managed this integration and can provide guidance on:

  • Where/how the updated credentials should be applied within ON24?

Any help or direction would be greatly appreciated.

Thank you!

2 answers
0/9000

Since DM Multi-variations content blocks doesn't allow multi-select picklists, I'm trying to use a DM Phrase Content Block in my template to allow SF users to multi-select phrase options and then based off that, show larger text content.  

 

Has anyone worked with a similar scenario and found a solution/work around? 

 

 

1 answer
  1. Sep 29, 5:57 AM

    Hi Jackie!

    Yes, this can be handled with the Distributed Marketing Phrases Block, but there is an important limitation: the Phrases Block lets the business user select phrases, with up to 12 phrases per block, but it isn't designed as a true multi-select field. 

     

    For your use case, one workaround would be to use multiple phrase selections as inputs and then use AMPscript to determine which larger content sections should be rendered based on those selections. Distributed Marketing supports AMPscript for creating personalized content. 

     

    If the requirement is specifically β€œselect multiple predefined options and combine the corresponding content”, I’d probably avoid trying to force the standard Multivariate Block to do it, since that block is designed around selecting a value/variation rather than a multi-select combination. 

     

    If you share an example such as Options A + C selected β†’ show Content A + Content C, I can suggest an AMPscript structure for the template. 

0/9000

Hello,

We are currently dealing with a massive wave of AI bot and scraper traffic (GPTBot, ClaudeBot, Bytespider, curl, etc.) hitting our standard CloudPagesβ€”experiencing around 20 million hits recently. Because these requests load successfully and return a standard 200 OK, they are rapidly consuming our Super Message budget. We are actively working on mitigation strategies, but our infrastructure has a mixed setup, which brings up a few challenges:

  1. Self-Hosted Domains For our self-hosted domains, we know the best practice is to handle this at the edge. We are looking to configure WAF rules via Cloudflare to drop or challenge these malicious IPs and User-Agents before they even reach ExactTarget servers.
  2. Delegated Domains For domains fully delegated to Salesforce, SF controls the DNS and the edge routing. This means we cannot simply put our own Cloudflare/WAF in front of it to drop the traffic.
  3. Our Current Internal Workaround using SSJS While we figure out the network-level blocks, we’ve implemented a pure SSJS script on Line 1 of our CloudPages. It reads the User-Agent and, if it matches our bot blacklist, we immediately trigger Platform.Function.RaiseError to abort the page and throw a 500 Internal Server Error. According to official documentation, since it doesn't return a 200 OK, it shouldn't count as a billable CloudPage impression (we are waiting for SF Support to definitively confirm this).

My questions for the community:

Delegated Domains Protection: Has anyone successfully requested Salesforce Support to implement custom WAF rules (IP or User-Agent blocking) for a specific tenant on delegated domains? Billing: Can anyone confirm from their own billing reports if the RaiseError (500 status) workaround successfully prevents the Super Message consumption in practice? Are there any other native SFMC settings or alternative architectures we should consider to protect delegated domains from this aggressive scraping?

Thanks in advance for any insights!

1 answer
  1. Sep 28, 5:44 PM

    Hi Andreea!

    There is actually a recent Salesforce guidance specifically covering LLM crawler/bot traffic and CloudPages billing, so your approach is aligned with the documented mitigation strategy.

    Salesforce confirms that a CloudPages impression is counted when the request returns HTTP 200, including successful requests from bots/crawlers. A non-200 response therefore avoids that CloudPages impression charge.

    Salesforce also documents an SSJS-based approach to detect known bot User-Agents and terminate the request before a successful page response. The guidance specifically recommends putting the check at the beginning of the page.

    For your three questions:

    • Delegated domains: CloudPages doesn't provide native IP restrictions or authentication. If the domain is fully delegated to Salesforce, you don't have the same edge-WAF control as you would when your own DNS/CDN sits in front of the page.
    • RaiseError/500: Salesforce's billing documentation states that successful 200 OK requests are CloudPages impressions. So a request terminated with a 500 should not be counted as a CloudPages impression, but I'd still have Support confirm the behavior against your specific account/billing report.
    • Alternative architecture: Salesforce's current guidance also suggests using Code Resources for endpoints that don't need to render a normal landing page. Code Resources do not consume Super Messages, which can be useful for processing/API-style endpoints.

    For self-hosted domains, blocking the traffic at Cloudflare/Akamai/AWS WAF before it reaches Salesforce is still preferable because it prevents the request from reaching the CloudPages infrastructure in the first place.

0/9000

I'm currently trying to get a data extension to fill with all subscribers unsubscribe fields: 

 

Unsubscribe Date

Unsubscribe Reason

 

 

- but ive been told that its not possible to retrieve. I was also told that those two fields are custom and have been added to my all subscribers list.  

 

I didnt set up the account so i dont have knowledge on what they did but does anyone have any insight or examples of how to get this information. im using it to enrich our crm so our reps can see if people have complained or unsubscribed.

2 answers
  1. Sep 27, 9:12 AM

    Hi @A M, BusinessUnitUnsubscribes data view has both Unsub reason and date. Pls check if your subscriber data is being updated by automation configured in Parent BU.

0/9000

πŸ“² Added the most requested article - @* Marketing Cloud Engagement * MobilePush Data Views (and the other sources for Push analytics): https://mateuszdabrowski.pl/docs/salesforce/marketing-cloud-engagement/config/mobile-push-data-views/

 

Inside, you can find everything you can expect based on my Email and SMS Data Views articles (the latter also updated with SMS Send Log details): 

πŸ”΅ Undocumented _PushAddress and _PushTag fields, picklists, SQL query and hints 

🟠 Explanation of how Push data differs from Email and SMS data 

πŸ”΄ How to get the missing Send and Engagement data (along with hard blockers that only Salesforce can fix) 

 

More MCE Data & SQL fun coming soon :)

0/9000