Динамический контент может быть использован для автоматического изменения значений дополнительных полей подписчика при отправке письма, используя метод SetSubscriberProperty.

Сигнатура метода:

SetSubscriberProperty(name, value)

Метод всегда возвращает пустую строку и может быть использован в любом месте письма. Например:

${SetSubscriberProperty('some_number', 123)}

Также возможно задавать значения дополнительных полей подписчика с учетом условий, используя стандартный синтаксис логических условий:

<if condition='SubscriberHasProperty('is_client')'>
    ${SetSubscriberProperty('is_client_and_got_email', true)}
</if>

Параметр value, может принимать любой объект, но важно присваивать значение в зависимости от типа поля. Примеры разных типов дополнительных свойств вы можете увидеть ниже.

Логические поля:

${SetSubscriberProperty('some_boolean', true)}
${SetSubscriberProperty('some_boolean', false)}

Текстовые поля:

${SetSubscriberProperty('some_text', 'foobar')}

Числовые поля:

${SetSubscriberProperty('some_number', 123)}

Финансовые поля:

${SetSubscriberProperty('some_money', 12.99)}

ВАЖНО: Знак точки (.) используется как дробный десятичный разделитель.

Поля даты и времени:

${SetSubscriberProperty('some_date', '2013-12-02')}
${SetSubscriberProperty('some_datetime', '2013-12-02 10:15:00')}
${SetSubscriberProperty('some_date', new System.DateTime(2013, 12, 2).Date)}
${SetSubscriberProperty('some_datetime', new System.DateTime(2013, 12, 2, 10, 15, 0))}

Поля выбора:

${SetSubscriberProperty('some_singleselect', 'value1')}
${SetSubscriberProperty('some_singleselect', 'value2')}

Важно: значением дополнительного поля выбора должно быть одно из предустановленных значений.

Также возможна подстановка выражений и других методов ДК с подходящим типом (используя приведение типов) в качестве аргументов:

${SetSubscriberProperty('some_number', (int)GetSubscriberProperty('some_other_number') + 123)}

Если по какой-то причине невозможно задать значения дополнительного поля подписчика (например, значение неверно, или не распознано название поля), метод ничего не будет делать. Еmail отправится как обычно, без ошибки отправки.