For most use cases, Leah Jennings's classic recipe Dynamic Email Signature for Communications is the way to go. We went a step further in order to minimize the effort (and errors) associated with staff changes across our multiple locations. We accomplished this by replacing references to specific staff with references to positions. So rather than referencing Jane Doe directly, we reference our Morris County Campus Manager and link that position to Jane in Campuses. Not only are we able to make staff updates with a couple of quick changes, but we have enabled our staff "Rock Champions" to make these changes, freeing us up to write more recipes!

The Lava Shortcodes

We wrote two Lava shortcodes which work together to abstract staff information out of our communication templates and workflows.

  1. Email Signature takes a Person Alias Guid as input and displays an email signature.
  2. Campus Information takes a campus, information type and format and returns the requested info (such as a Person Alias Guid).

Our communications templates and workflows are full of references to these shortcodes and noticeably devoid of any direct references to people.




This is where we store all of the staff specific information (once per staff member). Most of this is "out of the box" in Rock.

  • We added all campus and central job titles using in our communication templates and workflows as roles in the Campus Team group type.
  • We make sure all of these roles are defined in Campuses and kept up to date.

We moved Campuses under Tools and secured it to allow our ministry admins to make updates.

Staff Extended Attributes

We added an extended attribute section for staff to maintain their email signature headshot and title.


Note there is a difference between the Campuses role (standardized position title used across our communication template and workflows) and the position title which appears in these places. That way, if there are slight variations in position titles needed, we have that flexibility.

Use Cases

Communications Template

OK time for some use cases to see how this works in practice. We'll begin with one of our campus email templates. This one is for the Campus Pastor at our Garwood location - note how we use the Campus Information short code to populate the From Name and From Address fields.


Here are the relevant bits of the actual template.

{% assign CampusId = '6' %}
{% capture SenderGuid %}
    {[ campusInfo id:'{{ CampusId }}' type:'Campus Pastor' format:'guid' ]}
{% endcapture %}
{% capture Signature %}
    {[ emailSignature guid:'{{ SenderGuid }}' ]}
{% endcapture %}
{% capture CampusAddress %}
    {[ campusInfo id:'{{ CampusId }}' type:'campusLocation' format:'name' ]}
{% endcapture %}

This example is for a campus communications template. Our central templates look the same, except that the campus Id is set to 1.


Here we have Lava which uses the campus Id to determine the From Email address for a later Email Send action.


Wrapping Up

That's all there is to it. I've attached the code for the Lava shortcodes to this recipe. Let me know if you have any questions or I can help in any way (DM me in Rocket Chat @steve.klein). Credit for this work goes to teammate Edward Wisniewski - this was his idea and he did most of the work on it.