We are going to use Rock's giving data to identify people who are
  1. Giving at least once a month for the past 3 months
  2. Don't have an active Recurring Giving profile setup in Rock (FinancialScheduledTransaction)

UPFRONT WARNINGS

  1. If your church has people set up recurring giving in a system that doesn't sync the recurring giving profile to Rock this recipe will email people who do have recurring setup, just Rock doesn't know about it. If your giving happens through a Rock Financial Gateway, it probably does sync recurring profiles.

  2. $50 Rock plugin required to make this work. It's a great plugin that you should buy anyway, but you should know in advance you'll need BlueBox Moon Data TookKit plugin from the Rock Shop to get this working

Steps

  1. Add a new System Email called "Setup Recurring Giving"
  2. Install BlueBox Moon Data Toolkit Plugin
  3. Create a new DataView and paste the SQL
  4. Use GroupSync to combine the DataView and the System Email

Add a new System Email called "How to set up recurring giving"

Here's the Template:

Subject: Set up recurring giving at {{ 'Global' | Attribute:'OrganizationName' }}

{{ 'Global' | Attribute:'EmailHeader' }}

<p>Did you know you can set up a recurring giving to the church? You choose an amount, a card or bank account, and a schedule and the computer does the rest until you login to edit or cancel your recurring gift!</p>

<p>Reasons people choose recurring giving:</p>

<ol>
    <li>It saves time</li>
    <li>It eliminates forgetfulness</li>
    <li>It builds regular giving into your life</li>
</ol>

<p>To setup recurring giving, go to <a href="{{ 'Global' | Attribute:'PublicApplicationRoot' }}/give">{{ 'Global' | Attribute:'PublicApplicationRoot' }}the Give page</a>, start a new gift, click Setup Recurring or Monthly, and complete the gift.</p>

{{ 'Global' | Attribute:'EmailFooter' }}

So I've supplied some default text, but you should customize this. Especially check that the link is going to go to the place where a giver can setup recurring giving. Get as specific as possible and lay out the steps. This is the whole point of the recipe!!!-- that you make it as clear and well described how to set up recurring giving.

Install BlueBox Moon Data Toolkit Plugin

Watch Screencast on installing Blue Box Moon Data Toolkit

  1. Admin Tools -> Rock Shop
  2. View by Category -> General
  3. Search the page for "Data Toolkit"

You are going to love this plugin. It does more than just add SQL to DataViews.

Create a new DataView and paste the SQL

  1. Name the DataView, probably something like "Regular givers without recurring giving"
  2. Choose a category, probably Finance
  3. Create a new DataView, Applies to Person, Filter Type -> dropdown -> look for Blue Box Moon Data Toolkit SQL Query
  4. Paste the SQL in the new SQL Query text box
  5. Click Add Filter -> Filter Type -> Person Fields -> Email Preference = Email Allowed
  6. Click Add Filter -> Filter Type -> Person Fields -> Age Classification = Adult
  7. Save
DECLARE @Today DATETIME
SET @Today = GETDATE()

SELECT
LastMonthGivers.PersonId
FROM (
  SELECT
    pa.PersonId
  FROM FinancialTransaction [t]
  INNER JOIN PersonAlias [pa]
    ON t.AuthorizedPersonAliasId = pa.Id
  WHERE t.TransactionDateTime > DATEADD(DAY, 1, EOMONTH(@today,-2))
    AND t.TransactionDateTime < DATEADD(DAY, 1, EOMONTH(@today,-1))
    AND t.TransactionTypeValueId != 54
  GROUP BY
    pa.PersonId
) [LastMonthGivers]
LEFT JOIN (
  SELECT
    pa.PersonId
  FROM FinancialTransaction [t]
  INNER JOIN PersonAlias [pa]
    ON t.AuthorizedPersonAliasId = pa.Id
  WHERE t.TransactionDateTime > DATEADD(DAY, 1, EOMONTH(@today,-3))
    AND t.TransactionDateTime < DATEADD(DAY, 1, EOMONTH(@today,-2))
    AND t.TransactionTypeValueId != 54
  GROUP BY
    pa.PersonId
) [TwoMonthsAgoGivers]
  ON TwoMonthsAgoGivers.PersonId = LastMonthGivers.PersonId
LEFT JOIN (
  SELECT
    pa.PersonId
  FROM FinancialTransaction [t]
  INNER JOIN PersonAlias [pa]
    ON t.AuthorizedPersonAliasId = pa.Id
  WHERE t.TransactionDateTime > DATEADD(DAY, 1, EOMONTH(@today,-4))
    AND t.TransactionDateTime < DATEADD(DAY, 1, EOMONTH(@today,-3))
    AND t.TransactionTypeValueId != 54
  GROUP BY
    pa.PersonId
) [ThreeMonthsAgoGivers]
  ON ThreeMonthsAgoGivers.PersonId = LastMonthGivers.PersonId
LEFT JOIN (
  SELECT
    pa.PersonId
  FROM FinancialScheduledTransaction [fst]
  INNER JOIN PersonAlias [pa]
     ON fst.AuthorizedPersonAliasId = pa.Id
  GROUP BY
    pa.PersonId
) [RecurringGivers]
  ON RecurringGivers.PersonId = LastMonthGivers.PersonId
WHERE TwoMonthsAgoGivers.PersonId IS NOT NULL
  AND ThreeMonthsAgoGivers.PersonId IS NOT NULL
  AND RecurringGivers.PersonId IS NULL



Watch Screencast on creating a DataView using SQL

Use GroupSync to combine the DataView and the System Email

There's like 4 more steps that I cover in a separate Recipe:

Recipe to setup GroupSync

BEFORE YOU FINISH THE TUTORIAL

Don't just hookup the real DataView to the System Email without testing things. You could email 100's of people!

How to test this

  1. Review the DataClip we made and browse the names. Does that look like the right data?
  2. Create a GroupSync group for testing this that's not the full DataView. Make a DataView of just you, or you and a few staff. Then make a Group that GroupSync's off that Dataview sending the email as the welcome email. Did you get the email? Does it look good? Do you like the copy?
  3. To force the email to go out quickly (like for testing), go to Admin Tools -> System Settings -> Jobs Administration, find the Group Sync job and run it.

Other Notes

The SQL query excludes all givers who have set up a recurring profile, even if they've cancelled it. The logic is that if the Person has ever set up recurring they are already aware of how recurring giving works.