Recued
Menu
← Back to recipes

Match a dropped document

by recued-core v2 7 views

Use “Match a dropped document” in Recued. Fires when a file lands in the relevant record and proposes which outstanding checklist line it satisfies. It proposes only — the line stays missing until you confirm it.

Complete workflow

Client Document Intake 6 pinned recipes

Use Client Document Intake in Recued for drop link, reception, documents, and checklist. It includes 14 built-in actions and 5 ready-to-run workflows. Actions that change data use Recued's approval controls.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Use “Match a dropped document” in Recued. Fires when a file lands in the relevant record and proposes which outstanding checklist line it satisfies. It proposes only — the line stays missing until you confirm it.

pack:client-document-intakedrop-linkreceptiondocuments
by recued-core pinned v2

Use “Open a document request” in Recued. Open one document request against a Reception drop link and write its checklist.

pack:client-document-intakedrop-linkreceptiondocuments
by recued-core pinned v2

Use “Confirm a document” in Recued. Accept the proposal on one checklist line, or clear it. This is the step that turns a file arriving into a document received — the two are different facts and the pack keeps them apart.

pack:client-document-intakedocumentschecklistrecords
by recued-core pinned v2

Use “Document requests board” in Recued. Every open document request with what is still outstanding, and every line waiting on your decision. It reads information without changing data in the connected service.

pack:client-document-intakedocumentschecklistboard
by recued-core pinned v2

Use “Chase the missing documents” in Recued. Email one client the list of documents still outstanding, with their drop link.

pack:client-document-intakedocumentschecklistmail
by recued-core pinned v2
View pack details, dependencies, and permissions →

What it does, and what it deliberately does not

On every file arriving in data.file.received it reads the filename and MIME type, looks at the checklist lines still outstanding across your OPEN requests, and asks the model which single line the upload best satisfies. The winning line records a proposal: the file id, the filename, and a confidence. Its status becomes proposed.

Nothing is marked received. Confirming is Confirm a document — one click from the board.

It cannot tell where a file came from. core.storage.data-file-read returns record_id, filename, mime_type, size_bytes and blob_hash — no origin, no source endpoint — and a file event carries no record projection to re-read it from. So a mail attachment arriving while a request is open is indistinguishable from a client's upload. Proposing rather than deciding is what makes that safe.

Only the filename and MIME type are read. The file's CONTENT is never opened. Reading bytes is a gated egress boundary, and a document you have not accepted yet is exactly the wrong thing to feed a model. If the filename is generic (scan.pdf, IMG_1234.jpg) expect no proposal — that is the intended outcome, not a failure.

Uploads are unscanned by default. A drop ingests as scan_status: 'unscanned' and the substrate's gate is advisory. Install a scanner pack (clamav-scan / defender-scan) if you want that verdict to mean something before you open anything.

A file can only be proposed against one line at a time, and re-proposing a line that already carries a proposal is skipped — the first proposal stands until you accept or clear it.

How it works 23 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (23 steps)
record_id default
Apply default
has_record compare
Check if record id has data
record_guard guard
Stop if has record equals
outstanding ?
outstanding_rows default
Apply default
outstanding_count count
Count items in outstanding rows
has_outstanding compare
Check if outstanding count is greater than 0
nothing_outstanding_guard guard
Stop if has outstanding equals
file_meta ?
defaults defaults
Apply defaults
signals merge
Combine objects together
candidate_labels pluck
Extract label from each item
classify ?
defaults_2 defaults
Apply defaults
confident_enough compare
Check if confidence is at least setting min confidence
matched_rows filter
Filter by condition
matched_count count
Count items in matched rows
matched_exactly_one compare
Check if matched count equals 1
defaults_3 defaults
Apply defaults
already_proposed compare
Check if existing proposal has data
should_propose all
Check if all conditions are true
propose ?
skip: step.should_propose equal false
card to_summary
Format results as a summary card
Settings 1 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

min confidence setting = 0.6

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

Data it touches

Warehousedata.file

About

Tags

pack:client-document-intakedrop-linkreceptiondocumentschecklistrecordsreactivev2

Details

23 steps 1 configurable settings recipe_id: match-dropped-document