Webhooks Reference

Webhooks allow you to receive real-time notifications when events occur in Userlist. When an event happens (such as a user being created, a message being opened, or a form being submitted), Userlist sends an HTTP POST request to your configured endpoint with details about the event.

This reference documents the structure of webhook payloads, how to verify their authenticity, and the specific events you can subscribe to.

Setting up webhooks

You can manage your webhook endpoints in the Webhooks Integration settings page. There, you can add new endpoints, select which events to subscribe to, and enable or disable webhook delivery.

Request structure

Webhooks from Userlist are sent as HTTP POST requests with a JSON payload. The payload contains information about the event that triggered the webhook. See below for a full list of webhook events and their payload structures.

Example Webhook Payload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
POST /your/webhook/endpoint HTTP/1.1
Host: yourdomain.com
Content-Type: application/json; charset=utf-8
X-Userlist-Signature: t=1764846825,v1=b9a214590ebad332a83034b14527ff257ca19e97899164ef7625cbaa531c3dd8

{
  "id": "0ed1e6d0-ba8b-4194-8999-4e7fe4821a2c",
  "name": "user_updated",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

Automatic retries

If your webhook endpoint returns an HTTP error status code (400-5xx) or fails to respond, Userlist will automatically retry delivering the webhook up to 10 times. Retries follow an exponential backoff strategy, with increasing delays between attempts to give your server time to recover.

Your endpoint should respond with a 2xx status code to acknowledge successful receipt of the webhook. If you need to perform long-running operations in response to a webhook, consider responding immediately with a success status and processing the webhook asynchronously to avoid timeouts.

Event ordering

Webhook events are delivered as they occur, but the order of delivery is not guaranteed. Due to network conditions, retries, or parallel processing, events may arrive out of sequence at your endpoint.

Verifing webhook payloads

In order verify that incoming webhook requests are genuinely from Userlist, you can use the X-Userlist-Signature header included with each request.

Signature Example
X-Userlist-Signature: t=1764843117,v1=4c72b7ab5caa24d653a065bb70ad77eaa00ad479393ec29b5839abf1fd085d53

The signature includes a timestamp and a hash-based message authentication code (HMAC) using SHA-256. To verify the signature, start by splitting the value of the X-Userlist-Signature header by commas to get the timestamp and signature components. Then, split each component by the equals sign (=) to extract the actual values.

Signature Format
X-Userlist-Signature: t=<timestamp>,v1=<hex_signature>

Next, prepare the string to sign by concatenating the timestamp extracted from the header and the raw request body (the exact bytes received) with a period (.) in between.

1
"<timestamp>.<raw_request_body>"

Then, use your webhook secret (found in the webhook configuration screen) to compute the HMAC SHA-256 hash of the prepared string.

1
HMAC256("<timestamp>.<raw_request_body>", webhook_secret)

Finally, compare the computed hash (in hexadecimal format) with the signature extracted from the X-Userlist-Signature header. If they match, the webhook request is verified as coming from Userlist. To prevent replay attacks, check that the timestamp is within an acceptable time window to the current time. To prevent timing attacks, use a constant-time comparison function.

Here are a couple of example implementations in different programming languages. Their standard libraries provide the necessary cryptographic functions to compute HMAC SHA-256 hashes.

Verify Webhook Signature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const crypto = require('crypto');

function verifyWebhookSignature(header, body, webhookSecret) {
  const parts = header.split(',');
  const timestamp = parts[0].split('=')[1];
  const signature = parts[1].split('=')[1];

  const signedPayload = `${timestamp}.${body}`;
  const computedSignature = crypto
    .createHmac('sha256', webhookSecret)
    .update(signedPayload)
    .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(computedSignature),
    Buffer.from(signature)
  );
}

List of webhook events

Title Event Name
User Created user_created
User Updated user_updated
User Subscribed user_subscribed
User Unsubscribed user_unsubscribed
Company Created company_created
Company Updated company_updated
Relationship Created relationship_created
Relationship Updated relationship_updated
Form Submitted form_submitted
Message Enqueued message_enqueued
Message Opened message_opened
Message Clicked message_clicked

User Created

Triggered when a new user is created in Userlist.

Properties

  • name string

    The name of the event. This is always user_created for this event.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

User Created
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "3c67a121-de90-412a-85fe-bae573cc5ecc",
  "name": "user_created",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

User Updated

Triggered when an existing user is updated in Userlist.

Properties

  • name string

    The name of the event. This is always user_updated for this event.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

User Updated
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "ceb60db9-5801-4218-962f-a5290438f571",
  "name": "user_updated",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

User Subscribed

Triggered when a user subscribes to receive messages. Either globally or for a specific topic.

Properties

  • name string

    The name of the event. This is always user_subscribed for this event.

  • properties object

    An object containing additional information about the event, such as the topic subscribed to. If there is no topic, the user subscribed to all messages.

    Hide nested properties Show nested properties
    • topic_id Optional string

      The ID of the topic the user subscribed to. Present only if the subscription is for a specific topic.

    • topic_name Optional string

      The name of the topic the user subscribed to. Present only if the subscription is for a specific topic.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

User Subscribed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "d129ba2b-41cc-4e05-9257-bf64749433ec",
  "name": "user_subscribed",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

User Unsubscribed

Triggered when a user unsubscribes from receiving messages. Either globally or for a specific topic.

Properties

  • name string

    The name of the event. This is always user_unsubscribed for this event.

  • properties object

    An object containing additional information about the event, such as the topic unsubscribed from. If there is no topic, the user unsubscribed from all messages.

    Hide nested properties Show nested properties
    • topic_id Optional string

      The ID of the topic the user unsubscribed from. Present only if the unsubscription is for a specific topic.

    • topic_name Optional string

      The name of the topic the user unsubscribed from. Present only if the unsubscription is for a specific topic.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

User Unsubscribed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "5fa6fb80-c0e8-4ed6-8432-5c4ac37f9b01",
  "name": "user_unsubscribed",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

Company Created

Triggered when a new company is created in Userlist.

Properties

  • name string

    The name of the event. This is always company_created for this event.

  • company object

    The company associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the company.

    • identifier string

      The unique identifier of the company as provided by your application.

    • name string

      The name of the company.

    • properties object

      An object containing custom properties about the company.

    • signed_up_at datetime

      The timestamp (in UTC) when the company signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the company was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the company was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Company Created
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "id": "c7bc06f6-20dc-44a0-964b-a2914953ea3c",
  "name": "company_created",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "company": {
    "id": "8b4f7a23-c9d1-4e8a-9b2c-1f5a6e3d8c9b",
    "identifier": "company-567",
    "name": "Example, Inc.",
    "properties": {
      "industry": "Software",
      "billing_plan": "enterprise"
    },
    "signed_up_at": "2024-01-10T09:00:00Z",
    "created_at": "2024-01-10T09:00:00Z",
    "updated_at": "2024-12-01T11:45:00Z"
  }
}

Company Updated

Triggered when an existing company is updated in Userlist.

Properties

  • name string

    The name of the event. This is always company_updated for this event.

  • company object

    The company associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the company.

    • identifier string

      The unique identifier of the company as provided by your application.

    • name string

      The name of the company.

    • properties object

      An object containing custom properties about the company.

    • signed_up_at datetime

      The timestamp (in UTC) when the company signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the company was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the company was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Company Updated
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
  "id": "4502a2aa-a3d8-4eb9-95fa-a108d31c875c",
  "name": "company_updated",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "company": {
    "id": "8b4f7a23-c9d1-4e8a-9b2c-1f5a6e3d8c9b",
    "identifier": "company-567",
    "name": "Example, Inc.",
    "properties": {
      "industry": "Software",
      "billing_plan": "enterprise"
    },
    "signed_up_at": "2024-01-10T09:00:00Z",
    "created_at": "2024-01-10T09:00:00Z",
    "updated_at": "2024-12-01T11:45:00Z"
  }
}

Relationship Created

Triggered when a new relationship between a user and a company is created in Userlist.

Properties

  • name string

    The name of the event. This is always relationship_created for this event.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • company object

    The company associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the company.

    • identifier string

      The unique identifier of the company as provided by your application.

    • name string

      The name of the company.

    • properties object

      An object containing custom properties about the company.

    • signed_up_at datetime

      The timestamp (in UTC) when the company signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the company was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the company was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • relationship object

    The relationship associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the relationship.

    • properties object

      An object containing custom properties about the relationship.

    • created_at datetime

      The timestamp (in UTC) when the relationship was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the relationship was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Relationship Created
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
  "id": "b82b4986-1742-40a1-8d1f-b95193ba5007",
  "name": "relationship_created",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  },
  "company": {
    "id": "8b4f7a23-c9d1-4e8a-9b2c-1f5a6e3d8c9b",
    "identifier": "company-567",
    "name": "Example, Inc.",
    "properties": {
      "industry": "Software",
      "billing_plan": "enterprise"
    },
    "signed_up_at": "2024-01-10T09:00:00Z",
    "created_at": "2024-01-10T09:00:00Z",
    "updated_at": "2024-12-01T11:45:00Z"
  },
  "relationship": {
    "id": "5c7e2a91-b8f3-4d6a-a1e9-7b4c8d2f1a5e",
    "properties": { "role": "owner" },
    "created_at": "2024-01-15T10:35:00Z",
    "updated_at": "2024-11-20T16:10:00Z"
  }
}

Relationship Updated

Triggered when an existing relationship between a user and a company is updated in Userlist.

Properties

  • name string

    The name of the event. This is always relationship_updated for this event.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • company object

    The company associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the company.

    • identifier string

      The unique identifier of the company as provided by your application.

    • name string

      The name of the company.

    • properties object

      An object containing custom properties about the company.

    • signed_up_at datetime

      The timestamp (in UTC) when the company signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the company was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the company was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • relationship object

    The relationship associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the relationship.

    • properties object

      An object containing custom properties about the relationship.

    • created_at datetime

      The timestamp (in UTC) when the relationship was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the relationship was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Relationship Updated
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
  "id": "478732bb-d689-4b87-a5c5-802ae62578ed",
  "name": "relationship_updated",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  },
  "company": {
    "id": "8b4f7a23-c9d1-4e8a-9b2c-1f5a6e3d8c9b",
    "identifier": "company-567",
    "name": "Example, Inc.",
    "properties": {
      "industry": "Software",
      "billing_plan": "enterprise"
    },
    "signed_up_at": "2024-01-10T09:00:00Z",
    "created_at": "2024-01-10T09:00:00Z",
    "updated_at": "2024-12-01T11:45:00Z"
  },
  "relationship": {
    "id": "5c7e2a91-b8f3-4d6a-a1e9-7b4c8d2f1a5e",
    "properties": { "role": "owner" },
    "created_at": "2024-01-15T10:35:00Z",
    "updated_at": "2024-11-20T16:10:00Z"
  }
}

Form Submitted

Triggered when a user submits a form.

Properties

  • name string

    The name of the event. This is always form_submitted for this event.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • properties object

    An object containing additional information about the event.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Form Submitted
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "74be269f-106f-4302-82c0-2e024bc10f5a",
  "name": "form_submitted",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

Message Enqueued

Triggered when a message is enqueued to be sent to a user.

Properties

  • name string

    The name of the event. This is always message_enqueued for this event.

  • properties object

    An object containing additional information about the event, such as the message identifier.

    Hide nested properties Show nested properties
    • message_id string

      The unique identifier of the message that was enqueued. This is not the unique identifier of the messages source (broadcast, workflow message, etc), but rather the unique identifier of the specific instance of the message being sent to the user.

    • subject Optional string

      The subject of the message that was enqueued. This is omitted on transactional messages for security reasons.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Message Enqueued
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "a45064cf-01ae-4878-958a-f7925096e25e",
  "name": "message_enqueued",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

Message Opened

Triggered when a user opens a message.

Properties

  • name string

    The name of the event. This is always message_opened for this event.

  • properties object

    An object containing additional information about the event, such as the message identifier.

    Hide nested properties Show nested properties
    • message_id string

      The unique identifier of the message that was opened. This is not the unique identifier of the messages source (broadcast, workflow message, etc), but rather the unique identifier of the specific instance of the message being sent to the user.

    • subject Optional string

      The subject of the message that was opened. This is omitted on transactional messages for security reasons.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Message Opened
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "6bdd16ee-bb5d-4a66-bf99-e2795470ddf1",
  "name": "message_opened",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

Message Clicked

Triggered when a user clicks a link in a message.

Properties

  • name string

    The name of the event. This is always message_clicked for this event.

  • properties object

    An object containing additional information about the event, such as the message identifier and the URL clicked.

    Hide nested properties Show nested properties
    • message_id string

      The unique identifier of the message that was clicked. This is not the unique identifier of the messages source (broadcast, workflow message, etc), but rather the unique identifier of the specific instance of the message being sent to the user.

    • subject Optional string

      The subject of the message that was clicked. This is omitted on transactional messages for security reasons.

    • url Optional string

      The URL that was clicked by the user. This is omitted on transactional messages for security reasons.

  • user object

    The user associated with the event.

    Hide nested properties Show nested properties
    • id string

      The unique internal identifier for the user.

    • identifier Optional string

      The unique identifier of the user as provided by your application.

    • email Optional string

      The email address of the user.

    • properties object

      An object containing custom properties about the user.

    • signed_up_at datetime

      The timestamp (in UTC) when the user signed up, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • last_seen_at datetime

      The timestamp (in UTC) when the user was last seen in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • unsubscribed_at Optional datetime

      The timestamp (in UTC) when the user unsubscribed from all messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • opted_in_at datetime

      The timestamp (in UTC) when the user opted in to receive messages, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • created_at datetime

      The timestamp (in UTC) when the user was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

    • updated_at datetime

      The timestamp (in UTC) when the user was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Hide default properties Show default properties
  • id string

    The unique internal identifier for the event.

  • scope string

    The scope of the event. This is always userlist for events generated by Userlist itself.

  • occurred_at datetime

    The timestamp (in UTC) when the event was created, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • created_at datetime

    The timestamp (in UTC) when the event was created in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

  • updated_at datetime

    The timestamp (in UTC) when the event was last updated in Userlist, formatted as YYYY-MM-DDTHH:MM:SSZ (RFC3339/ISO8601)

Example

Message Clicked
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "id": "14902c92-f3ef-4033-9dd5-47482eb227e5",
  "name": "message_clicked",
  "scope": "userlist",
  "occurred_at": "2024-12-04T14:20:00Z",
  "created_at": "2024-12-04T14:20:15Z",
  "updated_at": "2024-12-04T14:20:15Z",
  "user": {
    "id": "3d70d1d4-484a-4e72-8857-916ee525214e",
    "identifier": "user-123",
    "email": "user-123@example.com",
    "properties": {
      "first_name": "Delaney",
      "last_name": "Jones"
    },
    "signed_up_at": "2024-01-15T10:30:00Z",
    "last_seen_at": "2024-12-04T14:22:00Z",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-12-04T14:22:00Z"
  }
}

Book your discovery demo

Let’s see how Userlist fits into the bigger picture of your SaaS business. You’ll learn about our automation features, integrations, proven lifecycle frameworks, and how we can help you hit your SaaS growth targets.