Skip to main content

AI Assistant

The Joryio Assistant is an in-app AI operator, available from the sparkle button in the app. It works with your real workspace data - it looks at your actual campaigns, journeys, send stats, alerts, tracked events and contact attributes before answering, and it answers in the language you write in.

What you can ask

  • Analyze performance - "How did my last campaign do?", "Analyze the welcome journey". The Assistant reads the structure and the numbers (sent, delivered, opened, clicked, bounced, unsubscribed) and tells you what stands out. Tag a specific campaign or journey with @ to point at it directly.
  • How-do-I questions - it answers from this documentation and links the pages it used.
  • Write copy - subject lines, message bodies, refinements. Copy generation applies your Brand Voice and respects channel length limits.
  • Diagnose problems - "Why did my sends drop?" It checks your active alerts and recent trends.
  • Journey ideas for your industry - "What automations should I build?" See the playbook library below.

The Apply safety model

The Assistant can propose changes to your workspace, but it cannot make them on its own. Every proposal appears in the chat as a card with an Apply button, and the rules are strict:

  • Nothing is created or changed until you press Apply. Reading, analyzing, and drafting happen freely; writing never does.
  • The action list is a fixed whitelist, enforced on the server. The Assistant can only execute the specific action types documented below - there is no generic "run anything" path, and an unrecognized action type is rejected outright.
  • Applied actions run through the same services as the UI, under your own account, organization, and workspace. The Assistant can't touch anything you couldn't change yourself by hand.
  • Everything it builds arrives as a draft or a reviewable object. Journeys never activate themselves, campaigns never send themselves, and AI agents are saved as drafts for you to test first.

If you close the chat without pressing Apply, nothing happened.

Things it can build for you

You ask forYou get
A journey ("welcome series for new signups")A complete draft journey - entry trigger from your real tracked events, waits, and messages with on-brand copy already in the nodes; email steps arrive pre-branded with your Brand Kit and open populated in the drag & drop editor. It never activates by itself; you review it in the editor. WhatsApp steps need you to pick a pre-approved template.
A monitoring alertA configured alert (metric, threshold, cooldown) that emails you when it fires.
An analytics dashboard ("build me a revenue dashboard")A custom dashboard with widgets over your real event names or e-commerce data (revenue, orders, AOV, revenue-over-time, RFM distribution) - editable in the dashboard builder afterwards.
Changes to an existing dashboardRename it or add widgets (e.g. "add a by-channel breakdown to my Messaging dashboard") - new widgets land below the current layout, nothing existing is touched.
An email templateAI-written copy assembled into a branded, email-safe design using your Brand Kit, saved as a normal template you can fine-tune.
An in-app message ("push-permission primer for new visitors")A branded modal (logo, colors, close button, glanceable copy) saved as a normal in-app template - editable in the in-app editor.
An audience segment ("customers who purchased twice but are inactive 30 days", or "shoppers predicted to spend 500+ next year", "customers whose next order is due within 7 days")A real segment built from your actual events and attributes - including predictive fields (predicted CLV, next-order timing, churn/engagement, RFM, category/brand affinity) - editable in the segment builder.
A campaign ("email campaign announcing the summer sale to my VIP segment, Sunday 10:00")A draft campaign with the copy in place - and if you named them, the audience, send time or event trigger pre-configured too - including creating the segment on the fly when you describe one that doesn't exist yet. You review and launch from the wizard; it never sends by itself.
An AI agent ("an agent that scores each lead's purchase intent")A configured agent - name, instructions, output type - saved as a draft so you review, test, and activate it yourself.
A relationship alert ("tell people when a sold-out show has tickets again", "notify viewers when a new episode drops")The relationshipAlert config on your custom catalog entity - the Assistant picks event-audience vs a waitlist entity from your real events (and creates the waitlist entity if needed). Then it offers to build the notify journey.
Pause / resume a campaignThe action, applied only on your confirmation.

The full action whitelist

For the curious (and the auditors), these are the exact action types the server will execute - nothing else:

  • draft_journey - create a draft journey (nodes, edges, branded email steps)
  • create_campaign - create a draft campaign
  • create_segment - create a segment from validated conditions
  • create_email_template - generate and save a branded email template
  • create_in_app_template - generate and save a branded in-app template
  • create_dashboard - create an analytics dashboard
  • update_dashboard - rename a dashboard or append widgets to it
  • create_alert - create a monitoring alert
  • create_ai_agent - create an AI agent (saved as a draft)
  • setup_relationship_alert - configure a relationship alert on a catalog entity
  • pause_campaign - pause a running campaign
  • resume_campaign - resume a paused campaign

Every one of them validates its inputs against the same rules the regular UI uses (segment conditions are whitelist-validated, dashboard widget types are checked against the widget catalog, and so on) before anything is written.

The playbook library

Ask "what automations should I build?" and the Assistant doesn't improvise - it consults a curated library of proven lifecycle playbooks (abandoned cart, browse abandonment, post-purchase review, win-back, replenishment, VIP programs, onboarding series, and more) organized by business vertical: e-commerce, SaaS, gaming, finance, travel, education, health, B2B, services, media, marketplace, nonprofit, and real estate, plus universal playbooks that fit everyone.

It then cross-checks the library against your workspace:

  • which playbooks you're missing (no journey of that shape exists yet),
  • whether you actually track the events each playbook needs to trigger, and
  • which channels the messages could use, given what you've connected.

From there it builds the pieces for you - the segment, then the journey - one Apply at a time, with each step grounded in your real event names.

Grounded in your data

The Assistant is injected with your workspace's real vocabulary on every turn:

  • Event names - journey triggers, alert scopes and dashboard widgets use events you actually track, never invented names.
  • Contact attributes with fill rates - the Assistant sees not just which attributes exist but what share of your contacts actually have them filled. Generated copy may personalize with {{ user.firstName }} and your own custom attributes (e.g. {{ user.custom.loyaltyTier }}), but only ones that are filled for a healthy share of your contacts, so messages never render with empty holes.
  • Connected channels - it only recommends channels you've actually connected; others are suggested as "needs setup" with a link. It checks this from live channel configuration on every conversation, so the advice tracks your setup as it changes.
  • Your brand - the default Brand Voice, its business category, and its "what the company does" description frame every suggestion.

Getting the most out of it

  • Point, don't describe. Use @ to tag the exact campaign or journey you mean - "analyze @Welcome Series" beats "analyze my welcome thing" and skips a round of clarification.
  • Name your constraints up front. Audience, channel, timing, offer: "email campaign for the VIP segment, Sunday 10:00, 20% off code SUN20" comes back pre-configured; a vague ask comes back generic.
  • Iterate before you Apply. The card is a proposal - ask for changes ("make the second email shorter", "move the wait to 3 days") and Apply only when the proposal reads right. Refining a proposal costs nothing; editing afterwards in the builder works too, but chat is usually faster.
  • Let it chain. Bigger asks decompose into several Apply cards - a segment, then a campaign that targets it, then an alert watching it. Each card stands alone; you can Apply some and skip others.
  • Ask "why", not just "what". After an analysis, follow up with "what would you change first?" - the Assistant reasons over the same numbers it just showed you.
  • Write in your language. The Assistant answers in the language you use, and generated copy follows your Brand Voice's language settings, including Hebrew audience form and register.

What it deliberately can't do

A few boundaries worth knowing, all by design:

  • It can't delete anything. There is no delete action in the whitelist - not campaigns, not segments, not journeys. Removal always happens in the UI, by you.
  • It can't send messages. No action sends an email, SMS, or WhatsApp message directly. Campaigns arrive as drafts you launch from the wizard; journeys arrive as drafts you activate in the editor.
  • The only changes to existing objects it can make are pausing/resuming a campaign and renaming or adding widgets to a dashboard - and even those wait for your Apply.
  • It can't reach outside your workspace. Every action executes with your identity in your current workspace; there is no cross-workspace or cross-organization path.

Support tickets

If something needs a human (billing, bugs, account issues), the Assistant drafts a support ticket for you - you see an editable form in the chat, adjust the text, and send it yourself. Replies from our team arrive by email.

Privacy

Assistant conversations are stored for support and product-improvement purposes with a 180-day retention. They are not used to train third-party models. Generated content belongs to you.