Case Study
View Case StudyTray.ai
Migrating hundreds of thousands of pages, re-platforming and extending for the leading composable AI integration platform

Agentic workflows that actually convert, speed up your publishing, and reliably work, no matter the circumstance.
We build agentic systems that research your next blog post at 2am, enrich every inbound lead before your sales team wakes up, and keep your product catalogue updated without anyone opening a spreadsheet. They survive deployments, retry on failure, and run reliably no matter the circumstance.
Automated blog pipelines
An AI agent pulls keyword data from SEO tools like Ahrefs, researches the topic, generates a first draft, and queues it for editorial review. Set it on a schedule and your content calendar fills itself. Your writers edit and approve rather than starting from scratch.
Lead and data enrichment
Someone fills out your contact form. Within seconds, a workflow scrapes their company site, checks for recent funding rounds, researches their tech stack, and posts a full brief to your Slack or CRM. Your sales team gets context before the first call.
Custom AI chat interfaces
A chat experience built on your existing systems and documentation, not a generic chatbot widget. We wire it into your knowledge base, product data, or support docs and set up PostHog analytics so you can see exactly how people use it and where conversations drop off.
CMS content automation
AI-generated meta descriptions, alt text, internal link suggestions, and translation drafts inside your Sanity editor. Your content team stays in the tools they already know. Background workflows can process hundreds of pages without blocking anyone.
E-commerce product workflows
Generate product descriptions from supplier data sheets. Auto-tag new inventory with categories and attributes. Build a recommendation engine that updates nightly based on purchase patterns. Each workflow runs on a schedule or triggers from a webhook when new products land.
Support ticket triage
Incoming tickets get classified by intent, urgency, and product area before a human sees them. The workflow can draft a response, pull relevant docs, and route to the right team. Your support staff spend time solving problems instead of sorting them.
My best experience with a consulting company. The results were delivered faster than expected and with top quality. Jono ensured I understood the process and suggested a great approach. Both execution and communication were flawless.
CEO at Topaz Labs
Real systems, not demos
Every workflow below runs in production. They survive server restarts, retry failed steps automatically, and pause for external events without consuming compute. Here's what that looks like for real problems.
Your marketing team knows they should publish more. They don't have the hours. Here's what we build: a workflow that connects to the Ahrefs API, pulls your keyword gaps and ranking opportunities, then generates research briefs for each topic. A second workflow takes those briefs, researches the subject using AI, writes a first draft, and pushes it to your CMS as a draft post.
Set the whole thing on a CRON schedule. Monday morning, your editor opens Sanity and finds five draft posts waiting for review, each targeted at a keyword your competitors rank for and you don't. The AI did the research and the first draft. Your writer does the thinking and the polish.
Each step in the pipeline retries independently. If the Ahrefs API rate-limits you, that step waits and retries. If the LLM call fails, it tries again without re-fetching the keyword data. Deploy a code update while a draft is mid-generation? The workflow finishes on the old version.
If you operate in multiple markets, the same pipeline can generate localised versions of each post. The workflow takes your approved English draft, translates it, adjusts examples and references for the target region, and pushes each version to the correct locale in your CMS. One editorial review produces content for every market you sell into.
When someone submits a contact form on our site, a workflow kicks off within seconds. It extracts the domain from their email, scrapes their company's website for context, then sends everything to Claude. The AI researches the company, looks at what they do, checks for recent news or funding rounds, and generates a structured brief. That brief lands in our Slack before anyone on the team has read the form submission.
The entire thing is about 40 lines of TypeScript. Each step uses a "use step" directive, so if Claude's API is slow or Slack returns a 500, that individual step retries without re-scraping the website. We use this ourselves, every day. When a lead comes in at 11pm, the brief is waiting in Slack by 11:01pm.
For clients, we extend this pattern to push enrichment data into their CRM, score leads based on company fit, and trigger different follow-up sequences depending on what the AI finds. A SaaS company can automatically route enterprise leads to their sales team and self-serve leads to a product tour.
Generic chatbot widgets give generic answers. We build chat interfaces grounded in your actual data: your product docs, your support history, your internal knowledge base. The foundation is semantic search using embeddings, the same approach we wrote about in our guide to building search with Sanity's Embeddings Index API. The AI retrieves relevant content first, then generates answers from it, not from hallucinated guesses.
The part most teams skip is analytics. We wire every conversation into PostHog's LLM analytics so you get a complete picture of how people interact with your chat. Which questions come up most often. Where conversations go nowhere. What topics lead to conversions versus abandonment. You see heatmaps of conversation flow, not just a chat log.
This feedback loop is what makes it useful. Your team reviews the analytics weekly, identifies gaps in the knowledge base, fills them, and the chat gets measurably better. After a month, you have hard data on what your customers actually need help with, and your chat handles the common questions automatically.
Supplier sends a spreadsheet of 200 new products. A webhook triggers a workflow that parses each row, generates SEO-friendly product descriptions from the raw specs, creates category tags, and publishes draft listings to your storefront. Your merchandising team reviews and approves instead of writing copy for each item.
The same infrastructure handles ongoing maintenance. Nightly workflows scan your catalogue for products with missing descriptions, thin content, or outdated pricing. An AI rewrites or flags each one. Price comparison workflows check competitors and alert your team when you're significantly over or under market. All durable, all retriable, all running while your team is offline.
For brands selling internationally, we add a localisation step. New product descriptions get translated and adapted for each market automatically, with region-specific sizing, currency, and compliance details baked in. Your team approves translations once per product instead of managing separate catalogues per country.
Book a meeting with us to discuss how we can help or fill out a form to get in touch
Functional, beautiful, websites that you actually want to edit
Case Study
View Case StudyMigrating hundreds of thousands of pages, re-platforming and extending for the leading composable AI integration platform

Case Study
View Case StudyFrom Sanity overages to instantaneous publishing, we brought Mario Testino into the fast lane, and did it in style.

Case Study
View Case StudyHelping the UAE's most prolific Pay in 4 merchants scale their design system and composable infrastructure.

Case Study
View Case StudyHow we helped the fastest growing online cycling community, push the editorial velocity to new heights.
