Renewal Journey - Standard
Approved for development
Summary
The Standard Renewal Journey at AANP is designed to guide members who are not on auto-renew through the process of renewing their membership. This journey includes a series of strategic email communications aimed at reminding members of their upcoming renewal, highlighting the benefits of continued membership, and providing opportunities to renew easily. The journey also addresses members who enter the grace period, offering them a final chance to renew before their membership lapses.
This journey is tailored to ensure that members receive timely and relevant reminders, with messaging that reflects their membership type and tenure with AANP. The goal is to maximize membership retention by making the renewal process as seamless as possible and emphasizing the value of staying connected with AANP.
Requirements include a few physical mailers to be sent to members. While not an email, these physical mailers are an important part of the renewal journey and should be included in the overall communication strategy. These reports should be built in Salesforce as part of this journey.
Requirements
External Users
- As a member, I should receive a renewal reminder email 50 days before my membership expiration, offering a discount and reminding me to update my profile.
- As a member, I should receive a benefits at a glance physical mailer 30 days before my membership expiration, emphasizing the benefits of renewing.
- As a member, I should receive a benefits expiring soon email 15 days before my membership expiration, emphasizing the importance of renewing.
- As a member, I should receive a last day to renew email on the day of my membership expiration, giving me a final opportunity to renew.
- As a member who has not renewed, I should receive a forgot to renew email 5 days after my membership expiration, reminding me that my grace period is active.
- As a member in the grace period, I should receive a grace period ends soon physical mailer 20 days after my membership expiration, informing me that my member benefits will soon be lost.
- As a former member, I should receive an exit survey email 35 days after my membership expiration, asking for feedback on why I chose not to renew.
Internal Users
- As an internal user, I should be able to create and schedule the renewal email journey for members, ensuring that each email is sent at the appropriate time according to the renewal schedule.
- As an internal user, I should be able to customize the content of the renewal emails based on the member's profile, including membership type and tenure with AANP.
- AI-Powered Content Recommendations: The system should provide examples of how AI can recommend specific content or messaging tailored to each member based on their past interactions (e.g., members who renew early vs. those who renew during the grace period).
- Use Case Examples: Examples of how these AI-powered recommendations can be applied to the Standard Renewal Journey should be provided, including how different messaging might influence early renewals versus last-minute renewals.
- Predictive Send Times: I should be able to implement predictive send times within the Standard Renewal Journey, ensuring that each renewal reminder email is delivered when the recipient is most likely to engage.
- Use Case Example: The system should provide examples of how predictive send times can be applied to the renewal emails, particularly for members who typically renew closer to the expiration date, and how this can increase engagement and renewal rates.
- As an internal user, I should be able to track and report on the performance of the renewal journey, including metrics like email opens, click-through rates, and renewal rates.
- As an internal user, I should be able to manage and update the renewal email templates to reflect current branding, messaging, and any changes in membership benefits.
- As an internal user, I should be able to view a member’s renewal journey status within Salesforce to provide support if needed.
- As an internal user, I should be able to collect and analyze feedback from former members through the exit survey to improve the renewal process.
- As an internal user, I should be able to generate a report of mailing addresses for use in the two physical mailers included in the renewal journey, with a user-selected start and end date and time.
- As an internal user, I should be able to log the end date of each physical mailer campaign to ensure that members receive the mailers at the appropriate time with no duplicate mailings.
Assumptions
- The renewal journey will be personalized based on the member's profile, including factors such as membership type and tenure with AANP.
- All communications will be sent according to the specified timelines to ensure a smooth renewal process.
- The content of the renewal emails will be regularly reviewed and updated to reflect any changes in AANP’s offerings or branding.
Bucket Date
Users are pushed into journey buckets to ensure anyone starting in the middle of the journey will be picked up on the next journey action.
The bucket date should be based on the Account.Membership_End_Date__c field, which should always be the same as the Membership__c.End_Date__c value.
References
- Aptify - Membership Renewal Process
- Auto-Renewal Communication Journey
- Individual Member Renewing Journey
- Renewal Drop Flow Chart
- Renewal Mailing Procedures
- Physical Mailer Report 1 - Excluding Fellows
- Physical Mailer Report 2- Fellows Only
Appendix: Summary of Emails and Physical Mailers in the Standard Renewal Journey
| Time Frame | Email/Mailer Type | Description |
|---|---|---|
| 60 Days Before Scheduled Renewal Date | Renewal Reminder (Discount Offer) | Email reminder offering a discount and reminding the member to update their profile. |
| 45 Days Before Scheduled Renewal Date | Renewal Reminder | Email reminder offering a discount and reminding the member to update their profile. |
| 45 Days Before Scheduled Renewal Date | Physical Mailer: Benefits at a Glance | Physical mailer emphasizing the benefits of renewing membership. |
| Day of Membership Expiration | Last Day to Renew Email | Final opportunity email to renew on the day of membership expiration. |
| 5 Days After Membership Expiration | Forgot to Renew Email | Email reminding the member that their grace period is active and encouraging them to renew. |
| 20 Days After Membership Expiration | Physical Mailer: Grace Period Ends Soon | Physical mailer informing the member that their grace period is about to end and benefits will be lost. |
| 50 Days After Membership Expiration | Exit Survey Email | Email asking for feedback on why the member chose not to renew their membership. |
- Overview
- 60 Days Prior
- 45 Days Prior
- Expiration Day
- 5 Days After
- 35 Days After
Current Aptify Configuration
These standard renewal emails are combined from Aptify and Real Magnet. They currently all get delivered as separate sends with a separate query for each send.
This makes things easier to control and understand.
| Name | Origin | ViewID | MessageTemplateId | Delivery Time |
|---|---|---|---|---|
| 60 days before expiration date__c | Aptify Flow | 45489 | 52 | 4:45 AM CT |
| 45 days before expiration date__c | Aptify Flow | 45490 | 53 | 4:45 AM CT |
| On the day of expiration__c | Aptify Flow | 45493 | 56 | 4:45 AM CT |
| 5 Days After Expiration | Real Magnet | RealMagnet_5DaysAfterExpiration | N/A | 6:15 AM CT |
| 35 Days After Expiration (Currently 50 Days in Aptify, Liz wants it to be 35) | Real Magnet | RealMagnet_35DaysAfterExpiration | N/A | N/A |
Process Flow: SendRenewalNotices__c
Out of Aptify, a process flow runs to deliver a collection of emails each night at 4:45 AM CT
Analysis
EXEC SpGetActiveMembershipEmailSchedules
-- To pull the actual SQL being used:
SELECT *
FROM Aptify.dbo.ViewSql
WHERE ViewId IN (
45489,45490,45493,46120,46119,46118,46117,47080
)
--To pull the actual message template being used:
SELECT ID, [Name], [Description], [Category], [Subject], TextBody, HTMLBody, FromName, FromEmail, ReplyTo
FROM Aptify.dbo.vwMessageTemplates WHERE ID IN (
52,53,26,1,27,46
)
60 Days Before Expiration
SELECT
APTIFY..vwSubscriptions.ID,
APTIFY..vwSubscriptions.Subscriber,
APTIFY..vwSubscriptions.SubscriberID,
APTIFY..vwSubscriptions.SubscriberEmail__c,
APTIFY..vwSubscriptions.Product,
APTIFY..vwSubscriptions.Purchases,
APTIFY..vwSubscriptions.StartDate,
APTIFY..vwSubscriptions.EndDate,
APTIFY..vwSubscriptions.CALC_EndDate_NoTime
FROM
APTIFY..vwSubscriptions
INNER JOIN APTIFY.dbo.vwPersons ON APTIFY.dbo.vwPersons.ID = APTIFY..vwSubscriptions.RecipientID
WHERE CAST(APTIFY..vwSubscriptions.EndDate AS DATE) = CAST(DATEADD(DAY, 60, GETDATE()) AS DATE)
AND APTIFY..vwSubscriptions.SubscriberEmail__c LIKE '%@%.%'
AND APTIFY..vwSubscriptions.AutoRenew = 0
AND APTIFY..vwSubscriptions.ProductID_IsDues = 1
AND APTIFY..vwSubscriptions.[Status] = 'Active'
AND APTIFY.dbo.vwPersons.[Status] = 1
AND APTIFY.dbo.vwPersons.RenewalEmailsExclude__AANP = 0
AND APTIFY.dbo.vwPersons.DuesPaidThru_DateOnly = CAST(DATEADD(DAY, 60, GETDATE()) AS DATE)
AND APTIFY..vwSubscriptions.SubscriberID NOT IN (
SELECT PersonID
FROM APTIFY.dbo.vwPersonFunctions
WHERE FunctionID_Name = 'Employee'
)
ORDER BY Subscriber
45 Days Before Expiration
SELECT
APTIFY..vwSubscriptions.ID,
APTIFY..vwSubscriptions.SubscriberID,
APTIFY..vwSubscriptions.Subscriber,
APTIFY..vwSubscriptions.SubscriberEmail__c,
APTIFY..vwSubscriptions.Product,
APTIFY..vwSubscriptions.Purchases,
APTIFY..vwSubscriptions.StartDate,
APTIFY..vwSubscriptions.EndDate,
APTIFY..vwSubscriptions.CALC_EndDate_NoTime
FROM
APTIFY..vwSubscriptions
INNER JOIN APTIFY.dbo.vwPersons ON APTIFY.dbo.vwPersons.ID = APTIFY..vwSubscriptions.RecipientID
WHERE CAST(APTIFY..vwSubscriptions.EndDate AS DATE) = CAST(DATEADD(DAY, 45, GETDATE()) AS DATE)
AND APTIFY..vwSubscriptions.SubscriberEmail__c LIKE '%@%.%'
AND APTIFY..vwSubscriptions.AutoRenew = 0
AND APTIFY..vwSubscriptions.ProductID_IsDues = 1
AND APTIFY..vwSubscriptions.[Status] = 'Active'
AND APTIFY.dbo.vwPersons.[Status] = 1
AND APTIFY.dbo.vwPersons.RenewalEmailsExclude__AANP = 0
AND APTIFY.dbo.vwPersons.DuesPaidThru_DateOnly = CAST(DATEADD(DAY, 45, GETDATE()) AS DATE)
AND APTIFY..vwSubscriptions.SubscriberID NOT IN (
SELECT PersonID
FROM APTIFY.dbo.vwPersonFunctions
WHERE FunctionID_Name = 'Employee'
)
ORDER BY Subscriber
Day of Expiration
SELECT
APTIFY..vwSubscriptions.ID,
APTIFY..vwSubscriptions.SubscriberID,
APTIFY..vwSubscriptions.Subscriber,
APTIFY..vwSubscriptions.SubscriberEmail__c,
APTIFY..vwSubscriptions.Product,
APTIFY..vwSubscriptions.Purchases,
APTIFY..vwSubscriptions.StartDate,
APTIFY..vwSubscriptions.EndDate,
APTIFY..vwSubscriptions.CALC_EndDate_NoTime
FROM
APTIFY..vwSubscriptions
INNER JOIN APTIFY.dbo.vwPersons ON APTIFY.dbo.vwPersons.ID = APTIFY..vwSubscriptions.RecipientID
WHERE CAST(APTIFY..vwSubscriptions.EndDate AS DATE) = CAST(GETDATE() AS DATE)
AND APTIFY..vwSubscriptions.SubscriberEmail__c LIKE '%@%.%'
AND APTIFY..vwSubscriptions.AutoRenew = 0
AND APTIFY..vwSubscriptions.ProductID_IsDues = 1
AND APTIFY..vwSubscriptions.[Status] = 'Active'
AND APTIFY.dbo.vwPersons.[Status] = 1
AND APTIFY.dbo.vwPersons.RenewalEmailsExclude__AANP = 0
AND APTIFY.dbo.vwPersons.DuesPaidThru_DateOnly = CAST(GETDATE() AS DATE)
AND APTIFY..vwSubscriptions.SubscriberID NOT IN (
SELECT PersonID
FROM APTIFY.dbo.vwPersonFunctions
WHERE FunctionID_Name = 'Employee'
)
ORDER BY Subscriber
5 Days After Expiration
SELECT
APTIFY..vwSubscriptions.ID 'SubscriptionID',
APTIFY..vwSubscriptions.SubscriberID 'ID',
APTIFY..vwSubscriptions.Subscriber 'SubscriberName',
LEFT(APTIFY..vwSubscriptions.Subscriber, charindex(' ', APTIFY..vwSubscriptions.Subscriber) - 1) AS FirstName,
APTIFY..vwSubscriptions.SubscriberEmail__c,
APTIFY..vwSubscriptions.Product,
APTIFY..vwSubscriptions.Purchases,
APTIFY..vwSubscriptions.StartDate,
APTIFY..vwSubscriptions.EndDate,
APTIFY..vwSubscriptions.CALC_EndDate_NoTime
FROM
APTIFY..vwSubscriptions
INNER JOIN APTIFY.dbo.vwPersons ON APTIFY.dbo.vwPersons.ID = APTIFY..vwSubscriptions.RecipientID
WHERE APTIFY..vwSubscriptions.SubscriberEmail__c LIKE '%@%.%'
AND APTIFY..vwSubscriptions.AutoRenew = 0
AND APTIFY..vwSubscriptions.ProductID_IsDues = 1
AND APTIFY..vwSubscriptions.[Status] = 'Active'
AND APTIFY.dbo.vwPersons.[Status] = 1
AND APTIFY.dbo.vwPersons.RenewalEmailsExclude__AANP = 0
AND ((APTIFY.dbo.vwPersons.DuesPaidThru_DateOnly = CAST(DATEADD(DAY, -5, GETDATE()) AS DATE)
AND CAST(APTIFY..vwSubscriptions.EndDate AS DATE) = CAST(DATEADD(DAY, -5, GETDATE()) AS DATE))
AND APTIFY..vwSubscriptions.SubscriberID
NOT IN (
SELECT PersonID
FROM APTIFY.dbo.vwPersonFunctions
WHERE FunctionID_Name = 'Employee'
)
AND APTIFY..vwPersons.EmailExclude = 0
AND APTIFY..vwPersons.ID NOT IN
(
SELECT PersonID
FROM AANPDB..vwEmailPreferences
WHERE Campaigner_EmailCategoryId = 8
))
35 Days After Expiration
(Currently set to 35 Days in SFMC)
SELECT
APTIFY..vwSubscriptions.ID 'SubscriptionID',
APTIFY..vwSubscriptions.SubscriberID 'ID',
APTIFY..vwSubscriptions.Subscriber 'SubscriberName',
LEFT(APTIFY..vwSubscriptions.Subscriber, chari
ndex(' ', APTIFY..vwSubscriptions.Subscriber) - 1) AS FirstName,
APTIFY..vwSubscriptions.SubscriberEmail__c,
APTIFY..vwSubscriptions.Product,
APTIFY..vwSubscriptions.Purchases,
APTIFY..vwSubscriptions.StartDate,
APTIFY..vwSubscriptions.EndDate,
APTIFY..vwSubscriptions.CALC_EndDate_NoTime
FROM
APTIFY..vwSubscriptions
INNER JOIN APTIFY.dbo.vwPersons ON APTIFY.dbo.vwPersons.ID = APTIFY..vwSubscriptions.RecipientID
WHERE APTIFY..vwSubscriptions.SubscriberEmail__c LIKE '%@%.%'
AND APTIFY..vwSubscriptions.AutoRenew = 0
AND APTIFY..vwSubscriptions.ProductID_IsDues = 1
AND APTIFY..vwSubscriptions.[Status] = 'Active'
AND APTIFY.dbo.vwPersons.[Status] = 1
AND APTIFY.dbo.vwPersons.RenewalEmailsExclude__AANP = 0
AND ((APTIFY.dbo.vwPersons.DuesPaidThru_DateOnly = CAST(DATEADD(DAY, -35, GETDATE()) AS DATE)
AND CAST(APTIFY..vwSubscriptions.EndDate AS DATE) = CAST(DATEADD(DAY, -35, GETDATE()) AS DATE))
AND APTIFY..vwSubscriptions.SubscriberID NOT IN (
SELECT PersonID
FROM APTIFY.dbo.vwPersonFunctions
WHERE FunctionID_Name = 'Employee'
)
AND APTIFY..vwPersons.EmailExclude = 0
AND APTIFY..vwPersons.ID NOT IN
(
SELECT PersonID
FROM AANPDB..vwEmailPreferences
WHERE Campaigner_EmailCategoryId = 8
))
Approvals / Signoffs
| Role | Name | Signature | Date |
|---|---|---|---|
| Technical Lead | Jeff Sikes | JS | 07/26/2024 |
| Stakeholder | Zeke Holliman | ZH | 08/16/2024 |
Revisions
| Date | Author | Changes |
|---|---|---|
| 10/14/2025 | Jeff Sikes | Updated Real Magnet and Aptify Scheduled Emails information. |