Laravel Tutorials

Ship AI with Laravel: Smart Ticket Triage with Structured Output

Published

▶️ Watch the video tutorial (10 minutes)

A customer writes 'I was charged twice for my order and nobody is responding to my emails, this is unacceptable.' What happens next? Someone on your team reads it, decides it's a billing issue, marks it high priority, and routes it. Now multiply that by a few hundred tickets a day. Laravel 13's AI SDK can do this automatically.

In the last episode we got our support agent talking to customers. The problem is it responds in free text. You can read it, but you can't route it, set a priority from it, or track sentiment across thousands of tickets programmatically. You need structured data.

In this episode we build a second agent called TicketClassifier that takes a customer message and returns a JSON object with four fields: category, priority, sentiment, and a summary. Every field is locked to specific allowed values, so "billing" is always "billing" and "angry" is always "angry." You get clean data you can store, filter, and act on.

I walk through the schema, test it with different messages to make sure the classification is actually correct, and wire up a controller that validates input, classifies the ticket, and returns a response. The whole flow runs end to end in Tinker by the end of the video.

Next episode we're giving our agent custom tools so it can look up real orders in the database and pull customer history. The agent stops guessing and starts working with actual application data.

⭐ GitHub: https://github.com/harris21/ship-ai-with-laravel

▶️ Watch Episode 2 now →

Harris Raftopoulos photo

Senior Software Engineer • Staff & Educator @ Laravel News • Co-organizer @ Laravel Greece Meetup

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Inertia DevTools Now Available for Firefox image

Inertia DevTools Now Available for Firefox

Read article
Laravel Scalpel Scans for Filesystem Intrusion Evidence image

Laravel Scalpel Scans for Filesystem Intrusion Evidence

Read article
Mercure Broadcasting in Laravel 13.32 image

Mercure Broadcasting in Laravel 13.32

Read article
Super Stack: Laravel Starter Kit With Filament and NativePHP image

Super Stack: Laravel Starter Kit With Filament and NativePHP

Read article
Laravel MCP 1.0 Is Released image

Laravel MCP 1.0 Is Released

Read article
Laravel Vet: Review Composer Code Before It Installs image

Laravel Vet: Review Composer Code Before It Installs

Read article