Skip to content

Add crm telemetry - #6695

Merged
Karakatiza666 merged 2 commits into
mainfrom
add-crm-telemetry
Jul 28, 2026
Merged

Add crm telemetry#6695
Karakatiza666 merged 2 commits into
mainfrom
add-crm-telemetry

Conversation

@Karakatiza666

@Karakatiza666 Karakatiza666 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Add hooks for Product Fruits (user guiding) and ConceptualHQ (conversion measurement telemetry), added conversion-related tracking of events for scheduling a demo through Calendly and trying canned demos.

The goal of the PR is to capture events of user pressing the "Schedule a demo" link on try.feldera.com and navigating to explore the canned demos, as well as some metadata around that (where did the user click the button, was the demo pipeline tried before), and send them to both PostHog and ConceptualHQ.

Integration with Product Fruits is needed to set up user-guiding experiences for try.feldera.com. Its initialization is similar to PostHog and ConceptualHQ, so I decided to roll all three together, making sure the code is organized nicely. PostHog was already getting initialized, I only re-located relevant code for more consistency.

In the GET /config API response I renamed 'telemetry' to 'posthog' which is its actual contents. pipeline-manager and web-console update in lockstep so that's not a problem; the configuration option is still called 'telemetry' so existing deployments wouldn't change.

@Karakatiza666
Karakatiza666 requested review from gz, mihaibudiu and snkas and removed request for snkas July 22, 2026 16:16
#[derive(Serialize, ToSchema)]
pub(crate) struct Configuration {
/// Telemetry key.
pub telemetry: String,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tnis is public facing IIRC we should just keep the name telemetry as is
we dont know if anyone parses this and relies on this key to be there, low risk but can be avoided

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gz this is used only for web-console telemetry so realistically only used by us. I would like to update it to keep naming more meaningful and consistent with other providers, since again nothing else should be impacted. What I didn't touch for now are pipeline-manager options so that our deployments are not affected

@mythical-fred mythical-fred left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — solid gating, good tests.

rel="noreferrer"
onclick={() =>
captureEvent('calendly_opened', {
url: 'https://calendly.com/d/cqnj-p63-mbq/feldera-demo'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: this Calendly URL is now hardcoded here and also in BookADemo.svelte (where it was extracted to a const). Consider sharing a single constant so there is one place to update if it ever changes.

@mihaibudiu mihaibudiu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really understand what is being measured, can you write a description?

rel="noreferrer">Upgrade</a
rel="noreferrer"
onclick={() =>
captureEvent('calendly_opened', {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First, why isn't this using the constant in the other file?
Second, why is this in this file which seems unrelated to the demos?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, there is a contextual tooltip that offers users to upgrade to enterprise license to be able to stop the pipelines. I will edit the code to re-use the calendly link as a constant across multiple files

@Karakatiza666

Copy link
Copy Markdown
Contributor Author

I did mention it in the description; edited the description to make it less ambiguous

@mihaibudiu

Copy link
Copy Markdown
Contributor

But some of these seem to exist in all installations, not just try.feldera.com. Is that expected?

@Karakatiza666

Karakatiza666 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

The code that tracks events runs is called unconditionally, but it only takes effect (events get registered) if the pipeline-manager has PostHog / ConceptualHQ app tokens configured. For the first rollout we will just have them set up for our try.feldera.com deployment

@Karakatiza666
Karakatiza666 added this pull request to the merge queue Jul 23, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 23, 2026
@mihaibudiu
mihaibudiu added this pull request to the merge queue Jul 26, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 26, 2026
@Karakatiza666
Karakatiza666 added this pull request to the merge queue Jul 27, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 27, 2026
@Karakatiza666
Karakatiza666 added this pull request to the merge queue Jul 27, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 27, 2026
@Karakatiza666
Karakatiza666 force-pushed the add-crm-telemetry branch 2 times, most recently from ed13db4 to c5bbb8f Compare July 28, 2026 07:10
Signed-off-by: Karakatiza666 <bulakh.96@gmail.com>
…nceptualhq

Signed-off-by: Karakatiza666 <bulakh.96@gmail.com>
@Karakatiza666
Karakatiza666 enabled auto-merge July 28, 2026 07:10
@Karakatiza666
Karakatiza666 added this pull request to the merge queue Jul 28, 2026
Merged via the queue into main with commit 7a3bb19 Jul 28, 2026
1 check passed
@Karakatiza666
Karakatiza666 deleted the add-crm-telemetry branch July 28, 2026 09:59

@mythical-fred mythical-fred left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE-carry.

Rebase-only refresh. The two current commits (65da96a9 ProductFruits/ConceptualHQ hooks, da54a74c conversion-event tracking) have byte-identical file lists to my prior tip 57b4c573 — same +/- counts on the same 18 files. Prior APPROVE stands. No AI-attribution trailers, Signed-off-by on both.

saxena-dev pushed a commit to saxena-dev/feldera that referenced this pull request Aug 4, 2026
virtua scrolls to an estimated offset for rows outside the rendered
window and mounts the row over several frames, but the post-scroll
repaint only scheduled a single requestAnimationFrame — if the row
wasn't mounted on that frame, the highlight was dropped with no
retry beyond an incidental onscroll. Retry every frame until the row
actually mounts (bounded) instead of assuming one frame is enough.

PR feldera#6695 papered over this by bumping the test's poll timeout, which
didn't fix the underlying race and it flaked again in CI.

Signed-off-by: Ben Pfaff <blp@feldera.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants