Goals record the conversion, from first visit to paid.
Alex Moreau: goal reached, paid plan.
Funnel: visitor, trial, paid.
Connect everything in one place.What you know about each person, all in one profile.
Example data
Data sources, all flowing into fromHello
Website: Visits, clicks, forms
Product usage: Events from your app
Ad campaigns: UTMs, click IDs
SMS: Replies, opt-outs
Email: Opens, clicks, replies
Payments: Trials, plans, revenue
CRM: Company, custom fields
Feedback: NPS, survey scores
Spreadsheets: Contacts and events
Preferences: Consent, unsubscribes
Example profile in fromHello
Alex Moreau, Head of operations at Acme, alex@acme.com.
Segment: Paying customer, from payments.
First touch: Paid search, from ad campaigns.
Last visit: Pricing page, from the website.
Plan: Pro, annual, from payments.
Last reply: 2 days ago, from email.
NPS: 9, from feedback.
Anonymous history merged at signup.
WebsiteVisits, clicks, forms
Product usageEvents from your app
Ad campaignsUTMs, click IDs
SMSReplies, opt-outs
EmailOpens, clicks, replies
fromHello
AManon_7f3c2aAnonymous visitor
Alex Moreau
Head of operations · Acme
alex@acme.com
Paying customer
First touchPaid search
Last visitPricing page
PlanPro, annual
Last reply2 days ago
NPS9
Anonymous history merged at signup
PaymentsTrials, plans, revenue
CRMCompany, custom fields
FeedbackNPS, survey scores
SpreadsheetsContacts and events
PreferencesConsent, unsubscribes
Data comes in through the tracking snippet, the API, a CSV import or the email and SMS providers you connect.
Then act on what each person does.Segment them, run journeys, read replies, track goals.
Journeys
Journeys that wait for people, not dates.
Triggers
Entry
Actions
Send email
Send SMS
Webhook
Update profile
Add to segment
Remove from segment
Enroll in journey
Flow control
Wait
Wait for event
Branch
A/B split
Endings
Exit
Goal
Welcome seriesActiveLive: v3Save draftPublish v4
Viewed pricingEveryone elseABon eventon timeout
Signed up
Branch2 branches
Send emailPricing follow-up
Send emailThanks for joining
Welcome email50% / 50%
Send emailQuick start guide
Send emailThree quick wins
Wait for eventEvent: feature_used · Timeout: 3 days
GoalActivated
Exit
Wait for event
NameWait for event
Event namefeature_used
Timeout3days
Connect two outgoing edges and label them on event / on timeout so the journey routes the right way when the wait resolves.
Entry
NameSigned up
Trigger eventsigned_upEvent propertyAny property
+ Add trigger event+ Attribute+ Segment
Branch
#1Viewed pricing
pricing_vieweddid≥2in last7daysAny property
#2Everyone else
Emailis set
Add branch
Send email
NameSend email
TemplatePricing follow-up
Subject and body will be loaded from the template at send time.
Override senderUse template setting
Send email
NameSend email
TemplateThanks for joining
Subject and body will be loaded from the template at send time.
Override senderUse template setting
A/B split
NameWelcome email
Split namee.g. Subject line test
Variant A (%)50
Variant B (%)50
Connect two edges from this node: the first is Variant A, the second is Variant B.
Send email
NameSend email
TemplateQuick start guide
Subject and body will be loaded from the template at send time.
Override senderUse template setting
Send email
NameSend email
TemplateThree quick wins
Subject and body will be loaded from the template at send time.
Override senderUse template setting
Goal
NameGoal
Goal nameActivated
Conversion event (optional)feature_used
Exit
NameExit
01Journeys
Journeys that wait for people, not dates.
Wait for event: one path when it happens, another on timeout.
Branch on a profile field, an event or a segment. First match wins.
14 node types, including A/B split, webhook and goal.
Example journey Welcome series, open in the journey builder, active and live as version 3. Entry on signed_up leads to a branch with two named branches, where the first match wins: Viewed pricing (pricing_viewed at least 2 times in the last 7 days) and Everyone else (email is set). Each branch sends its own email, then both reach an A/B split named Welcome email, set to 50/50, which routes each person to one of two emails. A Wait for event node then waits up to 3 days for feature_used. On the event, the journey reaches the goal Activated. On timeout, it exits. The settings panel of the wait is open. On wide screens, a palette lists all 14 node types in four groups: triggers, actions, flow control and endings. The header holds Save draft and Publish v4. On narrower screens the canvas starts lower in the journey, at the branch or at the A/B split, and the header keeps Publish v4 only. On phones it keeps neither, and the settings panel sits under the canvas.
Segments
Who opened, who clicked, who never replied.
Segments/Pricing intent from paid searchDynamicExample data
Whereall of these are trueall of these are trueany of these is true
In words: profiles that viewed pricing at least 2 timesin the last 7 days, and first came from paid search and never replied.
02Segments
Who opened, who clicked, who never replied.
Filter by event, profile field, message status or suppression.
Event rules: at least N times, over all time or a rolling window.
Nest AND/OR groups and watch the match count as you edit.
Example dynamic segment, Pricing intent from paid search, in the rule builder. Where all of these are true: Pricing Viewed at least 2 times in the last 7 days, Channel (the first-touch channel) equals Paid search, and Has never had status Replied. A pill under the rules shows 32 profiles match. When the number of times, the time window or AND and OR changes, the pill shows Loading, then the new count: a preview of the rules, not live membership. A line under the builder puts the rules in words. On a narrow screen, the builder keeps the first two rules, and 36 profiles match.
Channels & inbox
The message goes out. The reply shows up on their profile.
InboxEmailSMSIn-appWeb pushAd audiences
Acmealex@acme.comExample data
Re: First project tips2 messages3 messages12m agojust now
Scroll up for older messages
Youjust now
Yes, any time during the trial. Map your columns on import and you’re set.
Alex Moreau12m ago
Thanks. Can we import our customer list from a CSV before the trial ends?
You2h ago
Your first project is ready. Import your contacts from a CSV or add the tracking snippet to your site.
Yes, any time during the trial. Map your columns on import and you’re set.Write a reply…
Timeline9
Today
Email replied12m agofrom: alex@acme.comsubject: Re: First project tipsmessageId: 4b7e2a90-1c5d-4f3a-9e61-7a2b8c0d4e15+3 more
Email receivedReceivedRe: First project tips12m ago
EmailRepliedFirst project tips2h ago
EntryReply follow-up
Trigger eventemail_replied
Email deliverySend transactional and marketing emails through your preferred providerConnect
RResendresenddefaultConnected
Email replies
replies@yourapp.exampleConnected · checking every 30sReply-To email addressreplies@yourapp.exampleServerimap.yourapp.example:993 (SSL/TLS)
How it worksfromHello sends emails with a Reply-To address pointing to your reply mailboxWhen a contact replies, the email lands in your mailboxfromHello checks the mailbox for new replies and shows them on the profile page
Connect email providerProviderResendSendGridPostmarkSMTPMicrosoft 365ResendSendGridPostmarkSMTPMicrosoft 365Display nameResendSendGridPostmarkSMTPMicrosoft 365API key*From email*From nameWebhook signing secretServer token*From email*From nameSMTP host*Port*Username*Password*From email*From nameSend from your own Microsoft 365 mailbox and detect replies in it. You sign in with Microsoft; fromHello never sees your password.Connect with Microsoft
Template nameTrial endingMessage
Hi {{firstName}}, your trial ends in 3 days. Don'’t lose your journeys: yourapp.example/plans Reply STOP to opt out.
Retarget: trial, not paidTrial, not paidMetaTrial, not paid1,284 membersSynced2h ago
Qualified B2B leadsQualified leadsLinkedInQualified leads612 membersSynced1d ago
Win-back: churnedChurned customersGoogleChurned customers2,0212,047 membersSyncedPendingSyncingSynced3d agojust now
Win-back: churnedGoogle AdsSync nowSyncing…
2,0212,047 membersLast synced 3d agojust nowChurned customers
Sync history
Sync statusStartedDurationAddedRemoved
PendingSyncingSyncedjust now3s+38-12
Synced3d ago2s+21-4
Contact details are hashed before upload. An audience syncs when you click Sync now.
03Channels & inbox
The message goes out. The reply shows up on their profile.
Email through Resend, Postmark, SendGrid, SMTP or Microsoft 365.
SMS, in-app banners and modals, opt-in web push and ad audiences.
A reply can start a journey, or wake one that’s waiting for it.
Example app screens with a channel switcher. Inbox: the profile of Alex Moreau (alex@acme.com) at Acme shows your email and their reply in one conversation thread, with an answer drafted and ready to send. Its timeline shows the email_replied event with its properties and the received email, and a journey entry, Reply follow-up, is set to start on email_replied. Email: Resend connected as the default provider, a reply mailbox connected over IMAP, and the provider picker with Resend, SendGrid, Postmark, SMTP and Microsoft 365. SMS: a template that counts 115 characters and 1 segment, then 2 segments in Unicode once a curly apostrophe replaces the straight one, with Twilio, SMSPartner, MessageBird and HTTP API as providers. In-app: the snippet’s banner and modal on a sample page, for an identified visitor. Web push: one generic notification, for visitors who allowed notifications. Ad audiences: Meta, LinkedIn and Google audiences, each linked to a segment, synced when you click Sync now.
Results
Judge each journey by its goals.
Journey
Welcome seriesActive
7 days14 days30 days90 days
Example data
Entered
2074018122,184▲6.7%▲10.8%▲15.3%▲25.8%
vs previous: 194vs previous: 362vs previous: 704vs previous: 1,736
Completed
61.8%79.6%89.2%94.9%▼37.3%▼19.3%▼9.3%▼3.3%
vs previous: 98.5%vs previous: 98.6%vs previous: 98.3%vs previous: 98.1%
Failed
0.5%0.5%0.5%0.6%0%▼16.7%▼28.6%▼33.3%
vs previous: 0.5%vs previous: 0.6%vs previous: 0.7%vs previous: 0.9%
Avg duration
2d2d2d3d▼8.1%▼3.6%▼5.2%0%
vs previous: 3dvs previous: 3dvs previous: 3dvs previous: 3d
Goals
Reached each goal nodeShare of total enrollments
Activated
19.3%21.2%22.4%22.0%
4085182480
Variant comparison
Welcome email
A 400
B 398
Variant B winning
97% confidence+34% vs other
Reached downstream node97% confidence
A18.8%
75
B25.1%
100
Email engagement
A61.3%
245
B64.1%
255
04Results
Judge each journey by its goals.
Entered, completed and failed per journey, over 7, 14, 30 or 90 days.
A goal funnel: how many reached each one.
A/B splits call a winner only with enough data and a significant lift.
Example results for the active journey Welcome series over the last 30 days. The period control also offers 7, 14 and 90 days. 812 entered, up 15.3% on the previous period. 89.2% completed, down from 98.3%, and 0.5% failed, down from 0.7%. The average duration is 2 days, down from 3. 182 enrollments, 22.4%, reached the goal node Activated. An A/B card for the split Welcome email covers the whole test, not the period: variant B winning, 97% confidence, +34% vs other. On its success metric, reaching the downstream node, A has 75 of 400 people (18.8%) and B 100 of 398 (25.1%). Email engagement is tracked too, with no winner. On a narrow screen, the A/B card shows the success metric only.
AI & MCP
Your AI, plugged in.
ClaudeExample
›What should we automate first?What should we automate first?
fromHellolookup_skillonboarding playbook
fromHelloget_top_eventssigned_up, project_created
fromHelloget_segment_growthgrowth by segment
A short list of journeys to start with, ranked.
Claude CodeExample
›Draft a welcome journey for new signups. Show me before publishing.Draft a welcome journey for new signups. Show me before publishing.
Draft ready. Publishing takes a confirmation step.
CursorExample
›Put the plan people pick at signup on their profile.Put the plan people pick at signup on their profile.
fromHellolist_event_propertiesplan, on signed_up
fromHellocreate_custom_fieldplan
fromHellocreate_event_mappingplan, onto the profile
From now on, every signup's plan lands on the profile.
CodexExample
›Where do new signups drop off?Where do new signups drop off?
fromHelloget_journey_performanceby journey
fromHelloget_engagement_funnelsent to clicked
fromHelloget_retention_curveretention by day
Report ready, the weakest step first.
Claude CodeExample
›Rewrite the email with the fewest clicks. Leave the live journey as it is.Rewrite the email with the fewest clicks. Leave the live journey as it is.
fromHelloget_template_performanceWelcome clicks least
fromHellocreate_templateWelcome, rewritten
fromHellosave_journey_draftWelcome series, draft
The rewrite is in the draft. The live journey stays as it is until you publish.
59MCP tools
The 59 MCP tools, grouped as playbooks and workspace context, segments, journeys, templates, tracking, analytics, people and approval.
Use the AI subscription you already have to ideate, build, track, analyze and improve. 59 tools, one MCP server.
Claude appClaude CodeCursorCodexAny MCP client
https://mcp.fromhello.io/v1
Journeys your agents build stay drafts until you publish them. MCP calls are never metered. No AI subscription? Team and up include AI credits for the built-in assistant.
How it all comes together.Six plays to grow your business.
Example data
Paid acquisition
Turn high-intent visitors into named leads.
Illustration: an anonymous visitor reads your pricing page, then sees your ad, “Your trial is waiting.”, comes back and signs up as Alex Moreau.
Sales
Hand sales the trials that invited their team.
Illustration: Alex Moreau invites 3 teammates in your app and views pricing, enters the Product-qualified segment, and your #sales channel on Slack gets “Alex Moreau (Acme) is product-qualified.”
Expansion
Offer the upgrade when they hit the limit.
Illustration: your app shows 5 of 5 seats used, an in-app message says “You’ve reached your plan’s limit.” with an Upgrade to Pro button, and the account is upgraded to Pro.
Payments
Recover failed payments before they cost a customer.
Illustration: a card is declined, an email says “Your payment didn’t go through” for €49 on the Pro plan, with an Update card button, an SMS follows on day 3, and the payment goes through.
Retention
Turn cancellations into conversations.
Illustration: Alex Moreau cancels their subscription, you ask what would have made them stay, and they reply “We needed SSO for the whole team.”
Reviews
Ask your promoters for a review while they’re still glowing.
Illustration: a customer answers 9 to “How likely are you to recommend us?”, then gets an email, “Glad it’s working for you.”, asking for a review, with a follow-up on day 5.
fromHello is built by Synapsr,the studio behind Pelli and Louez.
Over 7,000 photographers deliver their photos with Pelli.
Good to know.Price, data, the AI and running it yourself.
The questions people ask first.
What is fromHello?
fromHello is open-source marketing automation: first-party tracking, real-time segments and journeys triggered by what people do, with email, SMS, in-app, web push and ad audiences in one platform. Use it on fromHello Cloud, or self-host it under AGPL-3.0.
What happens after I join the waitlist?
When you join the fromHello waitlist, the page confirms right away that you’re on the list, and fromHello emails you when your spot opens. Early access comes in stages, with hands-on onboarding: we help you get set up and bring your contacts over.
What does fromHello cost? Can I pay monthly?
fromHello Cloud starts at €39 a month, excluding VAT, for up to 2,500 contacts on Core, and every plan can be paid monthly. Core uses your own email and SMS providers and AI over MCP; Team, from €59, adds bundled email and AI credits. Both are month-to-month, up to 20,000 contacts. Business and Enterprise run on a 12-month term, billed monthly. Deleted, anonymous and suppressed contacts never count. Self-hosting is AGPL-3.0, on servers and providers you run and pay for.
Do you have a startup program?
Yes. Startups under two years old with less than €5M raised can apply for 12 months of Core on us, up to 20,000 contacts, with hands-on onboarding. See the startup program.
Does the AI send anything without my approval?
No AI tool in fromHello sends a message, but AI actions can change live journeys without a confirmation step. A journey your AI agents build stays a draft until it is published. Publishing, pausing or deleting through an agent takes a confirmation step in your AI client. Other edits, such as changes to a segment or a template, apply when saved. Opt-insend-time personalization rewrites each email without per-message review. If the AI fails, the send waits by default.
Where is my data stored?
On fromHello Cloud, your data sits in the Postgres we run; self-hosted, in your own, and with your own SMTP server and Ollama it can stay entirely on your servers. The services doing the work receive what they need: the providers sending your email and SMS, the AI model and ad platforms. Export a contact as JSON, or erase their profile and messages, through the API. Every erasure is audit-logged. Unsubscribes and bounces feed a suppression list, checked before every send.
Can I move from my current tool to fromHello?
Your contacts can move to fromHello as a CSV with custom fields, or through the API along with past events, dated as they happened. Segments, templates and journeys are rebuilt rather than imported. Opt-outs, consent records and message history don’t import, so leave anyone who unsubscribed, bounced or complained out of the file. During early access, we help you get set up and bring your contacts over. fromHello publishes comparisons with other tools.
What’s the difference between fromHello Cloud and self-hosting?
fromHello Cloud is hosted for you, and we run Postgres, Redis and every upgrade; from Team up, email sending is set up and AI credits are included. Self-hosted under AGPL-3.0, fromHello runs on your own servers: you run all of it and bring your own email provider and AI key, or local models through Ollama. Either way, SMS goes through your own provider, and your own AI agent can connect over MCP.
Can I run fromHello myself, or get my data out?
Yes: fromHello is open source under AGPL-3.0, and you can run it on your own servers, with unlimited contacts. On fromHello Cloud, your contacts, events and messages read out as JSON through the API. Self-hosted, they sit in your own Postgres, and pg_dump takes the whole database.
Early access
fromHello Cloud
You didn’t start thisto stay small.
Early access to fromHello Cloud opens in stages. Onboarding is hands-on: we help you get set up and bring your contacts over.