{
  "format": "dataset-manifest/1",
  "slug": "customer-support-insights",
  "version": 2,
  "seed": "customer-support-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "customer-support-insights",
    "name": "Customer Support Insights",
    "tagline": "Support tickets, user messages, agent interactions, and payment records from a customer support system.",
    "description": "Agents assist users by resolving a variety of technical issues, ranging from device malfunctions to account problems. Each support ticket filed by a user initiates a case that tracks the nature of the issue, the device involved, and the account used for recovery purposes. Support interactions are captured through messages exchanged between users and agents, creating a comprehensive record of the help process. Additionally, payments for services reflect user engagement and satisfaction, while error reports highlight the performance of both agents and the systems in use. Tickets commonly pertain to a limited selection of popular devices, indicating frequent issues, while rare devices generate less frequent but equally critical error reports.\n\nThe dataset consists of several interrelated tables that provide a detailed view of the customer support operation. The 'users' table contains records for individual customers seeking assistance, while the 'devices' table specifies the various devices these users are employing when encountering issues. Each entry in the 'support_tickets' table corresponds to a specific case brought forth by a user, linking directly to both the 'users' and 'devices' tables through user IDs and device IDs, respectively. Interaction data is stored in the 'messages' table, where each message is attributed to both a user and an agent, allowing for tracking of the communication history. The 'agents' table lists support personnel, linking their performance data to the tickets they handle. Finally, the 'payments' table records financial transactions associated with support services, providing insight into user transactions and potential correlations with support cases.\n\nThis dataset is excellent for practising data analysis, as it can help answer questions related to user behavior, agent performance, and the effectiveness of different devices in customer support interactions. By examining the patterns and trends within this synthetic data, developers can gain valuable insights into enhancing customer support processes and improving user satisfaction.",
    "domain": "customer-support",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "customer support",
      "tickets",
      "agents",
      "devices",
      "messages",
      "payments"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains information about users who submit support tickets. Each row represents a unique user.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address associated with the user."
          },
          "created_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the user account was created.",
            "dayProfile": "waking"
          }
        }
      },
      "devices": {
        "description": "This table holds information about devices used by the users for support requests. Each device is linked to a user.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each device."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Foreign key referencing the user who owns the device."
          },
          "device_type": {
            "kind": "enum",
            "values": [
              "laptop",
              "tablet",
              "smartphone",
              "desktop"
            ],
            "description": "The type of device."
          },
          "os": {
            "kind": "enum",
            "values": [
              "Windows",
              "macOS",
              "Linux",
              "iOS",
              "Android"
            ],
            "description": "Operating system of the device.",
            "nullable": true
          }
        }
      },
      "support_tickets": {
        "description": "This table captures support tickets created by users. Each row represents a unique support request.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each support ticket."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Foreign key referencing the user who created the ticket."
          },
          "device_id": {
            "kind": "fk",
            "ref": "devices.id",
            "description": "Foreign key referencing the device related to the ticket."
          },
          "issue_description": {
            "kind": "sentence",
            "description": "A brief description of the issue reported.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "resolved",
                "closed"
              ]
            }
          },
          "status": {
            "kind": "enum",
            "values": [
              "open",
              "in_progress",
              "resolved",
              "closed"
            ],
            "description": "The current status of the support ticket."
          },
          "created_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the support ticket was created.",
            "dayProfile": "waking"
          }
        }
      },
      "agents": {
        "description": "This table contains information about support agents who handle tickets. Each row corresponds to a unique agent.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each support agent."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the support agent."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address of the agent."
          },
          "hire_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date when the agent was hired.",
            "dayProfile": "business"
          }
        }
      },
      "messages": {
        "description": "This table records messages exchanged between users and agents for support tickets. Each row represents a single message.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each message."
          },
          "ticket_id": {
            "kind": "fk",
            "ref": "support_tickets.id",
            "description": "Foreign key referencing the support ticket associated with the message."
          },
          "sender": {
            "kind": "enum",
            "values": [
              "user",
              "agent"
            ],
            "description": "Indicates whether the message was sent by the user or the agent."
          },
          "content": {
            "kind": "paragraph",
            "description": "The content of the message exchanged.",
            "nullable": true,
            "when": {
              "column": "sender",
              "in": [
                "user"
              ]
            }
          },
          "sent_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the message was sent.",
            "dayProfile": "waking"
          }
        }
      },
      "payments": {
        "description": "This table captures payment transactions made by users for support services. Each row represents a unique payment.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each payment."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Foreign key referencing the user who made the payment."
          },
          "amount": {
            "kind": "decimal",
            "min": 5,
            "max": 500,
            "scale": 2,
            "description": "The amount paid by the user for support services.",
            "distribution": "long-tail"
          },
          "payment_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date and time when the payment was made.",
            "trend": "growing"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What are the most common device issues reported by users?",
      "How quickly do agents respond to support tickets?",
      "What payment trends can be observed over time?",
      "How many tickets remain unresolved at any given time?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Users and Support Tickets",
        "sql": "SELECT users.full_name, support_tickets.issue_description FROM users JOIN support_tickets ON users.id = support_tickets.user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Tickets by Status",
        "sql": "SELECT status, COUNT(*) FROM support_tickets GROUP BY status;",
        "dialect": "postgres"
      },
      {
        "title": "Average Payment Amounts by User",
        "sql": "SELECT user_id, AVG(amount) FROM payments GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Messages Sent per Ticket",
        "sql": "SELECT ticket_id, COUNT(*) FROM messages GROUP BY ticket_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Data Analysis by Support Managers",
        "body": "Support managers could leverage this dataset to analyze trends in ticket submissions, identifying peak times for device issues and understanding agent performance over time."
      },
      {
        "title": "Training New Support Agents",
        "body": "This dataset can be used to train new support agents, allowing them to familiarize themselves with common issues, communication styles, and the ticket resolution process."
      },
      {
        "title": "Performance Evaluation of Support Services",
        "body": "Data scientists can utilize this dataset to evaluate the performance of support services, exploring correlations between response times and user satisfaction based on ticket resolutions."
      }
    ]
  },
  "counts": {
    "agents": 50,
    "users": 200,
    "devices": 150,
    "payments": 100,
    "support_tickets": 250,
    "messages": 600
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 194,
          "min": "Alice Bauer",
          "max": "Zoe Martin"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "created_at": {
          "nulls": 0,
          "distinct": 200,
          "min": "2020-01-01 09:40:59",
          "max": "2023-12-31 14:08:33"
        }
      }
    },
    "devices": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "user_id": {
          "nulls": 0,
          "distinct": 101,
          "min": 2,
          "max": 200
        },
        "device_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "desktop",
          "max": "tablet"
        },
        "os": {
          "nulls": 10,
          "distinct": 5,
          "min": "Android",
          "max": "macOS"
        }
      }
    },
    "support_tickets": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "user_id": {
          "nulls": 0,
          "distinct": 136,
          "min": 1,
          "max": 200
        },
        "device_id": {
          "nulls": 0,
          "distinct": 117,
          "min": 1,
          "max": 150
        },
        "issue_description": {
          "nulls": 120,
          "distinct": 130
        },
        "status": {
          "nulls": 0,
          "distinct": 4,
          "min": "closed",
          "max": "resolved"
        },
        "created_at": {
          "nulls": 0,
          "distinct": 250,
          "min": "2020-01-01 19:10:37",
          "max": "2023-12-19 20:52:10"
        }
      }
    },
    "agents": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "full_name": {
          "nulls": 0,
          "distinct": 50,
          "min": "Amir Bauer",
          "max": "Zoe Tanaka"
        },
        "email": {
          "nulls": 0,
          "distinct": 50
        },
        "hire_date": {
          "nulls": 0,
          "distinct": 50,
          "min": "2020-03-01 12:45:56",
          "max": "2023-12-15 18:40:26"
        }
      }
    },
    "messages": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "ticket_id": {
          "nulls": 0,
          "distinct": 228,
          "min": 1,
          "max": 250
        },
        "sender": {
          "nulls": 0,
          "distinct": 2,
          "min": "agent",
          "max": "user"
        },
        "content": {
          "nulls": 296,
          "distinct": 304
        },
        "sent_at": {
          "nulls": 0,
          "distinct": 600,
          "min": "2020-01-01 10:01:05",
          "max": "2023-12-31 17:31:36"
        }
      }
    },
    "payments": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "user_id": {
          "nulls": 0,
          "distinct": 76,
          "min": 2,
          "max": 199
        },
        "amount": {
          "nulls": 0,
          "distinct": 99,
          "min": 5.04,
          "max": 485.34
        },
        "payment_date": {
          "nulls": 0,
          "distinct": 100,
          "min": "2020-01-23 08:00:39",
          "max": "2023-12-30 23:39:16"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/agents.csv",
      "format": "csv",
      "table": "agents",
      "key": "datasets/customer-support-insights/v2/csv/agents.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/csv/agents.csv",
      "bytes": 3029,
      "sha256": "e53bd45e321fc2761f0d92aa46de0ded976b33f72394e3532455942f3c502a33",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/customer-support-insights/v2/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/csv/users.csv",
      "bytes": 12231,
      "sha256": "eda5e9b61738142e2728a50029893c4fbbbac3d800065f8b794d376025d61f5a",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/devices.csv",
      "format": "csv",
      "table": "devices",
      "key": "datasets/customer-support-insights/v2/csv/devices.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/csv/devices.csv",
      "bytes": 3375,
      "sha256": "bfc1c12c894f4c982e4660ac15c4da02022eda572525365d07ca474254ae6440",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/payments.csv",
      "format": "csv",
      "table": "payments",
      "key": "datasets/customer-support-insights/v2/csv/payments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/csv/payments.csv",
      "bytes": 3424,
      "sha256": "b7ec0a1ea89a9f5d817c295abc4f32b2513fef97a3edeaa91f92c003ca48e4a1",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/support_tickets.csv",
      "format": "csv",
      "table": "support_tickets",
      "key": "datasets/customer-support-insights/v2/csv/support_tickets.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/csv/support_tickets.csv",
      "bytes": 17627,
      "sha256": "b605668b110621b75f8dbf90fe2c29a4873b7bcc4fa9f5728b1fc658c44a455b",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/messages.csv",
      "format": "csv",
      "table": "messages",
      "key": "datasets/customer-support-insights/v2/csv/messages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/csv/messages.csv",
      "bytes": 71263,
      "sha256": "367d84e1ac0341b94de48a067e87021df8c9d206bac6df8b9593ca259006032d",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "customer-support-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/customer-support-insights/v2/customer-support-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/customer-support-insights.json",
      "bytes": 248921,
      "sha256": "836df06889595ef844ceae8e56604f1a607613e7465ed3c39d91b036a04239d0",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/customer-support-insights/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/sql/postgres.sql",
      "bytes": 135405,
      "sha256": "3a26d184fa36eea65eb1a658825d0b6d408643be5f8fdaf63665afd48815953d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/customer-support-insights/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/sql/mysql.sql",
      "bytes": 134739,
      "sha256": "9e323a8f8a8154fbd5e9ea9dcdec651da3ced7f80a9f29de6cb36581d4279505",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/customer-support-insights/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/sql/mssql.sql",
      "bytes": 138412,
      "sha256": "708b92ccb0965cb74ac3ba7626883a0781925486c267f193540e0f3ccdc38a8b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/customer-support-insights/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/sql/sqlite.sql",
      "bytes": 134473,
      "sha256": "70e6a6c47a546a29e53655c49db83a7ac758bad22cdb09f256f232fa95dae0f0",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/customer-support-insights/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/prisma/seed.ts",
      "bytes": 216793,
      "sha256": "a95f99a960cf757bd61cba418fe6b5c29f3ef84abcb624199c24787ad7c8c40f",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/customer-support-insights/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/customer-support-insights/v2/django/fixtures.json",
      "bytes": 306211,
      "sha256": "d59141bba6354c563f431ac1218ec254457924dfddc18865464d77d32249ec1e",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767174518,
  "updatedAt": 1788778212659
}
