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 Provider 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 directly. Use only when delegated is not possible (e.g. no browser on the machine). Requires MFA to be disabled for the account.
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.# 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 secretOn 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...
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 → File 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 Provider tab. The app searches for a folder whose name matches the extracted case number.
Site IDrequiredGET https://graph.microsoft.com/v1.0/sites/{hostname}:/sites/{site-name}
# Copy the "id" field from the responseDrive IDrequiredGET https://graph.microsoft.com/v1.0/sites/{site-id}/drives
# Locate the drive by "name", copy its "id"Review folder IDGET 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
Processing Settings
Open Settings → Processing to control how CaseDocMover identifies case numbers, names files, and monitors your inbox.
Case number regexrequired{case_number} variable.# 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}Use the Test input field directly below to verify your regex against a sample subject line before saving.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 Extraction 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 TTLInbox Monitoring
Real-timeEvery N minutesDailyTimes per day: 2 Anchor hour: 08:00 → Checks at 08:00 and 20:00 daily
Extraction Rules
Open Settings → Extraction 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.