vip agent - dana) behave as ops expect: send when any contact on the work order has the tag, including when To is company internal (user-company).vip agent - dana, with intent “send if any contact on the job has this tag.” That mental model matches how tags are resolved when the full inspection is evaluated (all people on the job).sendToRecipient in renderEmail.ts re-runs action conditions per To recipient with people: [toPerson]. For Send to company, toPerson is a synthetic company contact (companyFlagToFakeContact) with tags: []. The tags resolver in attributePathResolver.ts reads inspection.people only (not _conditionScopePeople), so the second pass sees no tags → condition fails → no queueRawEmail / no Resend.completed / UI successful because handleEventTriggerdByBull treats the action as sent when renderEmailFromTemplate returns no top-level error, even if every recipient returned “Contact filtered out by conditions” in resData.data and emailResults was never populated.contact-already-on-job / role replacement; this ticket is tags (and similar job-wide attributes) + company recipient. Fixes can share patterns (e.g. _conditionScopePeople) but are not duplicates and should not block each other.confirmed_job fired, the action would not re-run (people changes do not re-trigger that event). Confirm on example jobs whether failure was scope bug vs late contact add.attik-backend/src/util/functions/actionFlows/attributePathResolver.ts — tags (and other job-wide contact attributes as needed) should respect _conditionScopePeople when set, consistent with contact-already-on-job.attik-backend/src/util/functions/emailBuilder/renderEmail.ts — sendToRecipient already sets _conditionScopePeople: jobData.people; ensure job-wide attributes use it on the second pass.attik-backend/src/util/functions/actionFlows/handleEventTriggerdByBull.ts — do not return sent / completed when all recipients were filtered or nothing was queued.attik-backend/src/routes/flowOnJob.ts — normalizedStatus: successful should require evidence of send (e.g. emailResults with resendId, or documented queued+completed path), not only FlowActionResult.status === completed.attik-backend/src/util/functions/emails/handleRawEmail.ts, attik-backend/src/events/bullmq/emailWorker.ts — emailResults / resendId appended after Resend; gaps here explain empty Resend when UI looks green.tests/integration/email.rendering.test.ts and/or tests/unit/attributePathResolver.test.ts — company To + tags Contains on full job should queue/send; zero recipients should not report success.attik-frontend/src/components/flowStatus/ActionStatusCard.tsx, FlowAccordion.tsx — surface per-recipient filter errors when emailResults is empty but resData.data has errors (e.g. “Contact filtered out by conditions”).attik-frontend/src/app/tools/action-flow/ — warn when To includes company and conditions reference tags / contact roles.contact-already-on-job logic (track on that ticket).attik-backend/src/util/functions/emailBuilder/renderEmail.tsattik-backend/src/util/functions/actionFlows/attributePathResolver.tsattik-backend/src/util/functions/actionFlows/handleEventTriggerdByBull.tsattik-backend/src/routes/flowOnJob.tsattik-backend/src/util/functions/actionFlows/companyFlagToFakeContact.tsPlease authenticate to join the conversation.
In Progress
Main App
13 days ago
Linear
Get notified by email when there are changes.
In Progress
Main App
13 days ago
Linear
Get notified by email when there are changes.