How-to · agency administrators

Connect your practice systems

Hovi, SimplePractice, Sprout, Google Sheets and Agiloft

Prepared for
Whoever administers CaseLoop at your agency
Prepared by
Eric Norman
Reading time
10 min

Overview

An integration is CaseLoop signing in to a system you already use and copying what it finds onto this machine. Nothing is written back except where a guide says so explicitly.

6
Systems CaseLoop can connect to today
2
Ways of signing in — a stored login, or a browser window
1
Place it all lives: Settings → Data Integrations

Before you start

  • A working login for the system you are connecting. CaseLoop signs in as you — it has no back door and no vendor API key of its own.
  • Somewhere to do this from. Integrations are per-machine, so the machine you set this up on is the one that syncs.

Credentials are stored encrypted on this device using the operating system’s keystore. They are not sent to CaseLoop. See Where your data lives.

What you can connect

Six systems, three jobs.

SystemWhat it brings inSign-in
HoviClients, therapists, sessions and CANS assessmentsEmail and password, entered once
SimplePracticeAppointments, insurance and unpaid claimsUsername and password, entered once
Sprout — Family TimeFamily time referralsYou sign in yourself, in a browser window
Sprout — 72-Hour72-Hour referrals and reportsYou sign in yourself, in a browser window
Google SheetsAny spreadsheet, read as a tableSign in with Google
AgiloftNothing — this one sends HR documents outUsername and password, entered once

Google Sheets replaces rather than merges

The sheet is the schema: row 1 becomes the columns and every sync wipes and rewrites the table. That is deliberate — there is no merge to get wrong — but it means the sheet is the only source of truth for whatever it feeds. Do not edit that data inside CaseLoop and expect it to survive.

Adding one

Four steps, once per machine.

Hovi below, and the shape is the same for every system on the list: add the card, sign it in, import, schedule.

Video · 0:33 · no sound Settings → Data Integrations: add the card, sign it in, import, then set the schedule.
01

Open Settings → Data Integrations

On a fresh install this says No integrations added yet. Click Add integration.

02

Pick the system

The picker offers what your agency’s configuration makes available. Adding one puts a card on the page — it does not connect anything yet, and the card will say Connect to start importing.

03

Sign it in

This is where the two shapes diverge, and the difference matters later.

Hovi, SimplePractice, AgiloftA form. Enter the login once; CaseLoop stores it encrypted and reuses it.
Sprout, Sprout 72-HourNo form. Press Import and a browser window opens for you to sign in normally — second factor included.

Why the browser window

Those systems sign you in in ways a stored password cannot reproduce. So CaseLoop does not store one: you sign in, it keeps the session, and it asks you again when that session runs out. It is the same trade as your bank asking you to re-authenticate.

04

Run the first import

Press Import. Progress is live, and the first run is the long one because it is fetching everything. Later runs only fetch what changed.

When it finishes, the card shows when it ran and how many records it wrote.

Keeping it current

Schedules.

A connected integration can run on its own. The calendar button beside Import opens Schedule Hovi Import — it names whichever system the card is for, and it turns violet once a schedule is set, so a card with no schedule is visible from across the page.

  • Enable Schedule turns it on.
  • Run on these days picks the days — most agencies want weekdays only.
  • Set the time and your Timezone, then Save Schedule.

Pick a time when the machine is awake and someone is not mid-import by hand. Early morning on a machine that stays on is the usual answer.

A scheduled import needs the computer running and CaseLoop open. This is a desktop app syncing to this machine, not a server — a laptop closed overnight syncs when it wakes, not at 6am.

Reading the card

What each state means.

The card saysWhat it means
Not Connected · Connect to start importingAdded but never signed in. Nothing is wrong.
Connected · Import to get startedSigned in, never run. Press Import.
Running nowAn import is in progress. You can cancel it; a cancelled import leaves what it already wrote.
Completed without writing any recordsIt ran and found nothing new. See below — this is almost never a problem.
Sign-in expiredThe stored session has run out. Sign in again; for Sprout that is the browser window.
Sign-in failedThe credentials were rejected. Usually a changed password on the other system.
Sync unavailableThis pack cannot sync on this version. Nothing you can do locally — tell us.

About “0 records”

It means nothing changed, not that anything was lost. Imports are incremental: a run that finds no new or modified records writes nothing, and says so honestly rather than reporting a made-up number.

If you believe there genuinely is new data on the other side, check that the last successful import is recent and that you are looking at the same account. Then tell us what you expected to see — that is a far more useful report than “it says zero”.

Maintenance

Removing, rebuilding, and the AI services.

Removing an integration

The card’s menu removes it from this install. The data it already synced stays on the machine — removing the card stops future syncs, it does not delete history.

Rebuild from scratch

A destructive repair that deletes the local copy and downloads it again, for when local data has genuinely gone wrong. It makes you type a word to confirm, it tells you what you are about to lose first, and nothing in the source system is changed — this only touches this machine’s copy.

Anything entered in CaseLoop that did not come from the source system is not in the source system to download again. Read what the confirmation says it will lose.

AI Services

Below the integrations, the same page shows the local model and document index and this machine’s hardware. They run on this computer; if search or analysis has stopped working, this is where you check that they are running and repair a model that arrived damaged.

Troubleshooting

If something doesn't look quite right.

What you seeWhat to do
Could not load integrations.CaseLoop could not reach the definitions that describe what exists. The panel has a retry that refreshes them first — that repairs the common causes. If it persists, it is on our side, not yours.
The browser window for Sprout opens and closes without connecting.Sign in fully, including any second factor, and wait for the page you would normally land on. Closing early leaves no session to keep.
Sign-in failed right after someone changed a password.That is the cause. Open the credentials form on the card and enter the new one.
An import runs every night but the data is stale.Check the machine was actually awake with CaseLoop open. Scheduled runs need both.
Two people both set up the same integration.That is fine and normal — each machine keeps its own copy. There is no conflict and no primary machine.
A card shows a badge saying it cannot sync.That pack has been flagged as unreleased on this version. The card stays so you can see it; the import is blocked deliberately. Tell us and we will say what is happening.
Google Sheets wiped a column someone added inside CaseLoop.Expected. Every Sheets sync replaces the table from the sheet. Add the column to the sheet instead.
You want to know what a sync actually wrote.The card shows the last import, the last successful import and the record count. A run that reported nothing written is not the same as a run that failed, and the card distinguishes them.

Once it’s connected, it mostly looks after itself.

The data those systems bring in is what fills Reports, the referral queue and the case context in Email.

Questions
eric@caseloop.co
Prepared by
Eric Norman
CaseLoop · Practice systems Verified against 2.3.8 · 2026-09-21
CaseLoop · Practice systemscaseloop.co/guides