{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/novu/main/json-schema/novu-message-response-dto-schema.json",
  "title": "MessageResponseDto",
  "description": "JSON Schema for Novu MessageResponseDto.",
  "type": "object",
  "properties": {
    "_id": {
      "type": "string",
      "description": "Unique identifier for the message"
    },
    "_templateId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Template ID associated with the message"
    },
    "_environmentId": {
      "type": "string",
      "description": "Environment ID where the message is sent"
    },
    "_messageTemplateId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Message template ID"
    },
    "_organizationId": {
      "type": "string",
      "description": "Organization ID associated with the message"
    },
    "_notificationId": {
      "type": "string",
      "description": "Notification ID associated with the message"
    },
    "_subscriberId": {
      "type": "string",
      "description": "Subscriber ID associated with the message"
    },
    "subscriber": {
      "description": "Subscriber details, if available",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "_id": {
              "type": "string",
              "description": "The internal ID generated by Novu for your subscriber. This ID does not match the `subscriberId` used in your queries. Refer to `subscriberId` for that identifier."
            },
            "firstName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The first name of the subscriber."
            },
            "lastName": {
              "type": [
                "string",
                "null"
              ],
              "description": "The last name of the subscriber."
            },
            "email": {
              "type": [
                "string",
                "null"
              ],
              "description": "The email address of the subscriber."
            },
            "phone": {
              "type": [
                "string",
                "null"
              ],
              "description": "The phone number of the subscriber."
            },
            "avatar": {
              "type": [
                "string",
                "null"
              ],
              "description": "The URL of the subscriber's avatar image."
            },
            "locale": {
              "type": [
                "string",
                "null"
              ],
              "description": "The locale setting of the subscriber, indicating their preferred language or region."
            },
            "channels": {
              "description": "An array of channel settings associated with the subscriber.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "providerId": {
                    "type": "string",
                    "description": "The provider identifier for the credentials",
                    "enum": [
                      "slack",
                      "discord",
                      "msteams",
                      "mattermost",
                      "ryver",
                      "zulip",
                      "grafana-on-call",
                      "getstream",
                      "rocket-chat",
                      "whatsapp-business",
                      "chat-webhook",
                      "novu-slack",
                      "telegram",
                      "fcm",
                      "apns",
                      "expo",
                      "one-signal",
                      "pushpad",
                      "push-webhook",
                      "pusher-beams",
                      "appio"
                    ]
                  },
                  "integrationIdentifier": {
                    "type": "string",
                    "description": "The integration identifier"
                  },
                  "credentials": {
                    "description": "Credentials payload for the specified provider",
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "webhookUrl": {
                            "type": "string",
                            "description": "Webhook URL used by chat app integrations. The webhook should be obtained from the chat app provider.",
                            "example": "https://example.com/webhook"
                          },
                          "channel": {
                            "type": "string",
                            "description": "Channel specification for Mattermost chat notifications.",
                            "example": "general"
                          },
                          "deviceTokens": {
                            "description": "Contains an array of the subscriber device tokens for a given provider. Used on Push integrations.",
                            "example": [
                              "token1",
                              "token2",
                              "token3"
                            ],
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "alertUid": {
                            "type": "string",
                            "description": "Alert UID for Grafana on-call webhook payload.",
                            "example": "12345-abcde"
                          },
                          "title": {
                            "type": "string",
                            "description": "Title to be used with Grafana on-call webhook.",
                            "example": "Critical Alert"
                          },
                          "imageUrl": {
                            "type": "string",
                            "description": "Image URL property for Grafana on-call webhook.",
                            "example": "https://example.com/image.png"
                          },
                          "state": {
                            "type": "string",
                            "description": "State property for Grafana on-call webhook.",
                            "example": "resolved"
                          },
                          "externalUrl": {
                            "type": "string",
                            "description": "Link to upstream details property for Grafana on-call webhook.",
                            "example": "https://example.com/details"
                          }
                        }
                      }
                    ]
                  },
                  "_integrationId": {
                    "type": "string",
                    "description": "The unique identifier of the integration associated with this channel."
                  }
                },
                "required": [
                  "providerId",
                  "credentials",
                  "_integrationId"
                ]
              }
            },
            "topics": {
              "description": "An array of topics that the subscriber is subscribed to.",
              "deprecated": true,
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "isOnline": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "Indicates whether the subscriber is currently online."
            },
            "lastOnlineAt": {
              "type": [
                "string",
                "null"
              ],
              "description": "The timestamp indicating when the subscriber was last online, in ISO 8601 format."
            },
            "__v": {
              "type": "number",
              "description": "The version of the subscriber document."
            },
            "data": {
              "type": [
                "object",
                "null"
              ],
              "description": "Additional custom data for the subscriber",
              "additionalProperties": true
            },
            "timezone": {
              "type": [
                "string",
                "null"
              ],
              "description": "Timezone of the subscriber"
            },
            "subscriberId": {
              "type": "string",
              "description": "The identifier used to create this subscriber, which typically corresponds to the user ID in your system."
            },
            "_organizationId": {
              "type": "string",
              "description": "The unique identifier of the organization to which the subscriber belongs."
            },
            "_environmentId": {
              "type": "string",
              "description": "The unique identifier of the environment associated with this subscriber."
            },
            "deleted": {
              "type": "boolean",
              "description": "Indicates whether the subscriber has been deleted."
            },
            "createdAt": {
              "type": "string",
              "description": "The timestamp indicating when the subscriber was created, in ISO 8601 format."
            },
            "updatedAt": {
              "type": "string",
              "description": "The timestamp indicating when the subscriber was last updated, in ISO 8601 format."
            }
          },
          "required": [
            "subscriberId",
            "_organizationId",
            "_environmentId",
            "deleted",
            "createdAt",
            "updatedAt"
          ]
        }
      ]
    },
    "template": {
      "description": "Workflow template associated with the message",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "_id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "active": {
              "type": "boolean"
            },
            "draft": {
              "type": "boolean"
            },
            "preferenceSettings": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "boolean",
                  "description": "Email channel preference",
                  "example": true
                },
                "sms": {
                  "type": "boolean",
                  "description": "SMS channel preference",
                  "example": false
                },
                "in_app": {
                  "type": "boolean",
                  "description": "In-app channel preference",
                  "example": true
                },
                "chat": {
                  "type": "boolean",
                  "description": "Chat channel preference",
                  "example": false
                },
                "push": {
                  "type": "boolean",
                  "description": "Push notification channel preference",
                  "example": true
                }
              }
            },
            "critical": {
              "type": "boolean"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "steps": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "_id": {
                    "type": "string",
                    "description": "Unique identifier for the notification step."
                  },
                  "uuid": {
                    "type": "string",
                    "description": "Universally unique identifier for the notification step."
                  },
                  "name": {
                    "type": "string",
                    "description": "Name of the notification step."
                  },
                  "_templateId": {
                    "type": "string",
                    "description": "ID of the template associated with this notification step."
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Indicates whether the notification step is active."
                  },
                  "shouldStopOnFail": {
                    "type": "boolean",
                    "description": "Determines if the process should stop on failure."
                  },
                  "template": {
                    "description": "Message template used in this notification step.",
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {}
                      }
                    ]
                  },
                  "filters": {
                    "description": "Filters applied to this notification step.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "isNegated": {
                          "type": "boolean"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "BOOLEAN",
                            "TEXT",
                            "DATE",
                            "NUMBER",
                            "STATEMENT",
                            "LIST",
                            "MULTI_LIST",
                            "GROUP"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "enum": [
                            "AND",
                            "OR"
                          ]
                        },
                        "children": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "field": {
                                "type": "string"
                              },
                              "value": {
                                "type": "string"
                              },
                              "operator": {
                                "type": "string",
                                "enum": [
                                  "LARGER",
                                  "SMALLER",
                                  "LARGER_EQUAL",
                                  "SMALLER_EQUAL",
                                  "EQUAL",
                                  "NOT_EQUAL",
                                  "ALL_IN",
                                  "ANY_IN",
                                  "NOT_IN",
                                  "BETWEEN",
                                  "NOT_BETWEEN",
                                  "LIKE",
                                  "NOT_LIKE",
                                  "IN"
                                ]
                              },
                              "on": {
                                "type": "string",
                                "enum": [
                                  "subscriber",
                                  "payload"
                                ]
                              }
                            },
                            "required": [
                              "field",
                              "value",
                              "operator",
                              "on"
                            ]
                          }
                        }
                      },
                      "required": [
                        "isNegated",
                        "type",
                        "value",
                        "children"
                      ]
                    }
                  },
                  "_parentId": {
                    "type": "string",
                    "description": "ID of the parent notification step, if applicable."
                  },
                  "metadata": {
                    "description": "Metadata associated with the workflow step. Can vary based on the type of step.",
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "seconds",
                              "minutes",
                              "hours",
                              "days",
                              "weeks",
                              "months"
                            ]
                          },
                          "digestKey": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "regular",
                              "backoff"
                            ]
                          },
                          "backoff": {
                            "type": "boolean"
                          },
                          "backoffAmount": {
                            "type": "number"
                          },
                          "backoffUnit": {
                            "type": "string",
                            "enum": [
                              "seconds",
                              "minutes",
                              "hours",
                              "days",
                              "weeks",
                              "months"
                            ]
                          },
                          "updateMode": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "seconds",
                              "minutes",
                              "hours",
                              "days",
                              "weeks",
                              "months"
                            ]
                          },
                          "digestKey": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "timed"
                            ]
                          },
                          "timed": {
                            "type": "object",
                            "properties": {
                              "atTime": {
                                "type": "string"
                              },
                              "weekDays": {
                                "type": "array",
                                "items": {
                                  "type": "string",
                                  "enum": [
                                    "monday",
                                    "tuesday",
                                    "wednesday",
                                    "thursday",
                                    "friday",
                                    "saturday",
                                    "sunday"
                                  ]
                                }
                              },
                              "monthDays": {
                                "type": "array",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "ordinal": {
                                "type": "string",
                                "enum": [
                                  "1",
                                  "2",
                                  "3",
                                  "4",
                                  "5",
                                  "last"
                                ]
                              },
                              "ordinalValue": {
                                "type": "string",
                                "enum": [
                                  "day",
                                  "weekday",
                                  "weekend",
                                  "sunday",
                                  "monday",
                                  "tuesday",
                                  "wednesday",
                                  "thursday",
                                  "friday",
                                  "saturday"
                                ]
                              },
                              "monthlyType": {
                                "type": "string",
                                "enum": [
                                  "each",
                                  "on"
                                ]
                              }
                            }
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "amount": {
                            "type": "number"
                          },
                          "unit": {
                            "type": "string",
                            "enum": [
                              "seconds",
                              "minutes",
                              "hours",
                              "days",
                              "weeks",
                              "months"
                            ]
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "regular"
                            ]
                          }
                        },
                        "required": [
                          "type"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "scheduled"
                            ]
                          },
                          "delayPath": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "delayPath"
                        ]
                      }
                    ]
                  },
                  "replyCallback": {
                    "description": "Callback information for replies, including whether it is active and the callback URL.",
                    "allOf": [
                      {
                        "type": "object",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Indicates whether the reply callback is active."
                          },
                          "url": {
                            "type": "string",
                            "description": "The URL to which replies should be sent."
                          }
                        }
                      }
                    ]
                  },
                  "variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "_id": {
                          "type": "string",
                          "description": "Unique identifier for the notification step."
                        },
                        "uuid": {
                          "type": "string",
                          "description": "Universally unique identifier for the notification step."
                        },
                        "name": {
                          "type": "string",
                          "description": "Name of the notification step."
                        },
                        "_templateId": {
                          "type": "string",
                          "description": "ID of the template associated with this notification step."
                        },
                        "active": {
                          "type": "boolean",
                          "description": "Indicates whether the notification step is active."
                        },
                        "shouldStopOnFail": {
                          "type": "boolean",
                          "description": "Determines if the process should stop on failure."
                        },
                        "template": {
                          "description": "Message template used in this notification step.",
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {}
                            }
                          ]
                        },
                        "filters": {
                          "description": "Filters applied to this notification step.",
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "isNegated": {
                                "type": "boolean"
                              },
                              "type": {
                                "type": "object"
                              },
                              "value": {
                                "type": "string",
                                "enum": [
                                  "AND",
                                  "OR"
                                ]
                              },
                              "children": {
                                "type": "array",
                                "items": {
                                  "type": "object"
                                }
                              }
                            },
                            "required": [
                              "isNegated",
                              "type",
                              "value",
                              "children"
                            ]
                          }
                        },
                        "_parentId": {
                          "type": "string",
                          "description": "ID of the parent notification step, if applicable."
                        },
                        "metadata": {
                          "description": "Metadata associated with the workflow step. Can vary based on the type of step.",
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number"
                                },
                                "unit": {
                                  "type": "string",
                                  "enum": [
                                    "seconds",
                                    "minutes",
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "digestKey": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "regular",
                                    "backoff"
                                  ]
                                },
                                "backoff": {
                                  "type": "boolean"
                                },
                                "backoffAmount": {
                                  "type": "number"
                                },
                                "backoffUnit": {
                                  "type": "string",
                                  "enum": [
                                    "seconds",
                                    "minutes",
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "updateMode": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number"
                                },
                                "unit": {
                                  "type": "string",
                                  "enum": [
                                    "seconds",
                                    "minutes",
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "digestKey": {
                                  "type": "string"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "timed"
                                  ]
                                },
                                "timed": {
                                  "type": "object"
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number"
                                },
                                "unit": {
                                  "type": "string",
                                  "enum": [
                                    "seconds",
                                    "minutes",
                                    "hours",
                                    "days",
                                    "weeks",
                                    "months"
                                  ]
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "regular"
                                  ]
                                }
                              },
                              "required": [
                                "type"
                              ]
                            },
                            {
                              "type": "object",
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "scheduled"
                                  ]
                                },
                                "delayPath": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "type",
                                "delayPath"
                              ]
                            }
                          ]
                        },
                        "replyCallback": {
                          "description": "Callback information for replies, including whether it is active and the callback URL.",
                          "allOf": [
                            {
                              "type": "object",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Indicates whether the reply callback is active."
                                },
                                "url": {
                                  "type": "string",
                                  "description": "The URL to which replies should be sent."
                                }
                              }
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            },
            "_organizationId": {
              "type": "string"
            },
            "_creatorId": {
              "type": "string"
            },
            "_environmentId": {
              "type": "string"
            },
            "triggers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": [
                      "event"
                    ]
                  },
                  "identifier": {
                    "type": "string"
                  },
                  "variables": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Name of the variable"
                        }
                      },
                      "required": [
                        "name"
                      ]
                    }
                  },
                  "subscriberVariables": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "description": "Name of the variable"
                        }
                      },
                      "required": [
                        "name"
                      ]
                    }
                  }
                },
                "required": [
                  "type",
                  "identifier",
                  "variables"
                ]
              }
            },
            "_notificationGroupId": {
              "type": "string"
            },
            "_parentId": {
              "type": "string"
            },
            "deleted": {
              "type": "boolean"
            },
            "deletedAt": {
              "type": "string"
            },
            "deletedBy": {
              "type": "string"
            },
            "notificationGroup": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "_environmentId": {
                  "type": "string"
                },
                "_organizationId": {
                  "type": "string"
                },
                "_parentId": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "_environmentId",
                "_organizationId"
              ]
            },
            "data": {
              "type": "object"
            },
            "workflowIntegrationStatus": {
              "type": "object"
            }
          },
          "required": [
            "name",
            "description",
            "active",
            "draft",
            "preferenceSettings",
            "critical",
            "tags",
            "steps",
            "_organizationId",
            "_creatorId",
            "_environmentId",
            "triggers",
            "_notificationGroupId",
            "deleted",
            "deletedAt",
            "deletedBy"
          ]
        }
      ]
    },
    "templateIdentifier": {
      "type": "string",
      "description": "Identifier for the message template"
    },
    "createdAt": {
      "type": "string",
      "description": "Creation date of the message"
    },
    "deliveredAt": {
      "description": "Array of delivery dates for the message, if the message has multiple delivery dates, for example after being snoozed",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "lastSeenDate": {
      "type": "string",
      "description": "Last seen date of the message, if available"
    },
    "lastReadDate": {
      "type": "string",
      "description": "Last read date of the message, if available"
    },
    "content": {
      "oneOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "Type of the email block",
                "enum": [
                  "button",
                  "text"
                ]
              },
              "content": {
                "type": "string",
                "description": "Content of the email block"
              },
              "url": {
                "type": "string",
                "description": "URL associated with the email block, if any"
              },
              "styles": {
                "description": "Styles applied to the email block",
                "allOf": [
                  {
                    "type": "object",
                    "properties": {
                      "textAlign": {
                        "type": "string",
                        "description": "Text alignment for the email block",
                        "enum": [
                          "center",
                          "left",
                          "right"
                        ]
                      }
                    },
                    "required": [
                      "textAlign"
                    ]
                  }
                ]
              }
            },
            "required": [
              "type",
              "content"
            ]
          }
        },
        {
          "type": "string",
          "description": "String representation of the content"
        }
      ],
      "description": "Content of the message, can be an email block or a string"
    },
    "transactionId": {
      "type": "string",
      "description": "Transaction ID associated with the message"
    },
    "subject": {
      "type": "string",
      "description": "Subject of the message, if applicable"
    },
    "channel": {
      "type": "string",
      "description": "Channel type through which the message is sent",
      "enum": [
        "in_app",
        "email",
        "sms",
        "chat",
        "push"
      ]
    },
    "read": {
      "type": "boolean",
      "description": "Indicates if the message has been read"
    },
    "seen": {
      "type": "boolean",
      "description": "Indicates if the message has been seen"
    },
    "snoozedUntil": {
      "type": "string",
      "description": "Date when the message will be unsnoozed"
    },
    "email": {
      "type": "string",
      "description": "Email address associated with the message, if applicable"
    },
    "phone": {
      "type": "string",
      "description": "Phone number associated with the message, if applicable"
    },
    "directWebhookUrl": {
      "type": "string",
      "description": "Direct webhook URL for the message, if applicable"
    },
    "providerId": {
      "type": "string",
      "description": "Provider ID associated with the message, if applicable"
    },
    "deviceTokens": {
      "description": "Device tokens associated with the message, if applicable",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "title": {
      "type": "string",
      "description": "Title of the message, if applicable"
    },
    "cta": {
      "description": "Call to action associated with the message",
      "allOf": [
        {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "description": "Type of call to action",
              "enum": [
                "redirect"
              ]
            },
            "data": {
              "description": "Data associated with the call to action",
              "allOf": [
                {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "description": "URL for the call to action"
                    }
                  }
                }
              ]
            },
            "action": {
              "description": "Action associated with the call to action",
              "allOf": [
                {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "string",
                      "description": "Status of the message action",
                      "enum": [
                        "pending",
                        "done"
                      ]
                    },
                    "buttons": {
                      "description": "List of buttons associated with the message action",
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "description": "Type of button for the action result",
                            "enum": [
                              "primary",
                              "secondary"
                            ]
                          },
                          "content": {
                            "type": "string",
                            "description": "Content of the button"
                          },
                          "resultContent": {
                            "type": "string",
                            "description": "Content of the result when the button is clicked"
                          }
                        },
                        "required": [
                          "type",
                          "content"
                        ]
                      }
                    },
                    "result": {
                      "description": "Result of the message action",
                      "allOf": [
                        {
                          "type": "object",
                          "properties": {
                            "payload": {
                              "type": "object",
                              "description": "Payload of the action result",
                              "additionalProperties": true
                            },
                            "type": {
                              "type": "string",
                              "description": "Type of button for the action result",
                              "enum": [
                                "primary",
                                "secondary"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              ]
            }
          }
        }
      ]
    },
    "_feedId": {
      "type": [
        "string",
        "null"
      ],
      "description": "Feed ID associated with the message, if applicable"
    },
    "status": {
      "type": "string",
      "description": "Status of the message",
      "enum": [
        "sent",
        "error",
        "warning"
      ]
    },
    "errorId": {
      "type": "string",
      "description": "Error ID if the message has an error"
    },
    "errorText": {
      "type": "string",
      "description": "Error text if the message has an error"
    },
    "payload": {
      "type": "object",
      "description": "The payload that was used to send the notification trigger",
      "additionalProperties": true
    },
    "overrides": {
      "type": "object",
      "description": "Provider specific overrides used when triggering the notification",
      "additionalProperties": true
    },
    "contextKeys": {
      "description": "Context (single or multi) in which the message was sent",
      "example": [
        "tenant:org-123",
        "region:us-east-1"
      ],
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "_environmentId",
    "_organizationId",
    "_notificationId",
    "_subscriberId",
    "createdAt",
    "transactionId",
    "channel",
    "read",
    "seen",
    "cta",
    "status"
  ]
}