Banking Customer Support Chat Logs

This dataset provides detailed records of digital banking customer support chat sessions, including full transcripts, participant identifiers, timestamps, issue categories, resolution outcomes, and customer satisfaction ratings. Designed for customer experience analysis and automated agent training, it enables deep insights into support interactions, common issues, and service quality trends.

  • opened 16 times
  • last updated 21 Jul 2025
  • by GoMask
The brief that made it

Training and evaluating automated support agents (chatbots)

Sample rows

preview · 8 of 200 rows · all 15 columns
chat_idstringresolution_statusstringagent_message_countintegerfollow_up_requiredbooleanissue_categorystringcustomer_idstringagent_idstringagent_typestringchat_start_timedatetimechat_end_timedatetimechat_duration_secondsintegercustomer_message_countintegercustomer_satisfaction_ratingintegerlanguagestringchat_transcriptstring
CHAT00001resolved3falsecard lostCUST1001BOT2001bot2024-02-12T08:05:21Z2024-02-12T08:06:51Z9024en[08:05:21] Customer: Hi, I lost my card. [08:05:30] BOT: Sorry to hear that. Would you like to block it now? [08:05:46] Customer: Yes, please. [08:06:01] BOT: Your card is now blocked. [08:06:51] BOT: Is there anything else I can help you with?
CHAT00002resolved12falseaccount accessCUST1002AGT1002human2024-02-12T10:14:02Z2024-02-12T10:32:41Z1160115en[10:14:02] Customer: I can't log in to my account. [10:14:10] AGT1002: I'm sorry to hear that. Can you tell me the error message? [...] [10:32:41] AGT1002: Your password has been reset. Please try again.
CHAT00003resolved2falseorder statusCUST1003BOT2002bot2024-02-12T11:05:12Z2024-02-12T11:05:25Z1314en[11:05:12] Customer: Order status? [11:05:17] BOT: Your order #2345 is being processed. [11:05:25] BOT: Is there anything else?
CHAT00004resolved14falseprofile updateCUST1002AGT1003human2024-02-12T14:22:00Z2024-02-12T14:52:20Z1820145en[14:22:00] Customer: I need to update my phone number. [14:22:15] AGT1003: Of course, may I have your current info? [...] [14:52:20] AGT1003: Your profile has been updated.
CHAT00005unresolved1falseblankCUST1004BOT2003bot2024-02-12T15:50:42Z2024-02-12T15:51:12Z300blanken[15:50:42] BOT: Hello! How can I assist you today? [15:51:12] BOT: Session ended due to inactivity.
CHAT00006resolved2falsegeneral inquiryCUST1005BOT2004bot2024-02-12T16:33:10Z2024-02-12T16:34:30Z8013en[16:33:10] Customer: I have a general question about fees. [16:33:25] BOT: Sure, what would you like to know? [16:34:30] BOT: For detailed fee info, please visit our website.
CHAT00007resolved13falsepayment issueCUST1006AGT1004human2024-02-12T17:05:22Z2024-02-12T17:25:17Z1195124en[17:05:22] Customer: My payment didn't go through. [17:05:30] AGT1004: Can you provide transaction details? [...] [17:25:17] AGT1004: The payment issue is resolved.
CHAT00008resolved1falseorder statusCUST1007BOT2005bot2024-02-12T18:10:10Z2024-02-12T18:10:25Z1514es[18:10:10] Customer: Hola, ¿dónde está mi pedido? [18:10:25] BOT: Su pedido está en camino.

What the 200 rows show

from the 200-row sample

Escalated (resolution status) stands out: mean agent_message_count is 35.6, against 6.3 for the rest.

  • 11%follow_up_required = true
  • 3median agent_message_count
  • 2agent types
  • 5languages
  • 120median chat_duration_seconds
  • 2median customer_message_count
Mean agent_message_count by resolution_status200 rows
020407.2resolved143 rows2.4unresolved36 rows35.6escalated21 rows
agent_message_count200 rows, in bands of 10
060120115646861follow_up_required from 2002060agent_message_count →

Every row with agent_message_count of 20 or more has follow_up_required = true. None below it.

issue_category171 rows with a value · 29 left blank
  1. profile update30
  2. order status29
  3. account access26
  4. card lost22
  5. payment issue22
  6. general inquiry21
  7. multiple15
  8. billing dispute6
15 columns by typefrom the column list below
  • string 8
  • integer 4
  • datetime 2
  • boolean 1

Columns

15 columns in four groups
blueprint · 15 columns
columntypedescriptionexample
Text 8 columns
chat_idstringUnique identifier for each customer support chat sessionuniqueCHAT00001
customer_idstringUnique identifier for the customer participating in the chatCUST1001
agent_idstringUnique identifier for the support agent (human or bot) handling the chatBOT2001
agent_typestringType of agent handling the chat (e.g., human, bot)human · botbot
chat_transcriptstringFull text transcript of the chat session, with speaker labels and timestamps[08:05:21] Customer: Hi, …
issue_categorystringCategorized topic or issue type discussed in the chat (e.g., account access, payment issue, card lost)8 categories · optionalcard lost
resolution_statusstringStatus indicating if and how the customer's issue was resolved (e.g., resolved, unresolved, escalated)resolved · unresolved · escalatedresolved
languagestringPrimary language used in the chat session (ISO 639-1 code, e.g., 'en', 'es')5 languagesen
Numbers 4 columns
chat_duration_secondsintegerTotal duration of the chat session in seconds1 or more90
customer_message_countintegerNumber of messages sent by the customer during the chat0 or more2
agent_message_countintegerNumber of messages sent by the agent during the chat0 or more3
customer_satisfaction_ratingintegerCustomer's satisfaction rating for the chat session, typically on a 1-5 scale1 to 5 · optional4
Dates and times 2 columns
chat_start_timedatetimeTimestamp when the chat session started2024-02-12T08:05:21Z
chat_end_timedatetimeTimestamp when the chat session ended2024-02-12T08:06:51Z
True or false 1 column
follow_up_requiredbooleanIndicates whether a follow-up action is required after the chat sessionfalse

15 SQL practice questions for the Banking Customer Support Chat Logs

Written for this data and checked against it: 12 SQL and 3 Power BI exercises from beginner to advanced. Try the first three free; the practice kit has all 15, a starter .sql file and an answer key with every expected result.

  1. 01BeginnerFreeDISTINCT · WHERE · ORDER BY

    Distinct issue categories

    Return the distinct, non-null issue_category values from the chat logs, sorted alphabetically. The result should have one column named issue_category.

    Tables: banking_customer_support_chat_logs · your result: 1 columns, 8 rows
  2. 02BeginnerFreeGROUP BY · COUNT

    Chats per resolution status

    Return each resolution_status along with the number of chats that have it, named chat_count. Order the results by chat_count from highest to lowest, then by resolution_status alphabetically.

    Tables: banking_customer_support_chat_logs · your result: 2 columns, 3 rows
  3. 03BeginnerFreeAVG · GROUP BY · ROUND

    Average duration by agent type

    Return each agent_type and the average chat_duration_seconds as avg_duration, rounded to 2 decimals. Order the results by agent_type.

    Tables: banking_customer_support_chat_logs · your result: 2 columns, 2 rows
  1. 04Escalated English chats with human agentsBeginner
  2. 05Average rating by languagePower BI
  3. 06Categories with many unresolved chatsIntermediate
  4. 07Chat duration bucketsIntermediate
  5. 08Languages rated above the overall averageIntermediate
  6. 09Chats and escalations per monthIntermediate
  7. 10Follow-up rate by issue categoryPower BI
  8. 11Rank categories by escalationsAdvanced
  9. 12Gap since a customer's previous chatAdvanced
  10. 13Running total of chats per monthAdvanced
  11. 14Share of chats by languageAdvanced
  12. 15Unusually long human chatsPower BI

Get the practice kit: the full dataset, all 15 exercises, a starter .sql and the answer key. One-time $3.99.

Get the practice kit · $3.99

Use it for

  • follow up requ…11%21 of 200 rowsmean agent message co…7.2resolv…2.4unreso…35.6escala…

    A finance dashboard

    The follow_up_required rate, agent_message_count by resolution_status and a breakdown of issue_category. Excel, Power BI or Tableau.

  • Why do the 21 escalated rows have a mean agent_message_count of 35.6?

    A root-cause class exercise

    Hand out the rows and one question. The answer is in the data, not in the brief.

  • A software demo

    Believable chats with customer_id, agent_id and agent_type to fill a screen in front of a buyer.

Not quite right?

Make it yours.

Same 15 columns, your size and your rules. See 20 rows before you pay.

Preview 20 rows free

1,000 rows: $1.99 · 10,000: $12.99One-time. No subscription. All prices

This dataset200 rows15 columns
Yours1,000 rows15 columns

blueprint · banking-customer-support-chat-logs

Behind this dataset

Same schema. As many rows as you need.

These 200 rows came out of a blueprint — 15 columns with generation rules behind each one. Open it in Data Factory to retune a column, add your own, wire in foreign keys, and run it at the size you actually need.

Rules it was built with
  • Chat ID with anonymized participants.
  • Chat transcript segmented by speaker.
  • Intent and outcome categorized.
  • Sensitive information redacted.
Rows
Open the blueprint in Data Factory

1 credit per row. Preview 20 rows free. Buy rows for the full run.

Exports
CSV, JSON, JSONL, Parquet, SQL, Excel, TSV, XML
Licence
yours to use, including commercially
API slug
banking-customer-support-chat-logs

What should your data show?

Preview 20 rows free
No signup. No card.