wiki-vault/Sources/Dev/pbs-ig-autoreply-polish-0726.md

4.4 KiB

created path project tags type
2026-07-27 Sources/Dev pbs-ig-autoreply-polish-0726
pbs
n8n
automation
flask
mysql
instagram
project-plan

Goal

Six post-cutover fixes/features for the PBS IG comment→auto-reply automation, prepped on branches for Travis to review + deploy. Sibling to pbs-ig-autoreply-prod-cutover (thread 1008); this batch is the polish/bugfix pass after the prod cutover landed.

The six items:

  1. Blank recipe URL in first reply. In Sub-instra-reply-handle-new, Prep_FB_Msg reads recipeUrl from the Merge node, but on the first-process path the URL isn't loaded yet (the cache-populating call in instra-reel-cache-new hasn't returned), so the DM goes out with a blank URL. Fix: source the URL reliably — leading candidate is returning recipe_url from the instra-reel-cache-new subworkflow so the caller has it in hand.
  2. Staging GChat error Cannot read properties of undefined (reading '0') on insta-webhook-new [v1], node "Call 'Sub-instra-reply-handle-new'", execution 7400 (~19:40 ET). Suspected an unmapped value; possibly correlated with prod activity (unconfirmed). Root-cause the [0] deref; get as far as static analysis allows.
  3. Recipe-select filter (pbs-video-manager). On the project-management page and the platform-post individual record page, add a way to filter/narrow the recipe list when selecting.
  4. Split GChat spaces (full-wire). Currently all GChat messages hit one space. Route into three: errors, admin messages, PBS alerts. Travis creates the 3 spaces + provides 3 webhook URLs; n8n side wired end-to-end (centralize in SendPBSChat_New chokepoint, callers pass a message-type).
  5. Reel title in PBS alerts. For PBS alert messages that carry the reel ID, also include the title.
  6. Editable recipe keyword on projects page (pbs-video-manager). After a recipe is linked, allow changing the recipe keyword on the projects page, using the same format as the platform-post individual record page.

Locked Decisions

  • Access: staging n8n via API key (n8n.pbs-staging.herbylab.dev). Key value pending from Travis → live verification of 1/2/4/5 deferred; all prep is static/repo-based.
  • Deploy: prep-only. Workers commit on branches; Travis runs the staging deploy and any prod steps. No autonomous deploys.
  • Item 4 scope: full-wire the n8n routing. Travis creates the 3 GChat spaces and pastes 3 webhook URLs into vault/env later.
  • Branches: fresh off main in each repo. wordpress-install → feat/n8n-alerting-and-reply-fixes; pbs-video-manager → feat/recipe-filter-and-keyword-edit.
  • No production. No git push (Travis reconciles from his tower). Staging is the only test target, and only Travis deploys to it.

Open Items

  • n8n API key value (blocks live verification of items 1/2/4/5).
  • Execution 7400 input/error detail (confirms item 2 root cause).
  • Three GChat space webhook URLs (item 4 env wiring — vars scaffolded, values pending).

Phases

  • Worker A — web app (pbs-video-manager, items 3 + 6): recipe-select filter on project-management + platform-post pages; editable recipe keyword on projects page mirroring the platform-post record page. Runs zero-check after (Python/Flask); a-review if >50 lines changed.
  • Worker B — n8n (wordpress-install, items 1 + 2 + 4 + 5, serialized): items share the same single-line workflow JSONs, so one owner avoids clobbering. Order: 2 (root-cause) → 1 (URL fix) → 5 (title in alert) → 4 (GChat split, largest). Each item reported discretely with what needs a staging run to confirm.

Notes

  • Two workers max, one per repo — no cross-repo file contention. n8n items serialized inside Worker B because items 1/4/5 all touch Sub-instra-reply-handle-new / SendPBSChat_New / PBS-Central-Error-Handler and the JSON is minified single-line (merge-hostile).
  • Workflow JSONs live in wordpress-install/roles/dockers/files/n8n/workflows/; env template in .../n8n/.env.j2; stamp-workflows.py stamps [vN] + substitutes __PBS_DOMAIN__.
  • SendPBSChat_New (id DrnZwagaEHZhR8wL) is an executeWorkflowTrigger sub-workflow — the natural routing chokepoint for item 4. PBS-Central-Error-Handler (id NDgjEmiULuSmfcN0) is the errorWorkflow target — relevant to items 2/5.
  • Prep-only + no API key means the whole batch lands as reviewable branch commits + a design note for item 4; Travis deploys to staging to verify.