SFMC Tips #401 : Marketing Cloud Next: How to Configure Send Time Attributes (Send Logging Feature)
With the Winter ’27 new feature release for Marketing Cloud Next Growth & Advanced Editions, a new auditing feature called Send Time Attributes has been introduced, allowing arbitrary data to be recorded when messages are sent.
For example, after sending a campaign email, you may want to check “which coupon code was used when communicating with that customer” or “which contract a notification was sent about.”
However, customer data may be updated after a message is sent, so simply referring to the current data may not allow you to accurately confirm the values at the time of sending.
By using the newly released Send Time Attributes, you can retrieve data at the time a message is sent and store it together with the send history.
The data is stored in the Email Engagement DMO in Data 360.
Incidentally, only Sendtime Email Address has been stored in the Email Engagement DMO as part of the standard functionality of Marketing Cloud Next for a long time, so no additional configuration is required.
For those who use Marketing Cloud Engagement, it may be easier to understand this feature by thinking of it as something similar to Send Log (send logging). You can also add custom attributes to Send Log and record attribute values at the time of sending, right?
This time, I will explain how this feature works and how to configure it.
① What Are Send Time Attributes?
Send Time Attributes is a feature that stores arbitrary data retrieved when a message is sent, associating it with the send history.
An administrator defines the “attribute name” and “data type” in advance, and a marketer associates the “attribute” with a “data source field” within a flow.
When a message is actually sent, the information is stored as data at the time of sending.
- The important point is that the value is retained as it was at the time of sending.
In other words, separately from the current customer information, you can track what data was used when that message was sent.
② What Are the Use Cases?
The official help documentation introduces the following use cases.
- Insurance companies: Record the “Policy Number” to check notifications sent regarding a specific insurance policy.
- Airlines: Record the “Flight Number” to check the notification history for boarding gate changes and similar events.
- Financial and telecommunications companies: Record the “Account Number” or “Contract Number” to check the sending status of important notifications.
- Marketing departments: Record the “Coupon Code” to analyze responses to individual promotions.
The important point is that send history can be checked not only by customer but also by business identifiers such as contract numbers, order numbers, and coupon codes.
For example, if a single customer has multiple contracts, the customer ID alone may not be sufficient to determine which contract a message relates to.
By using Send Time Attributes, you can associate the “Contract Number” with the send history, making it possible to track notification status by contract afterward.
③ Enable Send Time Attributes
In Setup, search for Unified Messaging > Send Time Attributes, and turn on Enable Send Time Attributes.
Next, create and save the attributes to be recorded at the time of sending.
- Click Add Fields.
- Enter the attribute name (Send Time Attribute Name).
- Select the data type (Data Type).
- Spaces cannot be used in attribute names, and attribute names are case-sensitive.
- The only supported data types are Text and Number.
In addition, Send Time Attributes allows a maximum of 50 fields to be defined per account across all channels and business units.
You can also import multiple attributes together using a CSV file instead of creating fields one by one.
- From Import From File on the screen, you can download a CSV template, configure the attribute names and data types, and import them.
④ Associate Attributes with Data Sources in a Flow
Simply creating Send Time Attributes does not cause values to be retrieved at the time of sending.
To actually record values, you need to associate the target attributes with data sources in each message-sending element of the flow.
Send Time Attributes can be used with the following message-sending elements.
- Send Email Message
- Send SMS Message
- Send WhatsApp Message
- Send RCS Message
Configuration Method
Here is the example used this time.
- Airlines: Record the “Flight Number” to check the history of notifications such as boarding gate changes.
Suppose there is a Flight Booking object that stores “flight gate change history” as shown below, and this time we contact customers associated with Flight Number (NH456). We will check whether the information at that time can be recorded.
I created the following four Send Time Attributes.
- BookingNumber (Text)
- FlightNumber (Text)
- PreviousGate (Text)
- CurrentGate (Text)
For this type of use case, a Broadcast Flow is used. Prepare a Dynamic Segment with a condition using the variable Flight Number Is Equal To {!flightNumber}.
Next, it is a good idea to create the email in advance. Since we will send the flight booking customers information equivalent to what will later be stored in Send Time Attributes, prepare the necessary insertions using Content Variables in the email body.
Once the email is ready, start creating the Broadcast Flow. In Set Segment Filters in the Start element, create a resource to receive the Flight Number sent from the API.
These settings are part of the standard Broadcast Flow configuration, so if you are interested, please refer to the following article.
Next, using the Get Records element, I added processing to retrieve the relevant flight (NH456 in this case) from the Flight Booking object mentioned earlier.
Finally, in the email message element, since the record information has already been retrieved by the Get Records element, first pass that information to the email.
And this is the key point this time. By enabling the Set Segment Filters feature, Send Time Attributes appears around the area below STO, so assign values from the Get Records element there as well.
This completes the configuration. When the flow sends an email, the values from the target data source are retrieved and recorded in the send history.
Get Nobuyuki Watanabe @marketingcloudtips’s stories in your inbox
Join Medium for free to get updates from this writer.
It is also possible to associate different data sources with different Send Time Attributes within the same flow.
Incidentally, even if a data source is not explicitly associated, if a field with the same name as a Send Time Attribute exists in the data source, an automatic association is reportedly attempted, although I have not tested this.
Also, this automatic matching is reportedly case-insensitive.
If no matching field is found, that attribute is not included at the time of sending.
Although the functionality described above is available, I think it is easier to understand if the association with the data source is explicitly configured in actual operations, to prevent unintended fields from being referenced.
Now, let’s trigger the Broadcast Flow. The request body is as follows.
{
"inputs": [
{
"flightNumber": "NH456"
}
]
}Let’s also check the email that was received.
⑤ Use the Recorded Data in Reports
Values recorded by Send Time Attributes are flexibly managed as a JSON string.
When I checked the value of the corresponding Email Engagement DMO in Data Explorer, it was stored as follows.
{"BookingNumber":"BK-002","FlightNumber":"NH456","PreviousGate":"C05","CurrentGate":"D08"}While JSON provides flexible data management, using the stored values in reports requires processing to extract the necessary attributes from the JSON data and convert them into a column-based format.
Salesforce’s official help documentation recommends using Batch Data Transform in Data 360 for this purpose.
From Download Schema on the Send Time Attributes setup screen, you can download a JSON schema file that defines the structure of the attributes. By using this file with Flatten JSON in Batch Data Transform, you can extract the attributes contained in the JSON string as individual fields.
Note that what you obtain from Download Schema is not the send history itself, but a schema file used to parse the JSON.
{
"type": "object",
"properties": {
"BookingNumber": {
"type": "string"
},
"CurrentGate": {
"type": "string"
},
"FlightNumber": {
"type": "string"
},
"PreviousGate": {
"type": "string"
}
}
}By using this mechanism, it is possible to analyze business data together with send results, such as aggregating send results by coupon code.
The analysis method is explained in the following article.
⑥ Considerations
There are several points to keep in mind when using Send Time Attributes.
- Maximum of 50 fields: Up to 50 fields can be defined in total across all channels and business units.
- Duplicate attribute names are not allowed: Defined attribute names must be unique and are case-sensitive.
- Automatic field name matching: If a data source is not specified, fields with the same name are automatically searched for. This matching is case-insensitive.
- Settings in activated flows: Even if a Send Time Attribute is deleted after a flow has been activated, the settings stored in the flow are not automatically deleted. The settings are retained until the flow is deactivated.
- Past send history: Even if a Send Time Attribute is deleted, the attribute values already recorded for completed sends are not deleted.
In particular, it is important to be aware that even if a Send Time Attribute definition is deleted, the values remaining in past send history are not deleted.
They remain in the Send Time Attributes field of the Email Engagement DMO in Data 360, where the data is stored. After all, historical engagement data is not something that gets updated in the first place.
When storing customer information, contract numbers, or similar data, it is also necessary to consider how the information will be handled and what access permissions should be granted in advance.
Also, Send Time Attributes is a feature for recording attribute values at the time of sending, not a feature for storing the email body itself.
Tracking the values recorded at the time of sending, checking the actual content of the message sent, and confirming successful delivery must each be considered separately.
⑦ Assign Attributes by Business Unit
In organizations that use business units, created Send Time Attributes can be assigned to specific business units or to all business units.
When Assigning to All Business Units
- Open Channel Configuration from Setup.
- Click Assign under Send Time Attributes Assigned to All Business Units.
- Select the attributes to assign.
- Confirm by clicking Next and Done.
When Assigning to Specific Business Units
- Open Business Units from Setup.
- Select the target Business Unit.
- Select Send Time Attributes.
- Assign the required attributes using Assign.
For example, it is possible to manage different attributes for each business unit, such as recording “Policy Number” for an insurance business and “Coupon Code” for an e-commerce business.
Conclusion
In Marketing Cloud Engagement, there was a mechanism for recording arbitrary data at the time of sending by using a Send Log DE.
The new Send Time Attributes feature is based on a similar concept and makes it possible to retain business identifiers that cannot be fully tracked through standard send history alone, as data associated with the time a message was sent.
On the other hand, using the recorded information in reports requires additional preparation, such as converting JSON data.
That’s all for this time.
Stay tuned for more Salesforce Marketing Cloud tips! 😎
Nobuyuki Watanabe
https://www.linkedin.com/in/nobuyuki-watanabe/ (+Follow me)



