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 organization 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 [email protected] for a shared mailbox (app_only).Username / Password[email protected]) 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: [email protected]
Outlook.com / Hotmail (personal account)
Choose Outlook.com / Hotmail (personal account) in Settings → Email Account. No Azure AD app registration is required — just your email address and an app password.
Microsoft requires an app password (a separate one-time credential) for apps that connect directly to personal Outlook mailboxes. Your regular login password will not work here.
Email addressrequired[email protected].App passwordrequired- Go to account.microsoft.com → Security → Advanced security options.
- Under App passwords, click Create a new app password.
- Name it CaseDocMover and copy the generated password.
- Paste it into the App password field in Settings.
Folder to monitorINBOX. Use standard IMAP folder names (e.g. Inbox, INBOX/Cases).The server address (outlook.office365.com:993) and SSL settings are pre-configured automatically — you do not need to enter them.
Email address: [email protected] App password: abcd efgh ijkl mnop ← generated at account.microsoft.com Folder: INBOX
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 SSLUsernamerequired[email protected].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 addresses[email protected] [email protected]
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 Microsoft Graph API. 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 always requires Microsoft Graph API credentials (Tenant ID + Client ID) regardless of which email provider you use. If your email provider is already Microsoft 365, these credentials are reused automatically. If you use Gmail, IMAP, or Outlook.com for email, a separate Microsoft 365 credentials section will appear at the top of the SharePoint panel — enter your Tenant ID and Client ID there.
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 reportsRecipients[email protected] [email protected]
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 address[email protected]. Must be authorized 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 7 days will be sent immediately to all recipients in the list.
SMTP host: smtp.office365.com Port: 587 Use TLS: ✓ Username: [email protected] From address: CaseDocMover <[email protected]> Recipients: [email protected]
Advanced 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.
Status
Open Settings → Status to see real-time information about the current processing cycle and connection health.
Last Processing CycleNext runConnection StatusHelp & Logs
Open Settings → Help & Logs to view the in-app activity log and access support options.
Recent activity logOpen Full Log WindowIf something is not working, copy the log output from Settings → Help & Logs and email it to [email protected].