> ## Documentation Index
> Fetch the complete documentation index at: https://rollout.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Why Rollout

> Build vs. buy analysis and common use cases for Rollout's universal API.

## The Integration Challenge

Real estate and mortgage software companies share a common bottleneck: integrations.

Your customers expect your product to work with their existing tools — their CRM, their transaction management system, their email. But each integration requires:

* Understanding proprietary APIs and auth flows
* Building and maintaining normalized data models
* Handling rate limits, retries, and error edge cases
* Monitoring for upstream API changes
* Supporting users through auth issues
* Securing test/sandbox access from each provider, often via one-by-one partnerships

**The math doesn't work.** If you have 100 customers using 10 different CRMs/TMS/LOS tools, you need 10 separate integrations. Each one takes 2-4 weeks to build and requires ongoing maintenance, and partnership-based access can stretch full coverage well beyond a year.

## Build vs. Buy Analysis

<Tabs>
  <Tab title="Build It Yourself">
    **Initial build cost (per integration):**

    * 2-4 weeks of engineering time
    * OAuth implementation and token management
    * Data model normalization plus system-specific CRM/TMS/LOS schema mapping
    * Error handling and retry logic
    * Provider-by-provider test account and partnership process
    * Documentation and testing

    **Ongoing maintenance:**

    * API version migrations
    * Auth flow changes
    * Schema updates
    * Bug fixes and monitoring
    * Support escalations

    **For 10 integrations:**

    * 20-40 weeks of initial build
    * 0.5-1 FTE of ongoing maintenance
    * Each new integration request: 2-4 weeks
    * Access onboarding overhead across partners can extend roadmap timelines beyond a year
  </Tab>

  <Tab title="Use Rollout">
    **Initial build cost:**

    * 1-2 days to integrate Rollout
    * One auth flow (JWT + Rollout Link)
    * One data model (Universal API)
    * One webhook format
    * Access to endpoints that are not typically available through public APIs

    **Ongoing maintenance:**

    * Zero — Rollout handles upstream changes
    * New integrations: enable in dashboard

    **For 10 integrations:**

    * Same 1-2 days
    * No additional maintenance
    * Each new integration request: minutes
  </Tab>
</Tabs>

## Common Use Cases

### 1. Contact Sync

**Problem:** Your users want their CRM contacts in your app without manual import.

**Solution:** Use Rollout to read contacts from any supported CRM and sync them continuously.

```javascript theme={null}
// One API call works for Follow Up Boss, Lofty, CINC, etc.
const contacts = await rollout.crm.people.list({
  credentialId: user.crmCredentialId
});
```

**Features:**

* Initial sync pulls historical contacts
* Webhooks notify you of new/updated contacts in real-time
* Two-way sync: write contacts back to the CRM

### 2. Transaction Data Import

**Problem:** You need transaction data from SkySlope, Dotloop, or other TMS platforms.

**Solution:** Rollout's TMS API provides normalized access to transactions, parties, and documents.

```javascript theme={null}
// Works across all supported TMS platforms
const transactions = await rollout.tms.transactions.list({
  credentialId: user.tmsCredentialId,
  status: 'active'
});
```

**Features:**

* Access transaction details, addresses, dates, parties
* Document metadata and download URLs
* Task and checklist status

### 3. Activity Logging

**Problem:** Your app generates activities that should appear in the user's CRM.

**Solution:** Write notes, tasks, and activities back to any CRM through a single API.

```javascript theme={null}
// Log an activity to any CRM
await rollout.crm.notes.create({
  credentialId: user.crmCredentialId,
  personId: contact.id,
  body: 'Sent proposal via YourApp',
  activityType: 'note'
});
```

### 4. Email Integration

**Problem:** Users want to see email history and send emails from your app.

**Solution:** Rollout's Email API provides read/write access to Gmail and Outlook through one normalized interface.

```javascript theme={null}
// Fetch email threads related to a contact
const emails = await rollout.email.threads.list({
  credentialId: user.emailCredentialId,
  participantEmail: contact.email
});

// Send an email
await rollout.email.messages.send({
  credentialId: user.emailCredentialId,
  to: contact.email,
  subject: 'Following up',
  body: '...'
});
```

### 5. Calendar Integration

**Problem:** Users want calendar availability and event data inside your app without building a separate connector for each provider.

**Solution:** Rollout's Calendar API provides a normalized way to read calendars and calendar events across supported providers such as Google Calendar.

```javascript theme={null}
const calendars = await rollout.calendar.calendars.list({
  credentialId: user.calendarCredentialId
});

const events = await rollout.calendar.events.list({
  credentialId: user.calendarCredentialId
});
```

### 6. Data Warehouse / Analytics

**Problem:** You need CRM/TMS data in your data warehouse for analytics.

**Solution:** Sync to DB streams data directly to your Postgres database.

**Features:**

* Tables mirror the Universal API schema
* Continuous sync with change tracking
* Query with standard SQL
* No API calls needed after initial setup

## Who Uses Rollout?

Rollout is built for teams shipping real estate software:

<CardGroup cols={2}>
  <Card title="PropTech Startups" icon="rocket">
    Get to market faster by outsourcing integrations. Focus on your core value prop.
  </Card>

  <Card title="Brokerage Platforms" icon="building">
    Connect to the tools your agents already use without building custom integrations.
  </Card>

  <Card title="Lender Technology" icon="landmark">
    Pull loan data from LOS systems and push updates back automatically.
  </Card>

  <Card title="MLS and Data Providers" icon="database">
    Aggregate data from multiple CRMs and TMS platforms for analytics and reporting.
  </Card>
</CardGroup>

## Technical Decision Criteria

### Choose Rollout if:

* ✅ You need to support multiple CRMs/TMS/LOS platforms
* ✅ Your team should focus on core product, not integrations
* ✅ You want real-time data sync via webhooks
* ✅ You need a polished auth UX for end users
* ✅ You value predictable integration timelines

### Consider building yourself if:

* You only need one integration and have specialized requirements
* You need access to proprietary features not exposed via standard APIs
* You have an existing integrations team with spare capacity
* Your use case requires custom auth flows that Rollout doesn't support

## Getting Started

<Steps>
  <Step title="Get API credentials">
    [Request access](/contact) to get your Client ID and Client Secret.
  </Step>

  <Step title="Integrate Rollout Link">
    Add the authentication UI to your app. Users connect their CRM/TMS in seconds.
  </Step>

  <Step title="Call the Universal API">
    Read and write data using a single, normalized interface.
  </Step>

  <Step title="Add webhooks or Sync to DB">
    Enable real-time updates for your use case.
  </Step>
</Steps>

<Card title="Try the Demo" href="/demo-app" icon="play">
  See Rollout in action — connect a test CRM and make API calls in our interactive demo.
</Card>
