{
  "service": "novu",
  "displayName": "Novu",
  "categories": [
    "Communication",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Secret Key",
      "placeholder": "NOVU_SECRET_KEY",
      "description": "Novu environment secret key used with the Authorization: ApiKey header. Find it in the Novu Dashboard under Developer > API Keys: https://docs.novu.co/api-reference/authentication.",
      "extraFields": [
        {
          "key": "apiBaseUrl",
          "label": "API Base URL",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "https://api.novu.co",
          "description": "Optional Novu Cloud API origin for your account region. Use https://api.novu.co for US or https://eu.api.novu.co for EU."
        }
      ]
    }
  ],
  "homepageUrl": "https://novu.co",
  "actions": [
    {
      "id": "novu.create_subscriber",
      "service": "novu",
      "name": "create_subscriber",
      "description": "Create or upsert a Novu subscriber.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "minLength": 1,
            "description": "Unique subscriber identifier from your system."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber's first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber's last name."
          },
          "email": {
            "type": "string",
            "description": "The subscriber's email address.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber's phone number."
          },
          "avatar": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber avatar URL or identifier."
          },
          "locale": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber locale, such as en-US."
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber timezone, such as America/New_York."
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data stored with the Novu resource."
          },
          "failIfExists": {
            "type": "boolean",
            "description": "Whether Novu should fail if the subscriber already exists."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key sent with the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "subscriberId"
        ],
        "description": "Input for creating or upserting a Novu subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "subscriber": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "The internal Novu subscriber ID."
              },
              "subscriberId": {
                "type": "string",
                "description": "The subscriber identifier from your system."
              },
              "firstName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's email address.",
                    "format": "email"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's phone number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "avatar": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber avatar URL or identifier."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "locale": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber locale."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber timezone."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "data": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Custom data stored with the Novu resource."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isOnline": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether Novu considers the subscriber online."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastOnlineAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the subscriber was last online.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deleted": {
                "type": "boolean",
                "description": "Whether the subscriber is deleted."
              },
              "createdAt": {
                "type": "string",
                "description": "When the subscriber was created.",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "description": "When the subscriber was last updated.",
                "format": "date-time"
              }
            },
            "additionalProperties": true,
            "description": "A Novu subscriber resource."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the official Novu API."
          }
        },
        "additionalProperties": false,
        "description": "Subscriber returned by Novu after create or upsert."
      }
    },
    {
      "id": "novu.get_subscriber",
      "service": "novu",
      "name": "get_subscriber",
      "description": "Retrieve a Novu subscriber by subscriber ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber identifier from your system."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Novu subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "subscriber": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "The internal Novu subscriber ID."
              },
              "subscriberId": {
                "type": "string",
                "description": "The subscriber identifier from your system."
              },
              "firstName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's email address.",
                    "format": "email"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's phone number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "avatar": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber avatar URL or identifier."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "locale": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber locale."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber timezone."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "data": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Custom data stored with the Novu resource."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isOnline": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether Novu considers the subscriber online."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastOnlineAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the subscriber was last online.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deleted": {
                "type": "boolean",
                "description": "Whether the subscriber is deleted."
              },
              "createdAt": {
                "type": "string",
                "description": "When the subscriber was created.",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "description": "When the subscriber was last updated.",
                "format": "date-time"
              }
            },
            "additionalProperties": true,
            "description": "A Novu subscriber resource."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the official Novu API."
          }
        },
        "additionalProperties": false,
        "description": "Subscriber returned by Novu."
      }
    },
    {
      "id": "novu.search_subscribers",
      "service": "novu",
      "name": "search_subscribers",
      "description": "Search Novu subscribers with filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "after": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor after which to fetch results."
          },
          "before": {
            "type": "string",
            "minLength": 1,
            "description": "Cursor before which to fetch results."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of subscribers to return."
          },
          "orderDirection": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "Sort direction."
          },
          "orderBy": {
            "type": "string",
            "minLength": 1,
            "description": "Field to order subscribers by."
          },
          "includeCursor": {
            "type": "boolean",
            "description": "Whether to include the cursor item in the response."
          },
          "email": {
            "type": "string",
            "description": "Email address to filter subscribers by.",
            "format": "email"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name to filter subscribers by."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Phone number to filter subscribers by."
          },
          "subscriberId": {
            "type": "string",
            "minLength": 1,
            "description": "Subscriber identifier to filter subscribers by."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for searching Novu subscribers."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "subscribers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "_id": {
                  "type": "string",
                  "description": "The internal Novu subscriber ID."
                },
                "subscriberId": {
                  "type": "string",
                  "description": "The subscriber identifier from your system."
                },
                "firstName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber's first name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lastName": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber's last name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber's email address.",
                      "format": "email"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "phone": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber's phone number."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "avatar": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber avatar URL or identifier."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "locale": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber locale."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "timezone": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The subscriber timezone."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "data": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true,
                      "description": "Custom data stored with the Novu resource."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isOnline": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether Novu considers the subscriber online."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "lastOnlineAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "When the subscriber was last online.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "deleted": {
                  "type": "boolean",
                  "description": "Whether the subscriber is deleted."
                },
                "createdAt": {
                  "type": "string",
                  "description": "When the subscriber was created.",
                  "format": "date-time"
                },
                "updatedAt": {
                  "type": "string",
                  "description": "When the subscriber was last updated.",
                  "format": "date-time"
                }
              },
              "additionalProperties": true,
              "description": "A Novu subscriber resource."
            },
            "description": "Subscribers returned by Novu."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor for the next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "Cursor for the previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "totalCount": {
            "type": "number",
            "description": "Total count reported by Novu."
          },
          "totalCountCapped": {
            "type": "boolean",
            "description": "Whether the total count was capped by Novu."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the official Novu API."
          }
        },
        "additionalProperties": false,
        "description": "A page of Novu subscribers."
      }
    },
    {
      "id": "novu.trigger_event",
      "service": "novu",
      "name": "trigger_event",
      "description": "Trigger a Novu workflow event for subscribers or topics.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The workflow trigger identifier."
          },
          "to": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "description": "A subscriber ID from your system."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "subscriberId": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber identifier from your system."
                      },
                      "firstName": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber's first name."
                      },
                      "lastName": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber's last name."
                      },
                      "email": {
                        "type": "string",
                        "description": "The subscriber's email address.",
                        "format": "email"
                      },
                      "phone": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber's phone number."
                      },
                      "avatar": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber avatar URL or identifier."
                      },
                      "locale": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber locale, such as en-US."
                      },
                      "timezone": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The subscriber timezone, such as America/New_York."
                      },
                      "data": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true,
                        "description": "Custom data stored with the Novu resource."
                      }
                    },
                    "additionalProperties": true,
                    "description": "A Novu subscriber recipient or actor object."
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "const": "Topic",
                        "type": "string",
                        "description": "The recipient type for a topic trigger."
                      },
                      "topicKey": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The topic key."
                      },
                      "exclude": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "description": "A subscriber ID to exclude."
                        },
                        "description": "Subscriber IDs to exclude from the topic trigger."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "type",
                      "topicKey"
                    ],
                    "description": "A Novu topic recipient."
                  }
                ],
                "description": "A subscriber ID, subscriber object, or topic recipient."
              },
              {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "description": "A subscriber ID from your system."
                    },
                    {
                      "type": "object",
                      "properties": {
                        "subscriberId": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber identifier from your system."
                        },
                        "firstName": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber's first name."
                        },
                        "lastName": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber's last name."
                        },
                        "email": {
                          "type": "string",
                          "description": "The subscriber's email address.",
                          "format": "email"
                        },
                        "phone": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber's phone number."
                        },
                        "avatar": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber avatar URL or identifier."
                        },
                        "locale": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber locale, such as en-US."
                        },
                        "timezone": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The subscriber timezone, such as America/New_York."
                        },
                        "data": {
                          "type": "object",
                          "properties": {},
                          "additionalProperties": true,
                          "description": "Custom data stored with the Novu resource."
                        }
                      },
                      "additionalProperties": true,
                      "description": "A Novu subscriber recipient or actor object."
                    },
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "const": "Topic",
                          "type": "string",
                          "description": "The recipient type for a topic trigger."
                        },
                        "topicKey": {
                          "type": "string",
                          "minLength": 1,
                          "description": "The topic key."
                        },
                        "exclude": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "description": "A subscriber ID to exclude."
                          },
                          "description": "Subscriber IDs to exclude from the topic trigger."
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "type",
                        "topicKey"
                      ],
                      "description": "A Novu topic recipient."
                    }
                  ],
                  "description": "A subscriber ID, subscriber object, or topic recipient."
                },
                "description": "Multiple trigger recipients.",
                "minItems": 1,
                "maxItems": 100
              }
            ],
            "description": "One or more trigger recipients."
          },
          "payload": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data stored with the Novu resource."
          },
          "overrides": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Provider, channel, or step overrides for the trigger."
          },
          "transactionId": {
            "type": "string",
            "minLength": 1,
            "description": "Unique deduplication identifier for this trigger."
          },
          "actor": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "Actor subscriber ID from your system."
              },
              {
                "type": "object",
                "properties": {
                  "subscriberId": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber identifier from your system."
                  },
                  "firstName": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber's first name."
                  },
                  "lastName": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber's last name."
                  },
                  "email": {
                    "type": "string",
                    "description": "The subscriber's email address.",
                    "format": "email"
                  },
                  "phone": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber's phone number."
                  },
                  "avatar": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber avatar URL or identifier."
                  },
                  "locale": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber locale, such as en-US."
                  },
                  "timezone": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The subscriber timezone, such as America/New_York."
                  },
                  "data": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Custom data stored with the Novu resource."
                  }
                },
                "additionalProperties": true,
                "description": "A Novu subscriber recipient or actor object."
              }
            ],
            "description": "Actor subscriber ID or actor object."
          },
          "tenant": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "description": "A tenant ID from your system."
              },
              {
                "type": "object",
                "properties": {
                  "identifier": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The tenant identifier."
                  },
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The tenant display name."
                  },
                  "data": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Custom data stored with the Novu resource."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "identifier"
                ],
                "description": "A rich tenant object."
              }
            ],
            "description": "A tenant ID or rich tenant object."
          },
          "context": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "description": "A simple context ID."
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The context ID."
                    },
                    "data": {
                      "type": "object",
                      "properties": {},
                      "additionalProperties": true,
                      "description": "Custom data stored with the Novu resource."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "id"
                  ],
                  "description": "A rich context object."
                }
              ],
              "description": "A Novu trigger context value."
            },
            "description": "Context objects keyed by context name."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key sent with the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "to"
        ],
        "description": "Input for triggering a Novu workflow event."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "acknowledged": {
            "type": "boolean",
            "description": "Whether Novu acknowledged the trigger."
          },
          "status": {
            "type": "string",
            "enum": [
              "error",
              "trigger_not_active",
              "no_workflow_active_steps_defined",
              "no_workflow_steps_defined",
              "processed",
              "no_tenant_found",
              "invalid_recipients"
            ],
            "description": "Novu trigger status."
          },
          "error": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "One error."
            },
            "description": "Errors returned by Novu for the trigger."
          },
          "transactionId": {
            "anyOf": [
              {
                "type": "string",
                "description": "Transaction ID returned by Novu."
              },
              {
                "type": "null"
              }
            ]
          },
          "activityFeedLink": {
            "anyOf": [
              {
                "type": "string",
                "description": "Link to the Novu activity feed."
              },
              {
                "type": "null"
              }
            ]
          },
          "jobData": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Raw object returned by the official Novu API."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the official Novu API."
          }
        },
        "additionalProperties": false,
        "required": [
          "acknowledged",
          "status",
          "transactionId",
          "activityFeedLink",
          "jobData",
          "raw"
        ],
        "description": "Result returned by Novu after the workflow trigger is accepted or rejected."
      }
    },
    {
      "id": "novu.update_subscriber",
      "service": "novu",
      "name": "update_subscriber",
      "description": "Update a Novu subscriber by subscriber ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber identifier from your system."
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber's first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber's last name."
          },
          "email": {
            "type": "string",
            "description": "The subscriber's email address.",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber's phone number."
          },
          "avatar": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber avatar URL or identifier."
          },
          "locale": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber locale, such as en-US."
          },
          "timezone": {
            "type": "string",
            "minLength": 1,
            "description": "The subscriber timezone, such as America/New_York."
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Custom data stored with the Novu resource."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "description": "Optional idempotency key sent with the request."
          }
        },
        "additionalProperties": false,
        "required": [
          "subscriberId"
        ],
        "description": "Input for updating a Novu subscriber."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "subscriber": {
            "type": "object",
            "properties": {
              "_id": {
                "type": "string",
                "description": "The internal Novu subscriber ID."
              },
              "subscriberId": {
                "type": "string",
                "description": "The subscriber identifier from your system."
              },
              "firstName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastName": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's email address.",
                    "format": "email"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "phone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber's phone number."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "avatar": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber avatar URL or identifier."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "locale": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber locale."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The subscriber timezone."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "data": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "Custom data stored with the Novu resource."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isOnline": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether Novu considers the subscriber online."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastOnlineAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "When the subscriber was last online.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "deleted": {
                "type": "boolean",
                "description": "Whether the subscriber is deleted."
              },
              "createdAt": {
                "type": "string",
                "description": "When the subscriber was created.",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "description": "When the subscriber was last updated.",
                "format": "date-time"
              }
            },
            "additionalProperties": true,
            "description": "A Novu subscriber resource."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the official Novu API."
          }
        },
        "additionalProperties": false,
        "description": "Updated subscriber returned by Novu."
      }
    }
  ]
}
