Setup Guide
A complete walkthrough of every setting in CaseDocMover, with examples for each field.
Installation & Activation
Download the installer for your operating system from the pricing page, then run it.
- macOS — open the
.dmg, drag CaseDocMover to Applications, then double-click to launch. - Windows — run
CaseDocMover.exe. If Windows SmartScreen appears, click More info → Run anyway. - Linux — install the
.debwithsudo dpkg -i casedocmover_*.deb, or run the standalone binary directly.
On first launch an activation dialog appears. Enter the license key that was emailed to you after purchase (format: XXXX-XXXX-XXXX-XXXX) and click Activate. The app validates the key online and then starts.
CaseDocMover has a 30-day offline grace period. If your machine loses internet access the app will keep running using the last successful validation. After 30 days a renewal prompt will appear.
Once activated the app icon appears in your system tray / menu bar. Right-click it to open Settings, view logs, or quit.
Email Provider
Open Settings → Email Account and choose the provider that matches your mailbox.
Microsoft 365 / Exchange
Three authentication modes are available. Pick the one that matches how your organisation manages app access.
Auth moderequiredapp_only — the app authenticates as itself using a client secret; no user sign-in required. Requires an Azure AD app registration with Mail.ReadWrite application permission granted by an admin. Best for shared/service accounts.
ropc — Resource Owner Password Credentials. The app signs in with a username and password to bootstrap the token cache, then immediately erases the password from storage. All subsequent sessions use the cached refresh token silently — identical to delegated mode once authenticated. Use when no browser is available on the machine. Does not support MFA or federated (ADFS/SAML) accounts.
Tenant IDrequired9b5c3a1e-4f72-4d18-b3e2-7a2c05d1f234. Use common for personal Microsoft accounts.Find it at portal.azure.com → Azure Active Directory → Overview → Tenant ID.
Client IDrequiredFind it at portal.azure.com → App registrations → your app → Overview → Application (client) ID.
Client secretMailboxme for the signed-in user (delegated/ROPC) or a full email address such as invoices@yourfirm.com for a shared mailbox (app_only).Username / Passworduser@yourfirm.com) and the account password. The password is used once to sign in and is then erased automatically — it is never stored beyond the initial authentication. If the cached token is later invalidated (e.g. after a password change or admin revocation), re-enter the password here and save to re-authenticate.# delegated example Auth mode: delegated Tenant ID: 9b5c3a1e-4f72-4d18-b3e2-7a2c05d1f234 Client ID: e1d2c3b4-a5f6-7890-abcd-ef1234567890 Mailbox: me # app_only example (shared mailbox) Auth mode: app_only Tenant ID: 9b5c3a1e-4f72-4d18-b3e2-7a2c05d1f234 Client ID: e1d2c3b4-a5f6-7890-abcd-ef1234567890 Client secret: ~Abc8Q... Mailbox: filings@yourfirm.com
Gmail / Google Workspace
CaseDocMover uses the Gmail API with OAuth2. You need a Google Cloud project with the Gmail API enabled and OAuth2 credentials created.
- Go to console.cloud.google.com → APIs & Services → Credentials.
- Create an OAuth client ID for a Desktop application.
- Download the JSON and either place it as
gmail_client_secret.jsonin the app config folder, or paste the Client ID and Secret into the fields below.
Client ID.apps.googleusercontent.com).Client secretLabel to monitorINBOX. Use any Gmail label name exactly as it appears in Gmail — for example Legal/Filings for a nested label, or a custom label like Court Docs.Find your label names at Gmail → Settings → Labels.
INBOX ← default, monitors the main inbox Legal/Filings ← nested label (parent/child) Court Docs ← custom flat label
On first save, CaseDocMover will open a browser window asking you to sign in to Google and grant access to your Gmail account. The refresh token is then stored locally so subsequent launches are automatic.
Client ID: 123456789-abc123.apps.googleusercontent.com Client secret: GOCSPX-AbCdEfGhIj... Label to monitor: Legal/Filings
IMAP (Yahoo, iCloud, Zoho, other)
Use this for any mailbox accessible over IMAP — Yahoo Mail, Apple iCloud Mail, Zoho, FastMail, and most hosted email services.
HostrequiredYahoo Mail: imap.mail.yahoo.com iCloud: imap.mail.me.com Zoho: imap.zoho.com FastMail: imap.fastmail.com
Port993 for SSL (recommended), 143 for STARTTLS.Use SSLUsernamerequiredfilings@yourfirm.com.PasswordrequiredYahoo: Account Security → Generate app password. iCloud: appleid.apple.com → Sign-In and Security → App-Specific Passwords.
FolderINBOX. Use standard IMAP folder names; some servers use INBOX.Subfolder notation.Email Filters
Filters control which incoming emails are processed. Emails that do not match all active filter sections are ignored. Leave a section empty to skip that check entirely.
Sender addressescourt@supremecourt.gov efiling@districtcourt.org
Sender domains@domain.courts.gov lawfirm.com
Subject keywordsMatch modeAll keywords (AND) — process only if the subject contains every keyword.
Keywords: Case, Filing Mode: ANY → matches "New Case Filing" and also "Case Review" Mode: ALL → matches "New Case Filing" but NOT "Case Review"
If all three filter sections are empty, every email with an attachment is processed. Add filters to narrow down to relevant senders.
File Storage
Open Settings → Document Storage and select where documents should be filed.
SharePoint (Microsoft 365)
CaseDocMover uploads files to a SharePoint Document Library using the same Microsoft 365 credentials configured on the Email Account tab. The app searches for a folder whose name matches the extracted case number. Use the Browse button to pick your site, library, and folder from a graphical browser instead of entering IDs manually.
SharePoint SiterequiredGET https://graph.microsoft.com/v1.0/sites/{hostname}:/sites/{site-name}
# Copy the "id" field from the responseDocument LibraryrequiredGET https://graph.microsoft.com/v1.0/sites/{site-id}/drives
# Locate the drive by "name", copy its "id"Unmatched Files FolderGET https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/root/children
# Locate the folder by "name", copy its "id"Box
Auth modeoauth2_token — use a developer token or a pre-acquired OAuth2 access token. Tokens expire after 60 minutes; suitable for short-term testing.
JWT config pathmacOS/Linux: /Users/you/box_jwt_config.json Windows: C:Usersyouox_jwt_config.json
Root folder ID0 for the root of All Files, or paste the numeric ID from the URL when browsing Box: app.box.com/folder/123456789 → ID is 123456789.Review folder IDDropbox
App key / App secretrequiredRefresh tokenrequiredRoot path/Cases to search within a Cases folder, or leave empty to search from the Dropbox root.Root path: /Clients/Active Cases
Review folder/Manual Review.SMB / Network Share (on-prem)
For Windows file servers or NAS devices accessible over SMB/CIFS.
Serverrequiredfileserver01 or 192.168.1.50.SharerequiredCases.Root UNC pathrequired\\fileserver01\Cases\Active.Review UNC path\\fileserver01\Cases\Manual Review.Username / PasswordDOMAIN\username. Leave blank to use the currently logged-in Windows user (pass-through auth).Port445 (standard SMB). Change only if your network uses a non-standard port.Server: fileserver01 Share: Cases Root UNC path: \fileserver01CasesActive Review UNC: \fileserver01CasesManual Review Username: CORPcasedocmover Port: 445
Case Matching
Open Settings → Case Matching to control how CaseDocMover identifies case numbers and names uploaded files.
Case number patternrequired{case_number} variable. Click the ? button next to the field to open the regex helper — it includes a library of common law firm patterns and a live tester so you can verify your regex against sample text before saving.# Matches formats like CV-2024-001234 or CR-20241234
Default: [A-Z]{2,4}-d{4,8}
# Matches 6-digit numbers preceded by "Case"
Custom: Cases+(d{6})
# Matches US federal case numbers like 1:24-cv-00123
Federal: d:d{2}-[a-z]{2}-d{5}Filename template{case_number}— extracted case number{sender}— sender email address (@domainstripped){date}— email date asYYYY-MM-DD{ext}— original file extension including the dot (e.g..pdf)- Any custom rule name defined in Advanced Rules (e.g.
{client_name})
Default: {case_number}_{sender}_{date}{ext}
→ CV-2024-001_supremecourt.gov_2025-03-15.pdf
Custom: {date}_{case_number}_{client_name}{ext}
→ 2025-03-15_CV-2024-001_Smith_John.pdfFuzzy match thresholdLower this value if your folder names have slight variations (e.g. spaces vs. dashes). Raise it to avoid false matches in large folder trees.
Folders: "CV-2024-0012", "CV-2024-00121" Extracted: CV-2024-001 Threshold 80% → matches "CV-2024-0012" (score ≈83%) Threshold 90% → no match (falls back to Review folder)
Folder cache TTLSchedule
Open Settings → Schedule to control how often CaseDocMover checks your inbox for new emails.
Real-timeEvery N minutesDaily scheduleTimes per day: 2 Anchor hour: 08:00 → Checks at 08:00 and 20:00 daily
Reports
Open Settings → Reports to configure automated email summaries. When enabled, CaseDocMover sends an HTML report on a daily or weekly schedule listing every email processed during the period — including the case number, destination folder, and uploaded filename.
Enable reportsRecipientsattorney@yourfirm.com paralegal@yourfirm.com
ScheduleWeekly — sends one report per week on the configured day and hour.
Send hourDay of weekSMTP Settings
Reports are sent via any standard SMTP server. Use your firm's outbound mail relay, or a transactional email service such as SendGrid, Mailgun, or Amazon SES.
SMTP hostrequiredOffice 365: smtp.office365.com Gmail SMTP: smtp.gmail.com SendGrid: smtp.sendgrid.net
Port587 for STARTTLS (recommended), 465 for implicit TLS, 25 for unencrypted (not recommended).Use TLSUsername / PasswordFrom addresscasedocmover@yourfirm.com. Must be authorised by your SMTP relay.Use the Send test report button to verify your SMTP settings before saving. A test report containing any emails processed in the last 24 hours will be sent immediately to the first recipient in the list.
SMTP host: smtp.office365.com Port: 587 Use TLS: ✓ Username: reports@yourfirm.com From address: CaseDocMover <reports@yourfirm.com> Recipients: attorney@yourfirm.com
Extraction Rules
Open Settings → Advanced Rules to define custom variables extracted from each email. These variables can then be used in the Filename template and in the Folder search template.
Each rule has four fields:
Namerequiredclient_name becomes {client_name} in your filename template. Use lowercase letters, numbers, and underscores only.Sourcerequiredsubject— the email subject linebody— the plain-text email bodysender— the From addressdate— the email date (returnsYYYY-MM-DD)
Typestructured — use the entire source field as-is (useful with
sender or date).Pattern# Extract client surname from subject like "RE: Smith, John - CV-2024-001" Name: client_name Source: subject Type: regex Pattern: ^RE:s+([w]+), # Extract court name from body Name: court Source: body Type: regex Pattern: Filed in thes+(.+?)s+Court # Use sender domain as a variable Name: sender_domain Source: sender Type: regex Pattern: @([w.]+)$
Folder search template
Controls what string CaseDocMover searches for when looking up a matching folder in storage. Defaults to {case_number}.
You can combine multiple variables to build a more specific query, which helps avoid false matches in large folder structures.
# Default — search by case number only
Folder search template: {case_number}
# Prefix with a client name to narrow results
Folder search template: {client_name} {case_number}
# → searches for "Smith CV-2024-001"
# Use court name as folder prefix
Folder search template: {court} {case_number}
# → searches for "District Court CV-2024-001"If no folder matches the search template, the document is placed in the Review folder (if configured) or skipped with a desktop notification. Check the log window for details.