feat(n8n): add school intake workflow v1.1
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
| 14 | Paperless Inbox Reminder | Scheduled (Monday 9 AM) | Queries Paperless for untagged documents; sends Gotify reminder with oldest items listed, or a ✅ clear if inbox is empty |
|
||||
| 15 | n8n Self-Health Monitor | Scheduled (every 15 min) | Checks n8n execution history for failures in the past hour; deduplicates via Postgres; pushes Gotify alert with workflow name and error summary |
|
||||
| 16 | NFS Mount Watchdog | Scheduled (every 5 min) | Probes NFS mount points on PD; if missing: runs mount script, re-probes, restarts affected containers (Plex, Audiobookshelf, Immich); notifies via Gotify on heal or escalation |
|
||||
| 18 | Telegram School Intake → Postgres → Paperless v1.0 | `POST /webhook/school/intake/upload` | Accepts multipart schoolwork uploads plus class/assignment metadata, writes an intake record to shared Postgres, then uploads into Paperless with deterministic `intake_id` in the filename/title |
|
||||
| 18 | Telegram School Intake → Postgres → Paperless v1.1 | `POST /webhook/school/intake/upload` | Accepts multipart schoolwork uploads plus class/assignment metadata, writes an intake record to shared Postgres, then uploads into Paperless with deterministic `intake_id` in the filename/title |
|
||||
| 19 | Paperless School Intake Metadata Enrichment v1.0 | `POST /webhook/school/intake/paperless-enrich` | Handles Paperless post-consumption webhooks, looks up the intake record by deterministic filename, then applies deterministic title/tags and optional document-type/correspondent mapping |
|
||||
|
||||
## How to Import
|
||||
@@ -289,9 +289,9 @@ curl -X POST https://n8n.paccoco.com/webhook/git/push \
|
||||
}'
|
||||
```
|
||||
|
||||
## Workflow 18 — Telegram School Intake → Postgres → Paperless v1.0
|
||||
## Workflow 18 — Telegram School Intake → Postgres → Paperless v1.1
|
||||
|
||||
Import `18-school-paperless-intake-v1.0.json` for a chat-driven schoolwork intake flow. Supporting notes live at `docs/operations/SCHOOL_PAPERLESS_INTAKE.md` and the tracked schema lives at `docs/reference/SCHOOL_INTAKE_POSTGRES_SCHEMA.sql`.
|
||||
Import `18-school-paperless-intake-v1.1.json` for a chat-driven schoolwork intake flow. Supporting notes live at `docs/operations/SCHOOL_PAPERLESS_INTAKE.md` and the tracked schema lives at `docs/reference/SCHOOL_INTAKE_POSTGRES_SCHEMA.sql`.
|
||||
|
||||
Highlights:
|
||||
- multipart upload endpoint: `POST /webhook/school/intake/upload`
|
||||
@@ -299,6 +299,7 @@ Highlights:
|
||||
- optional fields: `semester`, `course_code`, `paper_kind`, `notes`, `telegram_chat_id`, `telegram_message_id`
|
||||
- writes intake metadata to shared Postgres before upload
|
||||
- sends deterministic `intake_id` in the Paperless filename and title correlation data
|
||||
- v1.1 removes the `require('crypto')` dependency so the workflow can run without adding `crypto` to `NODE_FUNCTION_ALLOW_BUILTIN`
|
||||
|
||||
Testing fixture:
|
||||
- `fixtures/school-paperless-intake-webhook.curl.example.txt`
|
||||
@@ -306,7 +307,7 @@ Testing fixture:
|
||||
## Workflow Versioning Convention
|
||||
|
||||
For n8n workflow artifacts in this repo:
|
||||
- include the version in the **filename** (example: `18-school-paperless-intake-v1.0.json`)
|
||||
- include the version in the **filename** (example: `18-school-paperless-intake-v1.1.json`)
|
||||
- include the version in the workflow's internal **`name`** field
|
||||
- bump the version whenever behavior, schema expectations, webhook payload handling, or env requirements change
|
||||
- update `n8n-workflows/README.md` and `n8n-workflows/TESTING-STATUS.md` when introducing a new workflow version
|
||||
|
||||
Reference in New Issue
Block a user