New to Kestra?
Use blueprints to kickstart your first workflows.
Capture t0 LinkedIn analytics for every campaign post with Kestra. A webhook triggers a baseline reaction snapshot and posts it to Slack.
Lift is meaningless without a baseline. This blueprint gives every LinkedIn campaign post a t0 measurement, the moment the publishing workflow goes live, it calls a Kestra webhook with the post's activity URN, io.kestra.plugin.linkedin.GetPostAnalytics captures the first reaction snapshot, and Slack records the starting numbers. Every later report can now express performance as growth since launch rather than a raw count with no context.
post_published (io.kestra.plugin.core.trigger.Webhook) exposes a URL keyed by linkedin_campaign_launch. The publishing workflow calls it with a JSON body such as {"activity_urn": "urn:li:activity:..."}.baseline_snapshot (io.kestra.plugin.linkedin.GetPostAnalytics) resolves the URN from {{ trigger.body.activity_urn }}, falling back to the activity_urn input for manual test runs, and fetches the reaction data. Outputs include posts, totalPosts, and totalReactions.notify posts the tracked URN and the scalar t0 totals to Slack, timestamped by the execution itself.errors block sends a distinct Slack alert when the snapshot fails, so no campaign starts untracked.posts output for any downstream storage step.The snapshot has to happen at an unpredictable moment, whenever marketing hits publish. A webhook trigger turns that event into an execution, secrets keep the token out of the payload, and the execution history becomes the audit log of every campaign launch.
LINKEDIN_ACCESS_TOKEN: OAuth2 access token sent as Bearer auth for LinkedIn REST API calls.SLACK_WEBHOOK_URL: Slack incoming webhook URL./api/v1/executions/webhook/company.team/linkedin-campaign-launch-tracker/linkedin_campaign_launch, with the URN in the body.io.kestra.plugin.core.kv.Set keyed by URN so later runs can compute lift in the flow itself.activityUrns for multi-post campaigns.