The problem: You want to send customers an email that their subscription payment is coming up.
The usual solution: Set up a billing reminder loop sequence
A loop sequence runs repeatedly when triggered from a tag that is removed at the beginning of the sequence and added again at the end. With delays set correctly, a looping sequence will run indefinitely on the prescribed time frame.
1. Set up a campaign that triggers when a tag such as “Trigger Next Billing Cycle” is added.
2. Add five elements to the campaign.
a) Remove tag “Trigger Next Billing Cycle”
b) A delay of the subscription payment interval minus the number of days in advance you want to notify the customer that payment will occur. (For example, if the subscription is paid every 30 days and you want to notify them two days in advance, set the delay for 28 days.)
c) The email to be sent
d) A delay of the number of days in advance you are notifying the client
e) Add tag “Trigger Next Billing Cycle”
3. Make sure the product purchase adds the “Trigger Next Billing Cycle” tag.
Shortcomings of the usual solution:
1. The notification date approximates the billing date, but may not be precise.
2. You can’t put the date of the actual billing in the email.
3. If the date of the subscription billing is changed manually, the contact’s billing cycle campaign must be manually adjusted as well.
4. The process runs indefinitely, so if the subscription is cancelled or limited in number (a payment plan), the notification campaign must be turned off manually or via some other process.
TAG Solution: Store the “Next Billing Date” in a field on the contact record.
When the Next Billing Date is stored in a field on the contact record, you can use a field timer rather than a delay timer to send out the notification email. (Note: The field you use must be a DATE type field. It can be a custom field you create or an existing field such as Anniversary. DATE/TIME fields will NOT work.)
1. Set up a campaign that triggers when a tag such as “Trigger Next Billing Cycle” is added.
2. Add elements to the campaign.
a) Remove tag “Trigger Next Billing Cycle”
a) An HTTP Post for AnyDate to write the next billing date from the subscription to the Next Billing Date field
b) A field timer set to run the appropriate number of days before the Next Billing Date
c) The email to be sent
d) A field timer set to run the day after the Next Billing Date
e) Apply tag “Trigger Next Billing Cycle”
3. Make sure the product purchase adds the “Trigger Next Billing Cycle” tag.
This campaign uses the actual billing date on the subscription to trigger the notifications. Because the Next Billing Date is stored in a field on the contact record, you may choose to merge that date into the email. Additional PDev plugins to ActivateSubscription, DeactivateSubscription, and UpdateSubscriptionBillingDate plugins to handle changes in subscriptions and stop, restart, or change the billing notices along with the subscription dates via notes applied or other triggers.
NOTE: If customers may have more than one subscription, multiple campaigns and Advanced Merge Notation will be needed to ensure selection of the correct Next Bill Date from the correct subscription.