<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn" -->

---
title: I Replaced a 15-Minute Booking Process with a LangGraph...
description: A step-by-step walkthrough of building a stateful AI customer support agent using Python, LangGraph, and LangChain to automate a multi-step service booking...
canonical: https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: I Replaced a 15-Minute Booking Process with a LangGraph AI Agent | daily.dev
og:description: A step-by-step walkthrough of building a stateful AI customer support agent using Python, LangGraph, and LangChain to automate a multi-step service booking...
og:url: https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn
og:image: https://api.daily.dev/og/posts/IosIgQyDn.png
og:image:alt: I Replaced a 15-Minute Booking Process with a LangGraph AI Agent
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# I Replaced a 15-Minute Booking Process with a LangGraph AI Agent

**[Towards Data Science](https://daily.dev/sources/tds)** · 7 min read · 1 upvotes · 0 comments

## Summary

A step-by-step walkthrough of building a stateful AI customer support agent using Python, LangGraph, and LangChain to automate a multi-step service booking process. The agent gathers service details conversationally, calculates prices, proposes appointment slots, and confirms bookings — replacing a 15-minute manual exchange. The guide covers graph state design with TypedDict, conditional routing between nodes, and integrating Langfuse for LLM observability including token usage and cost tracking. Source code is available on GitHub.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://towardsdatascience.com/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent>

## Questions this post answers

### How do I use LangGraph to build a stateful multi-turn AI agent that persists state across customer messages?

Define a TypedDict AgentState holding messages, extracted booking details, and workflow status, then build a StateGraph with nodes for tasks like gathering info and calculating price. Conditional edge functions inspect the state to route to the next node or end the turn, and compiling the graph with a checkpointer like MemorySaver lets execution resume across multiple messages.

_Developers building conversational agents can find more LangGraph state-management patterns like this through daily.dev._

### How can I add observability to a LangGraph AI agent to monitor prompts, token usage, and cost?

Integrate Langfuse, an open-source LLM observability platform, by setting LANGFUSE_SECRET_KEY, LANGFUSE_PUBLIC_KEY, and LANGFUSE_BASE_URL environment variables, then attach a CallbackHandler from langfuse.langchain to the agent. The dashboard then displays prompts, inputs, outputs, token usage, and cost per run, and the free tier is enough for testing a small project.

_Anyone debugging LLM agent costs and behavior can track tools like Langfuse via daily.dev._

## Similar posts on daily.dev

- [Building a Streamlit UI for My LangGraph AI Agent](https://daily.dev/posts/building-a-streamlit-ui-for-my-langgraph-ai-agent-2rhn81ddb) · Towards Data Science · 1 upvotes · 0 comments
- [How I Built an Agentic AI Research Assistant Using LangGraph and Large Language Models](https://daily.dev/posts/how-i-built-an-agentic-ai-research-assistant-using-langgraph-and-large-language-models-dg5wempfs) · Medium · 0 upvotes · 0 comments
- [How to Develop AI Agents Using LangGraph: A Practical Guide](https://daily.dev/posts/how-to-develop-ai-agents-using-langgraph-a-practical-guide-gbublyg7z) · freeCodeCamp · 3 upvotes · 0 comments
- [Why We Rebuilt LangChain’s Chatbot and What We Learned](https://daily.dev/posts/why-we-rebuilt-langchain-s-chatbot-and-what-we-learned-h1oubdlqy) · LangChain · 9 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#ai-agents](https://daily.dev/tags/ai-agents), [#langchain](https://daily.dev/tags/langchain), [#langgraph](https://daily.dev/tags/langgraph)

[View this post on daily.dev](https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"I Replaced a 15-Minute Booking Process with a LangGraph AI Agent","url":"https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn"},"datePublished":"2026-08-02T14:00:50.047Z","dateModified":"2026-09-13T19:30:26.617Z","description":"A step-by-step walkthrough of building a stateful AI customer support agent using Python, LangGraph, and LangChain to automate a multi-step service booking...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b78657106b26b3e907d776ca9d5e598d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b78657106b26b3e907d776ca9d5e598d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Towards Data Science","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Towards Data Science","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tds","url":"https://daily.dev/sources/tds"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,ai-agents,langchain,langgraph","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Towards Data Science","item":"https://daily.dev/sources/tds"},{"@type":"ListItem","position":3,"name":"I Replaced a 15-Minute Booking Process with a LangGraph AI Agent"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/i-replaced-a-15-minute-booking-process-with-a-langgraph-ai-agent-iosigqydn#faq","mainEntity":[{"@type":"Question","name":"How do I use LangGraph to build a stateful multi-turn AI agent that persists state across customer messages?","acceptedAnswer":{"@type":"Answer","text":"Define a TypedDict AgentState holding messages, extracted booking details, and workflow status, then build a StateGraph with nodes for tasks like gathering info and calculating price. Conditional edge functions inspect the state to route to the next node or end the turn, and compiling the graph with a checkpointer like MemorySaver lets execution resume across multiple messages. Developers building conversational agents can find more LangGraph state-management patterns like this through daily.dev."}},{"@type":"Question","name":"How can I add observability to a LangGraph AI agent to monitor prompts, token usage, and cost?","acceptedAnswer":{"@type":"Answer","text":"Integrate Langfuse, an open-source LLM observability platform, by setting LANGFUSE_SECRET_KEY, LANGFUSE_PUBLIC_KEY, and LANGFUSE_BASE_URL environment variables, then attach a CallbackHandler from langfuse.langchain to the agent. The dashboard then displays prompts, inputs, outputs, token usage, and cost per run, and the free tier is enough for testing a small project. Anyone debugging LLM agent costs and behavior can track tools like Langfuse via daily.dev."}}]}
```

