MagicBell · Schema

user

notificationspush notificationsin-app notificationsemailSMSSlackMicrosoft Teamswebhooksnotification inboxmultichannelmobile pushweb push
View JSON Schema on GitHub

JSON Schema

magicbell-user.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/magicbell/main/json-schema/magicbell-user.json",
  "title": "user",
  "type": "object",
  "allOf": [
    {
      "anyOf": [
        {
          "required": [
            "email"
          ],
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "format": "email"
            },
            "external_id": {
              "pattern": "\\s*",
              "type": "string"
            }
          }
        },
        {
          "required": [
            "email"
          ],
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "format": "email"
            },
            "external_id": {
              "pattern": "^[^\\s]+",
              "type": "string"
            }
          }
        },
        {
          "required": [
            "external_id"
          ],
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "format": "email"
            },
            "external_id": {
              "pattern": "^[^\\s]+",
              "type": "string"
            }
          }
        },
        {
          "required": [
            "external_id"
          ],
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "format": "\\s+"
            },
            "external_id": {
              "minLength": 1,
              "pattern": "^[^\\s]+",
              "type": "string"
            }
          }
        }
      ]
    },
    {
      "minProperties": 1,
      "type": "object",
      "properties": {
        "custom_attributes": {
          "type": "object"
        },
        "email": {
          "maxLength": 255,
          "type": "string"
        },
        "external_id": {
          "maxLength": 255,
          "type": "string"
        },
        "first_name": {
          "maxLength": 255,
          "type": "string"
        },
        "last_name": {
          "maxLength": 255,
          "type": "string"
        },
        "phone_numbers": {
          "type": "array",
          "items": {
            "pattern": "^\\+\\d{1,3}\\s?\\d{1,14}$",
            "type": "string"
          }
        }
      },
      "additionalProperties": false
    }
  ]
}