Bulk Import - Napkin to Invoice in 10 Seconds

Paste a week's worth of scribbled notes, and TimeNet's natural language engine turns them into clean, categorized time entries. From chicken scratch to billable entries in seconds.

8 min Essential

We've all been there. It's Friday afternoon, you've got a yellow pad full of scribbled notes from the week, and 30+ time entries to create before you can go home. With traditional billing software, that's 30 minutes of clicking, tabbing, and typing. With TimeNet Law 6's Bulk Import, it's 10 seconds.

Paste your notes, let the natural language engine parse them, review, and you're done.

🎬

DEMO VIDEO: "Napkin to Invoice" - Paste messy handwritten-style notes → TimeNet parses everything → shows parsed entries with client, matter, duration, description → click "Import All" → 15 entries appear in the system. From napkin to billable in 10 seconds.

Short looping video - record this weekend

How It Works

Five steps. The whole thing takes longer to explain than to do.

1

Open Bulk Import

From the menu: File → Bulk Import, or hit + Shift + I. The import window opens with a blank text area waiting for your notes.

2

Paste Your Entries

Type or paste your time entries, one per line. Include a duration, a description of what you did, and the word "for" before the matter name. That's the pattern the parser needs.

3

AI Parses

TimeNet's natural language engine identifies individual entries, extracts durations, matches clients and matters, and pulls out descriptions. It happens in under a second.

4

Review

See all parsed entries in a clean table. Color-coded by confidence. Edit any that need tweaks - click any cell to fix it inline.

5

Import

Hit Import All and every entry is created instantly. They show up in your Launchpad, timesheets, and reports immediately.

📸

Screenshot: The Bulk Import window with raw text pasted on the left, parsed entries on the right

The Syntax

One line per entry. The golden rule: use the word "for" or "to" before your matter name. That's how the parser knows where your task description ends and the matter begins.

The Pattern

[timekeeper name] [duration] [task description] for [matter name]

All of these work:

David Kim 1.5 hours research case law for Voss Estate Plan Marcus Chen 45 min document review for Cascade IPA Rachel Torres 3h deposition prep for Voss Estate Plan Sarah Greenfield 0:30 review contract for Northstar Technologies 2 hours draft motion for Anderson v. Smith log 20 min phone conference for Voss Estate Plan enter 2.5 hours negotiate terms to Rivera Enterprises

What the Parser Handles

  • Duration formats — "1.5 hours", "45 min", "3h", "2:30", "0.5 hours", "20 min", "1 hour", ".25h" — just about any format you'd naturally write
  • Timekeeper names — Full names matched against your firm's timekeeper list, placed anywhere in the line
  • Fuzzy matter matching — Partial names work. "Cascade IPA" matches "Trademark Registration – Cascade IPA"
  • Billing rates — Auto-loaded from your matter settings, per timekeeper
  • Command prefixes — "log", "add", "record", "enter" all work (and are all optional)

When You Have a Timekeeper Selected

If you've selected a specific timekeeper in the Import window (not "All Timekeepers"), you can skip the name — it's assigned automatically:

1.5 hours research case law for Voss Estate Plan 45 min phone call for Cascade IPA 3h deposition prep for Anderson v. Smith
Pro Tip

The word "for" (or "to") is the magic keyword. Everything before it becomes the task description. Everything after it is matched against your matters. No keyword, no match — so always include it.

The Review Table

After parsing, you see a preview table with every entry the engine found. Each row shows:

  • Checkbox — select or deselect for import
  • Timekeeper — extracted from the line or defaulted to your selection
  • Date — parsed from your notes or defaults to today
  • Hours — duration extracted and normalized
  • Matter — fuzzy matched against your matter list
  • Task — the description extracted from your text
  • Notes — additional notes if present
  • Rate — auto-loaded from matter settings for the timekeeper
  • Client — resolved from the matched matter

Valid vs. Invalid

Entries are split into two groups:

  • Valid entries — Timekeeper, matter, and duration all resolved. Ready to import.
  • Invalid entries — Something couldn't be resolved. Click "View Errors" to see what's missing (usually a matter name the parser couldn't match).

Click any cell to edit inline. Fix a matter match, adjust a duration, edit a description — all right in the table.

📸

Screenshot: Review table showing valid (green) and invalid (red) entries with View Errors button

Pro Tip

If an entry shows as invalid, it's almost always because the matter name didn't match. Make sure you're using a recognizable part of the matter name (not just the client name) after "for" or "to".

Fuzzy Matching in Bulk

Same fuzzy matching engine as Quick Capture, but working at scale:

  • Each line is independently parsed and matched
  • Partial client names, nicknames, and matter numbers all work
  • If the same client appears multiple times, it matches them all consistently
  • Disambiguation popup only appears when truly ambiguous - rare in bulk mode because context from surrounding entries helps resolve matches
📸

Screenshot: Fuzzy matching showing a client name being auto-resolved with confidence percentage

Import Sources

Paste from anywhere. If there's a duration and a client name in there, TimeNet will find it.

📓 Notebook scribbles (typed up quickly)
📧 Emails to yourself
💬 Text messages to yourself
📊 Spreadsheet columns (tab-separated)
📅 Calendar notes you jotted down
🎙️ Voice memo transcripts

You can even select text from a document and paste it directly. The parser doesn't care where it came from - just that there's something to work with.

Two Ways to Import

The Import Entries window gives you two modes depending on what you're working with:

  • Spreadsheet / CSV — Paste structured data with columns (timekeeper, date, hours, matter, task, rate). Great for data exports from other billing systems or organized spreadsheets. Tab-separated and comma-separated both work.
  • Natural Language — Type or paste plain-English entries, one per line. Great for quick dictation-style entry using the "for/to" pattern described above.

Both modes parse instantly, show you the same preview table, and let you edit inline before importing.

Pro Tip

If you have structured data, use CSV mode — it's more predictable. Natural language mode shines when you're dictating entries or typing them from memory, where the "for [matter]" pattern feels natural.

After Import

Once imported, entries behave exactly like any other time entry in the system:

  • Appear in Launchpad, your timesheets, and all reports
  • Fully editable - change anything after import
  • Ready for invoicing immediately
  • Audit trail shows they were created via Bulk Import (with timestamp)
📸

Screenshot: Launchpad Day View showing newly imported entries mixed with regular entries

Stop dreading Friday afternoon data entry. Scribble notes all week however you want, paste them in on Friday, review the parsed results, hit Import, and go home. Napkin to invoice in 10 seconds. That's the TimeNet Law 6 difference.

Bulk Import is just one way TimeNet Law makes time entry dangerously fast. Check out these related features:

  • Quick Capture - for one-at-a-time fast entry throughout the day
  • Voice Commands - for hands-free entry when you're on the move
  • OCR Receipts - for turning expense receipts into entries automatically

Parser Not Picking Something Up? Perry Can Help.

If you've got a note format the parser struggles with, send it over. Perry will either show you a trick or improve the engine.

Get Help →