Every surface, and exactly what it does.
Six channels feed one measurement layer and one contact record. Each one can be answered and published to, and every automated write waits for a person to approve it.
Six channels. One workspace.
Each one is read, each one can be answered or published to, and all six are measured the same way.
Inbound conversations land with an owner, internal notes and explicit assignment.
Approved templates only, paced per number by a token bucket, with retry and launch gates.
Triggered flows ask real questions and write the answers onto the contact record.
Browse, pay and confirm inside the thread. The order lands on the contact.
The click-to-WhatsApp ad that started the thread is attached. Opt-outs are honoured everywhere.
Every send carries its real cost in a ledger you can audit line by line.
Nothing sends without a yes. A broadcast that fails a launch gate never starts, and a paused one stays paused through a restart.
With captions, hashtags, mentions and the people you tagged.
A post from two years ago still shows its picture inside uxjo.
Reply, hide or remove without opening the app.
Answered in the shared inbox, beside that person’s WhatsApp thread.
Compose, tag products from your catalog, post now or on a calendar.
Recorded every day and kept, which is history Instagram does not give you.
A drafted reply never sends on its own. Publishing is a permission, and every action is in the audit log with the person who took it.
Captured with their images, so the post stays viewable after Facebook’s URLs expire.
A form fill becomes a contact immediately, with the answers attached.
Same queue, same assignment and same tags as WhatsApp and Instagram.
Greeting, ice breakers and the persistent menu, set once for every new thread.
Schedule Page posts, then reply to or hide comments from the same screen.
Reactions, comments, shares, clicks and video views, recorded per day.
Facebook stopped reporting reach for individual posts in 2024, so uxjo shows what is real instead of filling the gap. Instagram still reports reach, and uxjo shows it there.
Rating, reviewer, text and whether it has been answered, as separate fields.
So a difficult one does not sit unanswered overnight.
Each review scored for sentiment and for how harsh it is, so the tone matches.
Edit hours and attributes, publish a Google post, keep media in sync.
The queries, clicks, impressions and position your website earns in Search.
Accounts and properties discovered for you, so website behaviour sits beside messaging.
Spend and performance beside the conversations and sales those ads produced.
Listing terms joined with the organic queries that find your website.
Google is one connection, not five, so there is one thing to manage and one thing to revoke. Where a login controls more than one property you choose which, and you can change it later without disconnecting.
Captured with their thumbnails, so a launch film stays viewable in uxjo.
Held against the contact who wrote them, not in a separate list.
Per video, recorded daily rather than read once as a lifetime figure.
The shape of a month, beside the broadcast and the reviews that followed it.
A comment can start a journey that runs on whichever channel fits.
YouTube arrives on the same Google grant as your Business Profile, so there is no second login. Views and watch data are reported by YouTube, never modelled by uxjo.
Through the provider you already pay for. You keep your own reputation.
Email as a step beside WhatsApp in the same flow, not a separate tool with its own list.
A plain-text alternative and a preheader written for you, both editable.
On the same contact card as that person’s WhatsApp thread.
One click, recorded as consent state and honoured on every channel.
Recorded per send, in the same ledger as every other channel.
Suppression is checked in the data layer, so an unsubscribe holds even for a journey step or an API call. A footer cannot be removed by accident.
The agent proposes. A person disposes.
Jo has two modes and one rule. Ask mode reads and answers. Agent mode proposes actions. In both, a write is staged, shown in full, and only executed when someone confirms it.
- Grounded answers. Retrieval runs over your own knowledge base and catalog.
- Your model, your key. Bring the provider you already use.
- Operator toolset. Jo works through the same actions your team has, under the same roles.
- Recorded decisions. Who approved what, and when, lands in the audit log.
Who opened checkout last week and never paid?
42 contacts opened checkout and did not complete payment. 11 have replied since. None are on the suppression list.
Send cart_reminder_v3 to 42 contacts. Paced across 3 hours. Opt-outs excluded.
ApproveEditRejectWhat happens next, drawn once.
A journey is a trigger, a set of branches and an outcome written back to the contact.
Fires when an inbound message matches what you set.
Fires on a platform event such as an order or a form submission.
Fires on a time you choose, with a priority order across journeys.
Fields render in chat and write straight to the contact record.
Product, checkout and order confirmation without leaving the thread.
Assign an owner and stop automation on that conversation.
One measurement method, every channel.
Insights are recorded per channel on a daily cadence and rendered in the same grid, so a Facebook post, a YouTube video and an email campaign are read the same way.
- Per-channel insight recording with day-by-day trends
- Content grid with per-post metrics
- Google Business performance including monthly search keywords
- Cost and volume per send, in one ledger across every channel
- Live sync over a realtime connection while the page is open
Highest reach is not highest return. The broadcast reached 1,240 people and produced 28 orders. The video reached 18,200 and produced 2. Same table, same period, so the comparison is possible at all.
Enforced in the data layer, not the interface.
If a control only exists in the UI, it is not a control.
Role-based access, in the database
Roles are defined by module and scope and enforced where the data lives.
Tamper-evident audit log
Each entry is hash-chained to the one before it. A rewritten history does not stay hidden.
Forced tenant isolation
Row-level security is on by default, so cross-tenant reads fail rather than leak.
Per-contact encryption
Envelope encryption on contact data, keyed per record.
Search without decrypting
Blind-index lookup finds a person by phone or email without exposing the field.
Consent you can prove
Opt-out capture, suppression and DSAR handling are part of the contact record.
Asked and answered.
Which channels does uxjo support?
Six: WhatsApp, Instagram, Facebook, Google Business Profile, YouTube and email. Each one is read, each one can be answered or published to, and all six are measured the same way.
Does uxjo send anything without asking?
No. Every automated write is staged for a person to approve. The approval, the approver and the final text are all recorded in a hash-chained audit log.
Is there one inbox for every channel?
Yes. WhatsApp, Instagram comments and DMs, and Facebook Messenger arrive in one queue with shared assignment, owners and tags. Each platform’s own messaging window is respected for you.
How does uxjo measure channels that report different things?
Insights are recorded per channel on a daily cadence and rendered in one table with the same columns. Each figure keeps its own unit, so nothing is flattened into an invented shared metric, and a gap is shown as a gap.
Can I build automations without a developer?
Yes. A journey is a trigger, a set of branches and an outcome written back to the contact, drawn once in Journey Studio and run on every matching event from then on. A documented API and event webhooks are available when you want them.
Your journey is the one we have not listed yet.
Every business has a flow that is only theirs. Describe it in a message and we will map it with you, name the triggers, and tell you honestly what runs today and what does not. No form, no wait.