25386663
CustomerApi.Jobs.PublishNotificationJob
Queue
notifications
Attempt
5 of 5
Priority
0
Tags
...
Node
customer_api@10.10.1.109
Queue Time
00:00.893
Run Time
00:00.067
Inserted
3h ago
Scheduled
3h ago
Completed
—
Cancelled
—
Discarded
3h ago
Args
%{
"account_id" => "34567",
"data" => %{
"account_insight_agent_id" => "da0f9b3e-2ed3-4a0b-a1bf-63344873f9f0",
"insights" => [
%{
"action_plan" => "Begin by tightening the audience definition around users who are most likely to benefit from the feature right now. Rather than treating the announcement as a general awareness play, reposition it as a targeted adoption tactic for users who have already completed the prerequisite behaviors or reached the relevant stage in their journey. A smaller, better-qualified audience often produces stronger click-through, deeper engagement, and better long-term feature uptake than a broad blast.\n\nThen revisit the message itself with a more outcome-oriented framing. If the copy currently introduces the feature in functional terms, rewrite it so the user immediately understands what problem it solves, how quickly they can get value from it, and what action to take next. Consider whether the CTA is too generic or too early in the user journey. Strong feature adoption content usually connects the feature to a familiar pain point, a specific benefit, and a low-friction next step.\n\nAfter that, think about sequencing. A single announcement often performs best when paired with follow-up guidance: for example, an announcement to create awareness, a contextual prompt when the user reaches the right area of the product, and a reinforcement message after first interaction. This creates a more complete adoption path instead of expecting one message to do all the work. Review the current experience mix and decide whether this banner should be the first touch in a more intentional progression.",
"actions" => [],
"cta_text" => "Refine launch targeting",
"entity_id" => nil,
"entity_type" => "banner",
"expected_impact" => "Better targeting and sequencing could increase feature adoption rates and improve engagement among qualified users.",
"finding" => "A recently launched feature message appears to have **broad reach** but only **moderate downstream engagement**, which creates an opportunity to improve adoption efficiency.\n\n**Observed pattern**\n- High audience exposure\n- Strong visibility at the top of funnel\n- Lower-than-expected follow-through into feature use\n\nThis usually means the announcement is being seen, but not by the users who are most ready to act on it, or the message is highlighting the feature before users understand its immediate value.",
"outcomes" => ["adoption", "engagement", "retention"],
"priority" => "medium",
"title" => "Feature announcement could drive stronger adoption with sharper targeting",
"type" => "opportunity"
},
%{
"action_plan" => "Start by treating promoter responses as the beginning of a journey instead of the end of one. When users express strong satisfaction, that is an unusually high-signal moment to either invite advocacy or deepen their relationship with the product. Review whether your current NPS follow-up simply thanks users for their feedback or whether it intentionally channels them into a next step. Promoters are often the best audience for lightweight asks because trust has already been established.\n\nFrom there, separate your follow-up strategy into two tracks: one for external advocacy and one for deeper in-product adoption. Some promoters are ideal candidates for review requests, referral invitations, or customer story outreach. Others may be better suited for advanced education, beta participation, or feature discovery. The important shift is to stop treating all promoters the same. Build follow-up experiences that match the kind of value exchange you want to create, and make the ask feel proportional to the goodwill they have already shown.\n\nLastly, make promoter follow-up measurable. Add clear goals around clicks, conversions, and downstream product behaviors so you can see whether these experiences are creating real leverage. Without that instrumentation, promoter outreach can feel useful without proving impact. A more structured promoter strategy can help you extend the value of your NPS program beyond sentiment tracking and into tangible business outcomes.",
"actions" => [],
"cta_text" => "Activate promoter follow-up",
"entity_id" => nil,
"entity_type" => "nps",
"expected_impact" => "Operationalizing promoter follow-up could improve engagement, expansion behavior, and long-term retention.",
"finding" => "Your feedback program appears to surface a meaningful group of **high-intent promoters**, creating a strong opportunity to turn satisfaction into action.\n\n**What stands out**\n- Promoters are giving clear positive sentiment\n- Positive feedback appears concentrated among users who have already adopted core workflows\n- There is likely an untapped opportunity to route these users into advocacy, referrals, reviews, or advanced feature education\n\nIn many SaaS environments, promoter feedback is collected successfully but not operationalized into the next experience.",
"outcomes" => ["engagement", "retention", "adoption"],
"priority" => "medium",
"title" => "NPS promoters are a strong audience for advocacy and expansion moments",
"type" => "opportunity"
}
]
},
"notification_id" => "ad8fb693-5e5b-4738-9692-1a14c7737f3f",
"workflow_key" => "insight-opportunity-added"
}
Meta
%{"orig_scheduled_at" => 1777573252051262, "structured" => true}
Errors
Attempt 5—3h ago
** (Oban.PerformError) CustomerApi.Jobs.PublishNotificationJob failed with {:error, %Knock.Response{url: "https://api.knock.app/v1/workflows/insight-opportunity-added/trigger", body: %{"code" => "workflow_missing", "message" => "The workflow you specified was not found in this environment. Make sure you commit the workflow before trying to invoke it. See the docs: https://docs.knock.app/send-and-manage-data/environments", "status" => 404, "type" => "invalid_request_error"}, headers: [{"date", "Thu, 30 Apr 2026 18:22:28 GMT"}, {"content-type", "application/json; charset=utf-8"}, {"content-length", "278"}, {"connection", "keep-alive"}, {"access-control-allow-credentials", "true"}, {"access-control-allow-origin", "*"}, {"access-control-expose-headers", "authorization x-knock-user-token x-knock-environment"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-content-type-options", "nosniff"}, {"x-frame-options", "SAMEORIGIN"}, {"x-request-id", "GKs1islYpKsdRGQBBy2m"}, {"x-xss-protection", "1; mode=block"}], status: 404}}
Attempt 4—3h ago
** (Oban.PerformError) CustomerApi.Jobs.PublishNotificationJob failed with {:error, %Knock.Response{url: "https://api.knock.app/v1/workflows/insight-opportunity-added/trigger", body: %{"code" => "workflow_missing", "message" => "The workflow you specified was not found in this environment. Make sure you commit the workflow before trying to invoke it. See the docs: https://docs.knock.app/send-and-manage-data/environments", "status" => 404, "type" => "invalid_request_error"}, headers: [{"date", "Thu, 30 Apr 2026 18:21:54 GMT"}, {"content-type", "application/json; charset=utf-8"}, {"content-length", "278"}, {"connection", "keep-alive"}, {"access-control-allow-credentials", "true"}, {"access-control-allow-origin", "*"}, {"access-control-expose-headers", "authorization x-knock-user-token x-knock-environment"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-content-type-options", "nosniff"}, {"x-frame-options", "SAMEORIGIN"}, {"x-request-id", "GKs1gtSaq1QIFIsBSx-D"}, {"x-xss-protection", "1; mode=block"}], status: 404}}
Attempt 3—3h ago
** (Oban.PerformError) CustomerApi.Jobs.PublishNotificationJob failed with {:error, %Knock.Response{url: "https://api.knock.app/v1/workflows/insight-opportunity-added/trigger", body: %{"code" => "workflow_missing", "message" => "The workflow you specified was not found in this environment. Make sure you commit the workflow before trying to invoke it. See the docs: https://docs.knock.app/send-and-manage-data/environments", "status" => 404, "type" => "invalid_request_error"}, headers: [{"date", "Thu, 30 Apr 2026 18:21:30 GMT"}, {"content-type", "application/json; charset=utf-8"}, {"content-length", "278"}, {"connection", "keep-alive"}, {"access-control-allow-credentials", "true"}, {"access-control-allow-origin", "*"}, {"access-control-expose-headers", "authorization x-knock-user-token x-knock-environment"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-content-type-options", "nosniff"}, {"x-frame-options", "SAMEORIGIN"}, {"x-request-id", "GKs1fXIpAatHhqwAaeHD"}, {"x-xss-protection", "1; mode=block"}], status: 404}}
Attempt 2—3h ago
** (Oban.PerformError) CustomerApi.Jobs.PublishNotificationJob failed with {:error, %Knock.Response{url: "https://api.knock.app/v1/workflows/insight-opportunity-added/trigger", body: %{"code" => "workflow_missing", "message" => "The workflow you specified was not found in this environment. Make sure you commit the workflow before trying to invoke it. See the docs: https://docs.knock.app/send-and-manage-data/environments", "status" => 404, "type" => "invalid_request_error"}, headers: [{"date", "Thu, 30 Apr 2026 18:21:10 GMT"}, {"content-type", "application/json; charset=utf-8"}, {"content-length", "278"}, {"connection", "keep-alive"}, {"access-control-allow-credentials", "true"}, {"access-control-allow-origin", "*"}, {"access-control-expose-headers", "authorization x-knock-user-token x-knock-environment"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-content-type-options", "nosniff"}, {"x-frame-options", "SAMEORIGIN"}, {"x-request-id", "GKs1eMRjqIXv5zkCV_5h"}, {"x-xss-protection", "1; mode=block"}], status: 404}}
Attempt 1—3h ago
** (Oban.PerformError) CustomerApi.Jobs.PublishNotificationJob failed with {:error, %Knock.Response{url: "https://api.knock.app/v1/workflows/insight-opportunity-added/trigger", body: %{"code" => "workflow_missing", "message" => "The workflow you specified was not found in this environment. Make sure you commit the workflow before trying to invoke it. See the docs: https://docs.knock.app/send-and-manage-data/environments", "status" => 404, "type" => "invalid_request_error"}, headers: [{"date", "Thu, 30 Apr 2026 18:20:52 GMT"}, {"content-type", "application/json; charset=utf-8"}, {"content-length", "278"}, {"connection", "keep-alive"}, {"access-control-allow-credentials", "true"}, {"access-control-allow-origin", "*"}, {"access-control-expose-headers", "authorization x-knock-user-token x-knock-environment"}, {"cache-control", "max-age=0, private, must-revalidate"}, {"x-content-type-options", "nosniff"}, {"x-frame-options", "SAMEORIGIN"}, {"x-request-id", "GKs1dHNqJa5okOoAaA8E"}, {"x-xss-protection", "1; mode=block"}], status: 404}}