How Do I Bulk Import Dictionary Items and Snippets?

Last updated: October 21, 2026

Available on: Mac, Windows. Bulk import is desktop-only.

Bulk import adds dictionary words, corrections, and snippets from a file instead of one entry at a time.


Prepare your file

Dictionary uses .csv; Snippets uses .json. Each file can be up to 3 MB. The 1,000-entry limit counts valid entries after invalid entries, in-file repeats, and existing-library duplicates are removed—not raw rows. The upload screen links to file-format help.

Dictionary items (CSV)

Use one column for vocabulary or two for misspelling,correction. Omit headers: they import as entries.

  • Limits: 60 characters for the first field and 4,000 for the correction; longer rows are skipped.

  • Empty fields: Blank or spaces-only lines are ignored, not counted as skipped. Empty fields are discarded: a spaces-only first field followed by ,correction imports correction as vocabulary. Trailing commas are harmless: hello,world, imports hello → world; word, imports word.

  • Skipped rows: Rows containing only empty fields, more than two nonempty columns, an unterminated quote, or a word made only of invisible/zero-width characters are skipped.

  • Quoting: Double-quote fields containing commas and double literal quotes inside quoted fields. Both "Whisper Flow","Wispr Flow" and Whisper Flow,Wispr Flow work. A quote inside an unquoted field is kept literally: don"t,do not imports don"t → do not.

  • Text: Surrounding whitespace is removed; invisible characters around words are also removed. Unix and Windows line endings, Unicode, accents, CJK, emoji, and symbols are accepted.

Snippets (JSON)

Use a JSON array of objects with string name and text fields; other fields are ignored.

  • Limits: After surrounding whitespace is removed, name allows 60 characters and text allows 4,000. Invisible characters around names are also removed. Expansion text imports as plain text only.

  • Skipped entries: Non-object items, missing fields, non-string values, empty values after trimming, and over-limit values are skipped; valid entries remain eligible.


How to import

All and Personal select your personal library; Shared with team selects the team library. For organizations with departments, the labels are Shared with department and Share with department. Bulk import has no department/whole-organization scope picker.

Note: Shared access depends on your account. Without team features, Import and Add new are disabled only on the shared tab; All and Personal remain enabled. The sharing toggle is disabled, directs you to settings to set up a team, and imports remain personal. Accounts outside an organization see an upgrade prompt on the shared tab.

  1. Open Dictionary or Snippets on your chosen tab.

  2. Click Import in the top-right corner, next to Add new.

  3. Set Share with team on for shared imports or off for personal imports before selecting your file.

  4. Click the upload zone to browse, or drag and drop your file onto it.

  5. Review the previewed entries, destination, and skipped-duplicate count.

  6. Click Import N items for Dictionary or Import N snippets for Snippets.

  7. Click Done! after the result appears.

The destination cannot change after file selection. For one entry, the confirmation button reads Import 1 item or Import 1 snippet.

Personal imports report the full previewed count; a team import's added count can differ. Shared imports may instead show “N items sent for admin approval” or “N snippets sent for admin approval”: the whole batch awaits approval and is not live. Personal imports never require this approval.

The list refreshes automatically. Imported entries have an upload badge with the tooltip Imported from file, rather than an auto-learned marker.

There is no cancel control while importing. You can dismiss the dialog at any time with Escape, a click outside it, or its close button.


Why items are skipped

Duplicate matching ignores case and surrounding whitespace, including tabs, Unicode spaces, and invisible characters. Within either file type, only the first valid occurrence of a phrase or trigger is kept.

Personal imports check saved dictionary items and snippets regardless of how they were added, excluding deleted entries and common words automatically learned from apps, edits, or meetings. Team imports check only the team library; personal entries do not block them.

Important: Re-importing a deleted personal entry restores it with the file's values rather than creating a second entry.

The preview reports existing-library duplicates, but not invalid entries or in-file repeats. If everything already exists, it says “All N items already exist in your dictionary”, with the ending changing to snippets, team dictionary, team snippets, department dictionary, or department snippets. Only Done is offered; nothing is imported.


If import fails

Error

Meaning or action

Incorrect file type. Please upload a .csv file

Use the required extension; Snippets requests .json instead.

File is too large (max 3MB)

Split the file into smaller files.

Cannot import more than 1,000 entries. Please try again.

Split the entries across separate imports.

Incorrect file format

Check the file structure; a CSV with no valid rows also triggers this.

Failed to parse file / Failed to read file

Select the file again to retry.

No dictionary items found in file / No snippets found in file

Blank CSV files and empty JSON arrays contain nothing to import.

Failed to import items / Failed to import snippets

Flow returns to Upload and no longer shows the previous preview.

Only size and format errors add a Learn more → link.

  1. Correct any file errors.

  2. Repeat steps 4–7 under How to import; you can select the same file again.


Sync after import

Successful personal imports start background sync when signed in. While signed out, imported entries stay local until a later sync.

  1. Sign in if you imported while signed out.

  2. Use Refresh/Sync in the Dictionary or Snippets toolbar to sync and pull the latest entries.

Note: Sync can be blocked by an organization disabling Cloud Sync, an enterprise zero-data-retention lock, or a signed HIPAA BAA. These restrictions have no self-enable toggle. If you turned Cloud Sync off yourself and no policy lock applies, you can turn it back on.


If your organization turned Dictionary or Snippets off

An organization on a Growth or Enterprise plan can turn Dictionary or Snippets off for everyone. Each is controlled independently: disabling one leaves the other usable. A disabled feature is hidden in the desktop app.

Saved entries are kept, still apply during dictation, and reappear when the feature is re-enabled. To import again, ask an admin to select Enabled for everyone in the enterprise admin portal under Settings → Organization.

How organization restrictions apply

The admin portal shows these controls only for Enterprise organizations where the setting is available. When unavailable, an earlier disabled setting is ignored and changes are refused.

A restriction from any organization you currently belong to applies; removed memberships and solo accounts are unaffected. Admin changes reach the desktop app at its next sync, though a blocked action can apply a restriction sooner.

New entries, content edits, and restoring deleted entries are blocked; unsynced content changes stay local. Deletions remain allowed, and usage-count updates still sync.

Disabling Dictionary stops automatic word learning. Related feature prompts—including Translate prompts and auto-learned-word notices—are suppressed while the relevant feature is disabled.


Still need help?

Contact support if a correctly formatted file still won't import, or entries are missing or incorrect afterward. Include your platform (Mac or Windows), the file, what you tried, and what happened.