{
  "format": "dataset-manifest/1",
  "slug": "messaging-activity",
  "version": 2,
  "seed": "messaging-activity:1",
  "spec": {
    "format": "dataset/1",
    "slug": "messaging-activity",
    "name": "Messaging Activity",
    "tagline": "Direct messaging records including conversations, participants, and messages with timestamps.",
    "description": "Users engage in direct messaging through conversations, where each interaction is recorded with timestamps for when messages are sent and read. Conversations are ongoing dialogues that connect participants, each representing an individual user involved in the messaging activity. The messages table contains the actual text of the conversations, along with timestamps that indicate when each message was sent and when it was read, facilitating the analysis of communication patterns and response times.\n\nEach conversation consists of multiple participants who contribute to the exchange of messages. A single row in the conversations table represents a unique dialogue session, while a row in the participants table corresponds to an individual user's involvement in that session. The messages table provides the content of the dialogue, linking back to both the conversations and the participants through foreign keys. This structure allows for a comprehensive exploration of how users interact within a conversation, including the frequency and timing of their messages.\n\nThe data answers critical questions regarding user engagement and responsiveness. Developers can analyze metrics such as average response times, the overall activity levels of participants, and the dynamics of conversations across multiple users. This dataset serves as an excellent resource for practicing data manipulation, querying, and visualization techniques, as well as understanding user behavior in a messaging context. \n\nIt’s important to note that the data is synthetic, designed to mimic real-world messaging interactions while allowing for safe experimentation and exploration.",
    "domain": "social",
    "shape": "event-log",
    "useCases": [
      "analytics-demo",
      "bi-dashboards"
    ],
    "keywords": [
      "messaging",
      "social",
      "conversations",
      "participants",
      "messages",
      "timestamps",
      "analytics"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "conversations": {
        "description": "Each row represents a unique conversation between participants. It links to participants involved in the conversation.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the conversation."
          },
          "created_at": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "Timestamp when the conversation was created.",
            "nullable": true,
            "dayProfile": "waking"
          }
        }
      },
      "participants": {
        "description": "This table records the users involved in conversations, linking each participant to a specific conversation.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the participant."
          },
          "conversation_id": {
            "kind": "fk",
            "ref": "conversations.id",
            "description": "Reference to the conversation this participant is involved in."
          },
          "user_id": {
            "kind": "uuid",
            "description": "Unique identifier for the user participating in the conversation."
          },
          "joined_at": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "Timestamp when the participant joined the conversation.",
            "nullable": true,
            "dayProfile": "waking"
          }
        }
      },
      "messages": {
        "description": "This table logs each message sent within conversations, including timestamps for sent and read statuses.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the message."
          },
          "conversation_id": {
            "kind": "fk",
            "ref": "conversations.id",
            "description": "Reference to the conversation this message belongs to."
          },
          "sender_id": {
            "kind": "uuid",
            "description": "Unique identifier for the user who sent the message."
          },
          "content": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The text content of the message.",
            "nullable": true,
            "pool": [
              "hello",
              "world",
              "message",
              "chat",
              "friend",
              "meeting",
              "update",
              "notification",
              "reminder",
              "event",
              "discussion",
              "topic",
              "reply",
              "feedback",
              "question",
              "answer",
              "response",
              "greeting",
              "invitation",
              "announcement",
              "alert",
              "info",
              "status",
              "connect",
              "share",
              "post",
              "comment",
              "like",
              "reaction",
              "emoji",
              "funny",
              "happy",
              "sad",
              "love",
              "support",
              "team",
              "project",
              "idea",
              "thought",
              "plan",
              "strategy",
              "goal",
              "success",
              "failure",
              "challenge",
              "solution",
              "advice",
              "tip",
              "suggestion",
              "help",
              "assist",
              "collaborate",
              "network",
              "engage",
              "interact",
              "participate"
            ]
          },
          "sent_at": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "Timestamp when the message was sent.",
            "dayProfile": "waking"
          },
          "read_at": {
            "kind": "datetime",
            "after": "sent_at",
            "withinDays": 30,
            "description": "Timestamp when the message was read, null if not yet read.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "high-cardinality",
      "nullable"
    ],
    "analysisQuestions": [
      "What is the average response time for messages?",
      "Which participants are most active in conversations?",
      "How does messaging activity vary by day of the week?",
      "What is the trend of messages sent over time?",
      "How many messages remain unread after a certain period?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Messages and Conversations",
        "sql": "SELECT messages.id, messages.content, conversations.created_at FROM messages JOIN conversations ON messages.conversation_id = conversations.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Messages per Conversation",
        "sql": "SELECT conversation_id, COUNT(*) as message_count FROM messages GROUP BY conversation_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Response Time",
        "sql": "SELECT AVG(EXTRACT(EPOCH FROM read_at - sent_at)) as average_response_time FROM messages WHERE read_at IS NOT NULL;",
        "dialect": "postgres"
      },
      {
        "title": "Messages Sent Over Time",
        "sql": "SELECT DATE(sent_at) as date, COUNT(*) as messages_sent FROM messages GROUP BY DATE(sent_at) ORDER BY DATE(sent_at);",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Social Media Analyst",
        "body": "A social media analyst could leverage this dataset to examine user engagement patterns within direct messaging features. By analyzing the timestamps of sent and read messages, they can identify trends in response times and peak activity periods, enabling the optimization of user experience strategies."
      },
      {
        "title": "Business Intelligence Developer",
        "body": "A BI developer might use this dataset to create interactive dashboards showcasing messaging activity across different user segments. By visualizing data such as average response times and message counts, they can provide stakeholders with insights into communication efficiency and participant engagement."
      },
      {
        "title": "Product Manager",
        "body": "A product manager could utilize this dataset to assess the effectiveness of direct messaging features in their application. By examining participant activity and message flow, they can make informed decisions on feature enhancements or new functionalities that improve user interaction."
      }
    ]
  },
  "counts": {
    "conversations": 100,
    "messages": 500,
    "participants": 300
  },
  "stats": {
    "conversations": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "created_at": {
          "nulls": 8,
          "distinct": 92,
          "min": "2023-01-04 19:06:22",
          "max": "2024-12-29 12:59:01"
        }
      }
    },
    "participants": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "conversation_id": {
          "nulls": 0,
          "distinct": 96,
          "min": 1,
          "max": 100
        },
        "user_id": {
          "nulls": 0,
          "distinct": 300
        },
        "joined_at": {
          "nulls": 37,
          "distinct": 263,
          "min": "2023-01-03 12:59:17",
          "max": "2024-12-29 10:28:58"
        }
      }
    },
    "messages": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "conversation_id": {
          "nulls": 0,
          "distinct": 99,
          "min": 1,
          "max": 100
        },
        "sender_id": {
          "nulls": 0,
          "distinct": 500
        },
        "content": {
          "nulls": 64,
          "distinct": 352
        },
        "sent_at": {
          "nulls": 0,
          "distinct": 500,
          "min": "2023-01-03 02:35:24",
          "max": "2024-12-30 14:01:27"
        },
        "read_at": {
          "nulls": 43,
          "distinct": 457,
          "min": "2023-01-06 03:09:54",
          "max": "2025-01-26 21:10:52"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/conversations.csv",
      "format": "csv",
      "table": "conversations",
      "key": "datasets/messaging-activity/v2/csv/conversations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/csv/conversations.csv",
      "bytes": 2255,
      "sha256": "ec6b579f8df1391be916485c4c2c6af6533a6dc447298eae39ae142205974d7c",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/messages.csv",
      "format": "csv",
      "table": "messages",
      "key": "datasets/messaging-activity/v2/csv/messages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/csv/messages.csv",
      "bytes": 48342,
      "sha256": "4a387c26364f0b6eefabd73ad7002be1db4ed2d8b029b0979fa6ffb50155d24d",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/participants.csv",
      "format": "csv",
      "table": "participants",
      "key": "datasets/messaging-activity/v2/csv/participants.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/csv/participants.csv",
      "bytes": 18706,
      "sha256": "c90fc04cc8127f1508ccfe6a55da807f1dc28099ab7240494cc94503a8a602e4",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "messaging-activity.json",
      "format": "json",
      "table": null,
      "key": "datasets/messaging-activity/v2/messaging-activity.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/messaging-activity.json",
      "bytes": 167872,
      "sha256": "11586134569fb2b9b03044c3766250de370271ce8cd002655282d968f94d08de",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/messaging-activity/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/sql/postgres.sql",
      "bytes": 85758,
      "sha256": "254d23ba88c7fd8623f0de39ae0ebe2814c80372d5327945e00c2e5c49b2b83b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/messaging-activity/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/sql/mysql.sql",
      "bytes": 85421,
      "sha256": "2d0488d5191fbf736e19ecdb2598185e3e14139d9d3ffbead5342534e06fcf66",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/messaging-activity/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/sql/mssql.sql",
      "bytes": 88191,
      "sha256": "5e41b19b243fb3b8fdfc4b7ed5dd80bce95a84dd5eafbeab3a820bf19d1deb7b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/messaging-activity/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/sql/sqlite.sql",
      "bytes": 85292,
      "sha256": "91cd1b978fec94dde6b58f61869cd1909f02c4aacf1f461f2351bd2dc30adc45",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/messaging-activity/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/prisma/seed.ts",
      "bytes": 151522,
      "sha256": "7f97222b1ed9a559df1280d3344e8b05dc3c0ac5eccaeb739260da4a6fa8b18a",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/messaging-activity/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/messaging-activity/v2/django/fixtures.json",
      "bytes": 208015,
      "sha256": "0e627b1d596c11e77c8b0035fbbf29154bb19980fd58bad1caae9232127914e6",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788766001761,
  "updatedAt": 1788784983361
}
