RockRMS to Mission Migration Guide
This guide covers migrating an organization from RockRMS (an open-source church management system) to The One Mission. The One Migrate connects directly to the RockRMS SQL Server database, reads all organizational data, and imports it into Mission through the Mission integration API.
What Gets Migrated
| Entity | RockRMS Source | Notes |
|---|---|---|
| People | Person table | Name, email, phone, birth date, gender, status, connection status |
| Families | Group (family type) | Family name, address, members with roles (adult/child) |
| Groups | Non-family active Group records | Name, description, group type, parent group, members |
| Contributions | FinancialTransaction + FinancialTransactionDetail | Amount (exact, not rounded), date, fund, batch, payment method, donor |
| Attendance | Attendance (DidAttend=1) | Person, group, date |
| Prayer Requests | PrayerRequest table | Text, visibility, approval status, prayer count |
Migration Order
The connector always migrates in this order:
- People
- Families
- Groups
- Contributions
- Attendance
- Prayer Requests
This order matters: families require people to exist first; groups with members require people; contributions reference people; attendance references people and groups.
Prerequisites
Before starting a RockRMS migration:
On the RockRMS side:
- SQL Server connectivity from the Migrate agent's machine (same network, or VPN)
- A SQL Server account with read access to the RockRMS database
- Know which campus IDs to migrate (if migrating a multi-campus org by campus)
- Decide the date range for contributions and attendance (full history, or from a specific year)
On the Mission side:
- Target Mission organization must exist in The One Stack
- Mission integration key — find this in Mission → Settings → Integrations
Setup: Create a RockRMS Import Project
- Create a Client for the organization being migrated (if not already created).
- Click Projects → New Project.
- Select Project Type: RockRMS Import.
- Enter a project name (e.g., "First Baptist — RockRMS Migration 2026").
- Click Create Project. No Azure Storage connection is needed for RockRMS import projects.
Setup: Create a RockRMS Import Job
-
From the project, click New Job.
-
Select the agent that has network access to the RockRMS SQL Server.
-
Select Job Type: rockrms_import.
-
Configure the Source:
Field Value Connection String SQL Server connection string (e.g., Server=192.168.1.10;Database=RockRMS;User Id=migrate_user;Password=...;TrustServerCertificate=true)Campus IDs Leave empty for all campuses, or enter a comma-separated list of Campus IDs to limit scope Date Range Start ISO date (e.g., 2020-01-01) to limit contributions and attendance history. Leave empty for full history.Mission Org Slug The slug of the target Mission organization (e.g., first-baptist)Mission API URL The Mission API base URL (e.g., https://api.theonemission.app)Entities Check all entity types you want to migrate -
Click Create Job.
Testing the Connection
Before a full migration, test the connection from the job configuration screen. The test query reports:
- People count
- Family count
- Total contribution amount
- Group count
- Attendance count
- Prayer request count
If the test fails, verify:
- The agent can reach the SQL Server (network connectivity, firewall)
- The connection string is correct (server name, database name, credentials)
- SQL Server TCP/IP is enabled
- The SQL account has SELECT permission on the database
Running the Migration
Once the job is created and the agent is online:
- The job starts automatically (status:
scanning, thenrunning). - Progress updates per entity type — you'll see rows like:
people: 14,823 / 14,823 imported
families: 6,102 / 6,102 imported
groups: 847 / 847 imported
contributions: 89,241 / 89,450 imported (209 skipped)
attendance: 234,891 / 235,002 imported (111 errored)
prayer_requests: 2,341 / 2,341 imported - Errors per batch are logged with record IDs for investigation.
Financial Data Handling
Contributions are treated with extra care:
- Amounts are preserved exactly — no rounding, no truncation.
- The system flags (but does not skip) contributions with:
- Amount ≤ $0 — logged as a warning
- Amount ≥ $1,000,000 — flagged for manual review
- All flagged items are still imported and visible in Mission.
Post-Migration Verification
After the job completes, the system runs an automatic verification:
| Check | What It Compares |
|---|---|
| People match | Rock people count vs. Mission active members (within ±5) |
| Financial match | Rock total contribution sum vs. Mission total donations (within $0.01) |
| Quality score | 0–100% based on checks passed |
Verification results are visible on the job detail page. A 100% quality score means both people and financial totals reconcile exactly.
What to Do After Migration
After a successful migration:
- Spot-check in Mission — search for a few known families, check their groups and giving history.
- Verify fund names — contribution fund names are imported as-is from RockRMS. Rename them in Mission if needed.
- Check inactive people — RockRMS
Inactiverecords import as Mission statusinactive. RockRMSDeceasedrecords import asformer. - Groups — RockRMS system groups (family groups) are not imported as groups — they become families. Only non-family, non-system active groups with a purpose are imported.
- Prayer requests — Private prayer requests (
IsPublic=false) import as non-public in Mission. - Assign user accounts — Imported people do not have Mission user accounts. Send Mission invitations as needed.
Known Limitations
- Phone numbers: Only the first phone number per person is imported. Multiple phone types (mobile, home, work) are deduplicated in favor of the first.
- Photos: People photos are not migrated. RockRMS stores photos in binary format; manual re-upload in Mission is needed.
- Notes / attributes: Custom Rock attributes and person notes are not migrated. Only core structured fields are imported.
- Giving schedules: Recurring giving schedules in RockRMS are not migrated; only completed transactions are imported.
- Workflows: RockRMS workflows are not migrated.
- Check-in / kiosk data: Check-in attendance records are migrated; kiosk configuration is not.