Skip to main content

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

EntityRockRMS SourceNotes
PeoplePerson tableName, email, phone, birth date, gender, status, connection status
FamiliesGroup (family type)Family name, address, members with roles (adult/child)
GroupsNon-family active Group recordsName, description, group type, parent group, members
ContributionsFinancialTransaction + FinancialTransactionDetailAmount (exact, not rounded), date, fund, batch, payment method, donor
AttendanceAttendance (DidAttend=1)Person, group, date
Prayer RequestsPrayerRequest tableText, visibility, approval status, prayer count

Migration Order

The connector always migrates in this order:

  1. People
  2. Families
  3. Groups
  4. Contributions
  5. Attendance
  6. 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

  1. Create a Client for the organization being migrated (if not already created).
  2. Click ProjectsNew Project.
  3. Select Project Type: RockRMS Import.
  4. Enter a project name (e.g., "First Baptist — RockRMS Migration 2026").
  5. Click Create Project. No Azure Storage connection is needed for RockRMS import projects.

Setup: Create a RockRMS Import Job

  1. From the project, click New Job.

  2. Select the agent that has network access to the RockRMS SQL Server.

  3. Select Job Type: rockrms_import.

  4. Configure the Source:

    FieldValue
    Connection StringSQL Server connection string (e.g., Server=192.168.1.10;Database=RockRMS;User Id=migrate_user;Password=...;TrustServerCertificate=true)
    Campus IDsLeave empty for all campuses, or enter a comma-separated list of Campus IDs to limit scope
    Date Range StartISO date (e.g., 2020-01-01) to limit contributions and attendance history. Leave empty for full history.
    Mission Org SlugThe slug of the target Mission organization (e.g., first-baptist)
    Mission API URLThe Mission API base URL (e.g., https://api.theonemission.app)
    EntitiesCheck all entity types you want to migrate
  5. 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:

  1. The job starts automatically (status: scanning, then running).
  2. 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
  3. 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:

CheckWhat It Compares
People matchRock people count vs. Mission active members (within ±5)
Financial matchRock total contribution sum vs. Mission total donations (within $0.01)
Quality score0–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:

  1. Spot-check in Mission — search for a few known families, check their groups and giving history.
  2. Verify fund names — contribution fund names are imported as-is from RockRMS. Rename them in Mission if needed.
  3. Check inactive people — RockRMS Inactive records import as Mission status inactive. RockRMS Deceased records import as former.
  4. 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.
  5. Prayer requests — Private prayer requests (IsPublic=false) import as non-public in Mission.
  6. 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.