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 →
Laravel monitoring that doesn't bill you by your traffic image

Laravel monitoring that doesn't bill you by your traffic

Read article
Mock PHP Classes in Tests With the Double Library image

Mock PHP Classes in Tests With the Double Library

Read article
Laravel Discount: Coupon Codes, Usage Limits, and Stacking image

Laravel Discount: Coupon Codes, Usage Limits, and Stacking

Read article
Laravel Truss: Live Interactive Database ER Diagrams image

Laravel Truss: Live Interactive Database ER Diagrams

Read article
Laravel artisan dev: Run Server, Queue, Logs, and Vite image

Laravel artisan dev: Run Server, Queue, Logs, and Vite

Read article
Validate and Convert HEIC Images in Laravel image

Validate and Convert HEIC Images in Laravel

Read article