MARKETING + PRODUCT ANALYTICS

Find your people. See what keeps them.

Connect the campaign to the signup, the first payment and the next visit. One place to see what brings customers in. And what brings them back.

Explore the demoJoin the waitlist

Maya Fischer

Product manager · Team plan, 8 seats · Berlin

  1. CampaignClicked the ops-teams ad on LinkedIn
    Jun 4
  2. SignupMade an account 2 days later
    Jun 6
  3. First payment$294 for the Team plan, 13 days later
    Jun 19
  4. Came back91 days active since then
AprJunJulAugSepOctJunJulAugSepOct
01
One place for marketing, product and revenue

Campaigns, funnels and MRR read the same events about the same people.

02
No cookies by default

Visitors are counted with an id that changes every day. Page text, typing and session replay are never collected.

03
Your events are files you can take

Export CSV or Parquet, keep a copy in your bucket, or run it on your own server.

WHAT IT FINDS WITHOUT BEING ASKED

Reports nobody thought to ask for.

Vedulo answers the questions you bring. It also goes through your events on its own and brings you what it found.

It writes the reports an analyst would have to think of.

Each run tries thousands of reports on your events: the paths before someone cancels, the campaigns that never pay back, what the people who stay did in their first days. A finding has to hold on later people it never saw, and at most five reach you. If nothing holds, you get nothing.

Read them in the demo

Northpad: 34,993 reports looked at, 5 shown

Free-templates has returned 0.005× what it cost by day 35, against 0.29× for the rest of your ad spend.

It cost 51,558 and the people it brought have paid 260 so far.

41% of accounts that did “Guest invited”, then “Seat requested” within 30 days upgraded in the next 14 days, against 1.6% of accounts like them.

Of those who upgraded, 58% had this first; of those compared, 5%.

6.5% of accounts whose active people fell by half or more in the 14 days before cancelled in the next 14 days, against 1.1% of accounts like them.

Of those who cancelled, 48% had this first; of those compared, 14%.

It names who is about to pay or leave, with no goals to set up.

Paying, upgrading, cancelling and going quiet are read from your revenue and activity, with nothing to mark first. It gives each person a chance with their own reasons, and checks itself against what really happened. If it can't beat chance, it names nobody and says so.

See who is heading where in the demo

10 customers look likely to cancel

Stopped doing “Task completed”: 49% of them, against 18% of the rest (2.7 times as common)

  • Ida Meyer
  • Deniz Walsh
  • Lina Fischer
  • Ruth Young
  • Omar Martin

Checked on the past: of 95 it flagged two weeks earlier, 14 went on to cancel (1 in 10, against 1 in 50 usually). It caught 14 of the 26 who did. That is 1,256 of 5,349 people, picked at random.

FEWER DASHBOARDS TO DECIPHER

Three questions worth opening analytics for.

Start with the source. Find the friction. Learn what makes people stay.

01 / FOLLOW THE CUSTOMER

Spend on the campaigns that bring customers.

A signup is a start. A paying customer tells you more. Follow revenue back to the campaign, then switch attribution models to see the whole picture.

The free-templates ad brings the most signups and the least money.

Try it in the demo
CampaignSignupsPayingRevenue
brand61274 12.1% $11,920
ops-teams28861 21.2% $13,440
monthly-update24139 16.2% $7,310
project-management-software41828 6.7% $4,090
free-templates1,8469 0.5% $1,020
02 / FOLLOW THE CUSTOMER

Find the step that loses them.

From signup to first value, see exactly where people stop. Click a step, find the people behind the number and open their timeline.

The biggest drop here: 2,784 people created a project, 1,018 went on to invite a teammate.

Try it in the demo
Signed up4,212100%Created a project2,78466.1%Invited a teammate1,01824.2%Active in week one86220.5%Started paying3528.4%1,428 dropped1,766 dropped156 dropped510 droppedSigned up4,212 · 100%Created a project2,784 · 66.1%Invited a teammate1,018 · 24.2%Signed up4,212100%Created a project2,78466.1%Invited a teammate1,01824.2%Active in week one86220.5%Started paying3528.4%1,428 dropped1,766 dropped156 dropped510 droppedSigned up4,212 · 100%Created a project2,784 · 66.1%Invited a teammate1,018 · 24.2%Signed up4,212100%Created a project2,78466.1%Invited a teammate1,01824.2%Active in week one86220.5%Started paying3528.4%1,428 dropped1,766 dropped156 dropped510 droppedCreated a project2,784 · 100%Invited a teammate1,018 · 36.6%Active in week one862 · 31%Signed up4,212100%Created a project2,78466.1%Invited a teammate1,01824.2%Active in week one86220.5%Started paying3528.4%1,428 dropped1,766 dropped156 dropped510 droppedInvited a teammate1,018 · 100%Active in week one862 · 84.7%Started paying352 · 34.6%
  • 1,766 dropped
  • Selin KayaAndroid1 day ago
  • Jonas MeyerWeb2 days ago
  • Priya RaoiPhone4 days ago
03 / FOLLOW THE CUSTOMER

Give people a reason to come back.

See which features your returning users actually use. Compare retention across cohorts and decide what deserves your next week of work.

About half of each week's signups come back in week 1. About a third are still here in week 5.

Try it in the demo
Signed upPeopleWeek 0Week 1Week 2Week 3Week 4Week 5Week 6
Sep 20498100%47%39%35%33%31%30%
Sep 27521100%49%40%36%33%32%
Oct 4476100%46%38%34%32%
Oct 11553100%51%42%37%
Oct 18538100%50%41%
Oct 25590100%52%

TAKE THE CONTROLS

Less pitch. More product.

Explore the demo

The live demo didn't load here. Explore the demo

Open the full demo

Go deeper: people, revenue, experiments, SQL and more

One person, on your website, in your app and on your server

The ad they clicked, the signup on your website, the tasks they finished on their phone and the payments your billing server recorded are on one timeline.

Try it in the demo

Maya Fischer

Product manager · Team plan, 8 seats · Berlin

  1. Jun 4WebClicked the ops-teams ad on LinkedIn and read /features/timeline
  2. Jun 6WebSigned up with Google and created a project
  3. Jun 7iPhoneInstalled the iPhone app
  4. Jun 10WebInvited 3 teammates
  5. Jun 19ServerStarted paying: Team plan, 6 seats
  6. Oct 23iPhoneFinished 14 tasks on the phone
  7. Oct 30ServerAdded 2 seats

Hear what changed this week, and which group it came from.

Vedulo compares this week with the one before, checks whether each change is bigger than normal ups and downs, and names the group behind it. It can send this by email or to Slack.

Try it in the demo

Teammate invited fell 62%

Android (Platform) went from 212 to 31, which accounts for 87% of the drop. It was a step, not a slide: it began on October 27.

Signed up rose 41%

Chatgpt.com (Source) went from 64 to 118, which accounts for 71% of the rise.

See MRR split into new, expansion, contraction and churn.

Monthly recurring revenue split into new, expansion, contraction and churn, with refunds taken off. It comes from Stripe or from your own server, and other currencies are converted at the rate of the day.

Try it in the demo
Monthly recurring revenue$48,260+6.8%
Refunded this month$1,180
Paid inUSD · EUR
NewReturnedUpgradesDowngradesCancelled-$2,000$0$2,000$4,000$6,000Nov 2026Oct 2026Sep 2026Aug 2026Jul 2026Jun 2026NewReturnedUpgradesDowngradesCancelled-$2,000$0$2,000$4,000$6,000Nov '26Sep '26Jul '26

Know when a new onboarding really worked.

Turn a change on for half of new users with a feature flag, then compare what each half did. Vedulo says when a difference is real and when it could be chance.

Try it in the demo

Without guided setup

2,104 people

Created a project60.4%
Invited a teammate23.6%
Started paying7.4%

With guided setup

2,108 people

Created a project73.9%
Invited a teammate26.2%
Started paying9.3%

Real difference. Guided setup gets 13.5 points more people to a first project. A gap this large is very unlikely to be chance.

See the paths people take before they sign up.

Choose any page or event and see the paths that led to it, or what people did next.

Try it in the demo
/1,64042.3%/templates/product-r…1,21031.2%/blog/how-to-run-a-…62016%/features/timeline41010.6%/features/boards64016.5%/pricing1,48038.1%/templates52013.4%/signup2,04052.6%/1.6K42.3%/templa…1.2K31.2%/blog/h…62016%/feature…41010.6%/feature…64016.5%/pricing1.5K38.1%/templa…52013.4%/signup2K52.6%

Write SQL on your own events, and save the answer as a group or an alert.

Query your events, people and visits. Save the answer as a group of people, a column on the people list, or an alert.

Try it in the demo
SELECT person, count(*) AS tasks,
       count(DISTINCT ts::DATE) AS active_days
FROM events
WHERE event = 'task_completed'
GROUP BY person
HAVING count(*) >= 50
persontasksactive_days
u-m3k01x21441
u-m2z0qa18838
u-m3d07c15129
u-m1y12f9722

Save as a groupAdd as a columnAlert when it changes

See who is using it right now.

Watch people arrive a few seconds after it happens, with where they came from and what they are doing.

Try it in the demo

26 people active now

  • WebSigned up from /pricing4 s ago
  • AndroidFinished a task9 s ago
  • WebRead /features/timeline, from Google15 s ago
  • ServerPayment received, Team plan22 s ago
  • iPhoneOpened a board31 s ago

Your coding agent can set it up

Make a key with only the permissions it needs. Over MCP, an agent can add tracking to your code, check that events arrive and build your dashboards. Everything it can do also works over plain HTTP.

Join the waitlist
{
  "mcpServers": {
    "vedulo": {
      "url": "https://cf.vedulo.com/mcp",
      "headers": { "Authorization": "Bearer hz_key_…" }
    }
  }
}

One tool in place of separate marketing, product and revenue tools.

Filter any report by anything you know about a person. Click a row or a bar to narrow it. In a funnel, open the people who stopped and read their timelines.

Marketing

  • Visitors and engaged visits, without cookies
  • Channels, sources, campaigns, UTM terms and content
  • First click, last click, linear, position-based and time-decay attribution
  • Landing and exit pages
  • Countries, regions and cities on a map
  • Devices, browsers and operating systems
  • Busiest hours and days

Product

  • Trends with formulas, against last period or last year
  • Funnels you can click to see who dropped
  • Retention cohorts
  • Journeys before and after any page or event
  • Which features bring people back
  • Feature flags and experiments
  • Insights tested for significance
  • Live view

People and behaviour

  • One person across website, phone apps and server
  • A timeline for every person
  • Details such as plan and role, usable in any filter
  • Groups of people from rules or SQL
  • Automatic clicks and rage clicks, by the names developers gave things
  • Erase a person, including copies in your bucket

Revenue

  • Stripe, with past payments imported
  • Payments sent from your own server
  • Refunds, disputes and other corrections
  • MRR, churn, lifetime value and net retention
  • Any currency, converted at the day's rate

Your data

  • SQL on your own events
  • Dashboards with filters on each tile
  • Public dashboard links
  • PDF of any report or dashboard
  • Alerts by email, Slack or webhook
  • Export as CSV or Parquet
  • A copy in your own bucket
  • API keys with set permissions, and MCP

One line on your website

Paste this into your pages. Your phone app and your server send the same events to the same address, with the React Native and Node libraries or plain HTTP. A payment your server records lands on the same person's timeline as their page views.

Website

<script defer src="https://cf.vedulo.com/hz.js"
        data-key="hz_pub_…"></script>

Server or anything else

curl https://cf.vedulo.com/v1/events \
  -H "Authorization: Bearer hz_sec_…" \
  -d '{"events":[{"event":"subscription_started",
       "user_id":"user-123","revenue":49}]}'

Questions

Does it use cookies?

No. By default nothing is stored in your visitors' browsers, and visitors are counted with an id that changes every day. If you want to recognise people across days, one setting stores an id on the device, which in many countries needs consent.

Who owns the data, and can I take it out?

You do. Download every event as CSV or Parquet, keep a copy in your own bucket, or query it with SQL. Running Vedulo yourself, the data is files in your own folder or bucket.

Does it work for phone apps and backends?

Yes. They send events to the same address as your website. Once a person signs in, their visits, app sessions and server events join up as one person.

What does it never collect?

It never reads the text on your pages or what people type, and there is no session recording. Card numbers and passwords sent by mistake are removed before anything is stored.

Can I run it on my own servers?

Yes. It is one container that keeps its data in a folder or an S3 bucket, with no database server to look after.

BRING YOUR OWN QUESTIONS

Know what’s working. Build more of it.

Access is by invitation for now. Joining the waitlist is how to get one. You can look around the demo first.

Explore the demo

Your email is used only to invite you.