The Problem: When someone called our church phones, caller ID used to show up as something like "Verizon Wireless +18435551234". Not very helpful to know who was calling unless you had someone's number memorized.

The Hypothesis: We have names and phone numbers for most of our church attendees in stored Rock, so why not use that information to fill in the missing names?

The Solution: Our phone system (3CX) offers integration with several CRM products such as MS Dynamics and Salesforce. While Rock isn't on the list of officially supported products, 3CX offers software to build your own CRM profile.

I've built a basic profile that pulls in the name of who is calling. The following instructions will show how to import that profile, and how to set it up to talk with your Rock instance.

Note: This will not work with the 3CX Standard (free) license; CRM integration is only available with a Pro or Enterprise license.


In Rock:

Create an API Key
First you will need to create an API key that the phone system will use to talk to Rock.

  1. Go to Admin Tools > Security > REST Keys.
  2. Use the () button on the grid to add a new API key.
  3. Give it a name, meaningful description, and press the Generate Key button to generate a random key.
  4. Copy the generated key to your clipboard, you will need it later.
  5. Make sure to save.
Give the Key Permission to Call the People Controller
By default that key doesn't have permission to do anything. We will need to give it the minimum permissions it needs to do it's job. In this case it needs to be able to view basic information about people, so we need to give it view permissions to the people controller.
  1. Go to Admin Tools > Security > REST Controllers.
  2. Find the People controller and use the [] button to edit its security.
  3. Add your rest key to the controller's View permissions. (Search for it by name in the person picker)
  4. Make sure to save.

In the 3CX Admin Interface:

Install CRM Profile

  1. Download the profile (RockRMS.xml) using the button at the bottom of this recipe.
  2. Go to Settings > CRM Integration.
  3. Make sure you are on the Server Side tab.
  4. Use the [+ Add] button to upload the profile you downloaded earlier.
Configure Settings In 3CX
  1. If it isn't already selected, select "Rock RMS" from the top dropdown.
  2. Leave Query CRM set to "Always"
  3. Update the Rock URL field with the correct URL for your rock instance.
  4. Paste the key you copied above into the API Key field.
  5. Use the [ Test] button at the top to make sure everything is working right. Note: You will need to include the area code for it to find a result.
  6. It is supposed to auto-save, but press [OK] just to be sure.