How-to · agency administrators
Hovi, SimplePractice, Sprout, Google Sheets and Agiloft
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.
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
| System | What it brings in | Sign-in |
|---|---|---|
| Hovi | Clients, therapists, sessions and CANS assessments | Email and password, entered once |
| SimplePractice | Appointments, insurance and unpaid claims | Username and password, entered once |
| Sprout — Family Time | Family time referrals | You sign in yourself, in a browser window |
| Sprout — 72-Hour | 72-Hour referrals and reports | You sign in yourself, in a browser window |
| Google Sheets | Any spreadsheet, read as a table | Sign in with Google |
| Agiloft | Nothing — this one sends HR documents out | Username and password, entered once |
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
Hovi below, and the shape is the same for every system on the list: add the card, sign it in, import, schedule.
On a fresh install this says No integrations added yet. Click Add integration.
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.
This is where the two shapes diverge, and the difference matters later.
| Hovi, SimplePractice, Agiloft | A form. Enter the login once; CaseLoop stores it encrypted and reuses it. |
| Sprout, Sprout 72-Hour | No form. Press Import and a browser window opens for you to sign in normally — second factor included. |
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.
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
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.
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
| The card says | What it means |
|---|---|
| Not Connected · Connect to start importing | Added but never signed in. Nothing is wrong. |
| Connected · Import to get started | Signed in, never run. Press Import. |
| Running now | An import is in progress. You can cancel it; a cancelled import leaves what it already wrote. |
| Completed without writing any records | It ran and found nothing new. See below — this is almost never a problem. |
| Sign-in expired | The stored session has run out. Sign in again; for Sprout that is the browser window. |
| Sign-in failed | The credentials were rejected. Usually a changed password on the other system. |
| Sync unavailable | This pack cannot sync on this version. Nothing you can do locally — tell us. |
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
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.
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.
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
| What you see | What 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. |
The data those systems bring in is what fills Reports, the referral queue and the case context in Email.