Usage
The Content Channel Push plugin allows new channel items to
be emailed to the group members of a specified group through a new Rock job.
Job Configuration
The job that will send the email is called ‘Send Push’. This
job has the following settings:
- Communication Template: The System Communication to use for the push.
- Content Channel: The content channel to monitor for new items to push.
- Communication Medium Determined From – This setting helps determine which medium an individual should be sent. The options are:
- Person Preference – This will use the person’s system wide communication medium preference.
- Group Member Preference – This will use the preference the person has configured specific to the group that is configured as the recipient list.
- Recipient Group: The group to send the email to.
- Save Communication: Whether the communication should be saved to be displayed on the person’s communication history.
- Only Send New Items: When enabled only items that have not yet been sent since the last send will be considered. Otherwise, all active requests will be sent.
The job expects that the Channel will have an Item Boolean
attribute with the key ‘Sent’ to help it determine which content items have
already been sent. When the job first runs it will add this attribute if it
does not exist.
Caution
Warning: If your content channel
already has items in it you will want to manually add this attribute and set
its value to ‘True’ for those previous content items you don’t want to send. Otherwise,
all the previous items will be sent in individual emails. One way to add true
to the existing items easily is to run the job once to a group with one person
in it. This will mark all the existing items as having been sent.
Notes on Medium Preference
As noted in the configuration above the medium used (SMS or
Email) can be configured by looking at a person’s system preference or their
preference within the group. If you select group member preference, you’ll need
to be sure that you provide a way for them to set this preference when they add
themselves to the group.
When creating the System Communication for use with the
plugin you’ll also want to ensure you provide templates for all the mediums you
want to support. If you do not provide a template for the SMS medium, then all
individuals will receive the update as an email. The logic of the plugin is set
to attempt to give everyone a communication even if it doesn’t match their
preference vs not sending them anything.
It should also be noted that if the person has a SMS number
that is not enabled for SMS they will instead be sent an email if they have a
valid email address.
System Communication
An example system email has been provided to help you craft
the design of the email. This is just a starting point so by all means feel
free to adjust it to your heart’s content. The template provided was designed
around the ‘Website Blog’ content channel.
The following merge objects are available for your use in
this email.
Items- The properties of the Content Channel
Items that are new. You will access these items with lava like:
{% for item in Items %} {{ item.Title }} {% endfor %}
Common properties for the item
include:
- Title
- ContentChannel
- StartDAteTime
- Content
- Attributes
{{ item | Attribute:’key’ }}
- ContentChannel – This contains information about the content channel that the items belong to. Common properties include:
- Name
- Description
- IconCssClass
- ChannelUrl
- ItemUrl
- Person – This is the full person object with all the normal properties (see merge fields on a new communication for a listing).
Sample Recipe
Since the recipient list operates as a group you have a few
options on how you get people into and out of the group.
Subscribe - Adding To A Group
The best way to get someone into a group is to place a ‘Group
Simple Register’ or ‘Group Registration’ block on an external page. These
blocks allow you to quickly and easily add someone to a group. Alternatively,
there is a block ‘Group Member Add From URL’ that allows you to add someone to
a group simply by passing in a Group ID and Person Guid.
You can also use a Workflow entry form to add a person to a
group. This is a great option if you’d also like to immediately send a welcome
email.
Unsubscribe - Removing From A Group
To unsubscribe (read remove them from the group) you could
launch a workflow from an unsubscribe link in the email (Rock v5+ required).
When you add a ‘Workflow Entry’ block to a page you can specify it to launch a
specific type of workflow. You can also pass in Workflow Attributes through the
link’s query string. For instance, you could pass in a PersonId through the
query string.
Rock also has a ‘Group Member Remove from URL’ block that
takes a Group ID and Person Guid. This block is in v5+, but you can download
and add it to your server from Github if you’re running v4. You’ll need to add
the following files:
- GroupMemberRemoveFromUrl.ascx
- GroupMemberRemoveFromUrl.ascx.cs
From:
https://github.com/SparkDevNetwork/Rock/tree/develop/RockWeb/Blocks/Groups
If you use this block, you’ll need to add an unsubscribe
link at the bottom of your email. Below is a sample of some lava for you to
use:
<a href="{{ GlobalAttribute.PublicApplicationRoot
}}page/6810?PersonGuid={{ Person.Guid }}">Unsubscribe</a>
Be sure to update the page id.
Auto-Subscribe
If you’d rather keep your
subscription list dynamic, you can always use Rock’s group Syncing features to
keep your recipient list up to date.