## Export Process
1. **Access Logs Page:** Navigate to the Logs section within Siren.
2. **Click Export:** Users can click on the export button located next to the search field.
3. **Apply Filters:** Users can apply filters such as Date Range, Channel, Provider, Template, Account Name, Workflow, and Status to refine the logs.
4. **Initiate Export:** Users can initiate the export process by clicking the submit button.
5. **Email Notification:** Users will receive an email containing the link to download the exported file, which is valid for 30 days.
6. **Download File:** Upon clicking the download link in the email, the file will automatically download to the user's system.
This streamlined process allows users to easily export logs as .csv files and access them conveniently via email with a downloadable link.
# Notification Lifecycle
Source: https://docs.trysiren.io/docs/06 - Notification Logs/Notification Lifecycle
Understanding the lifecycle of notifications is crucial for interpreting event analytics and dashboard details. Let's explore each stage:
## Notification Status Overview
| **Channel** | **Submitted** | **Delivered** | **Read/Open** | **Clicked** |
| ----------- | ------------- | ------------- | ------------- | ----------- |
| SMS | ✓ | ✓ | ✗ | ✗ |
| WhatsApp | ✓ | ✓ | ✓ (Read) | ✗ |
| Email | ✓ | ✓ | ✓ (Open) | ✓ |
| Slack | ✓ | ✗ | ✗ | ✗ |
| Teams | ✓ | ✗ | ✗ | ✗ |
| Discord | ✓ | ✗ | ✗ | ✗ |
| InApp | ✓ | ✓ | ✓ (Read) | ✗ |
| Push (SDK) | ✓ | ✓ | ✗ | ✓ |
### Status Definitions
* **Submitted:** The notification has been submitted for delivery.
* **Delivered:** The notification has been successfully delivered to the recipient's device.
* **Read/Open:** The notification has been opened or read by the recipient.
* **Clicked:** The recipient has clicked on the notification.
Hello,
Thank you for signing up!
", "fromName": "Support Team", "fromEmail": "noreply@example.com", "replyTo": "support@example.com", "cc": ["team@example.com"], "isRawHTML": true }, "SLACK": { "channel": "SLACK", "body": "New user signup!\n*Name*: John Doe\n*Email*: john@example.com" }, "WHATSAPP": { "channel": "WHATSAPP", "type": "TEMPLATE", "template": { "name": "payment_request_template", "language": { "code": "EN" }, "components": [ { "type": "HEADER", "parameters": [ { "type": "DOCUMENT", "document": { "link": "{{doc}}", "filename": "{{fileName}}" }, "parameter_name": "document" } ] }, { "type": "BODY", "parameters": [ { "text": "{{name}}", "type": "TEXT", "parameter_name": "1" }, { "text": "{{event}}", "type": "TEXT", "parameter_name": "2" }, { "text": "{{amount}}", "type": "TEXT", "parameter_name": "3" } ] }, { "type": "BUTTON", "index": 0, "sub_type": "URL", "parameters": [ { "text": "https://www.mystore.com/", "type": "text", "parameter_name": "1" } ] } ] } }, "PUSH": { "channel": "PUSH", "title": "Welcome!", "body": "Thanks for installing our app.", "priority": "high" }, "IN_APP": { "channel": "IN_APP", "title": "Welcome Aboard!", "body": "Get started with our app by completing your profile.", "type": "WELCOME" } } ```test body
", "attachments": [], "isRawHTML": false, "isPlainText": false } } } ```test body
", "attachments": [], "isRawHTML": false, "isPlainText": false } } } ```
### Overview
* **Name**: The name of the user.
* **Channels**: Icons represent the active communication channels (e.g., email, SMS, push notifications).
* **Segments**: The user's segment for targeted communication.
* **Status**: Toggle the user's activation status.
* **Actions**: Edit or delete the user via the action buttons.
### Key Features
* **Search & Filter**: Search users by name or apply filters.
* **Add User**: Manually add a new user with customizable fields and channel options.
* **Upload CSV**: Import multiple users at once using a CSV file.
## Managing Users
### Adding a User
1. Click the **Add User** button to open the user creation form.
2. Fill in the user's basic information:
* First and Last Name
* Reference ID
* Active communication channels
3. For each selected channel, provide the required information:
* Email address for email notifications
* Phone number for SMS
* Push token for mobile notifications
* Other channel-specific details
4. (Optional) Provide additional information:
* Country
* Language preference
* VIP status
* Custom fields
5. Click **Submit** to add the user.
### Adding Custom Fields
1. Click the **Add More Fields** button in the user form.
2. Enter a custom field name (key) and its value.
3. Multiple custom fields can be added as needed.
4. Click **Submit** to save the user with custom fields.
### Bulk User Upload via CSV
1. Click the **Upload CSV** button.
2. Select a properly formatted CSV file containing user data.
3. Map the CSV columns to the appropriate user fields.
4. Click **Submit** to import multiple users at once.
> **Note**: Ensure your CSV file follows the required format. Download our [CSV template](#) for reference.
## User Settings
### Channel Preferences
* View and modify which communication channels are active for each user
* Update contact information for each channel
* Set notification preferences
### User Segments
* Assign users to segments for targeted communication
* Create and manage custom segments
* Filter users by segment for bulk actions
# Channels & Provider
Source: https://docs.trysiren.io/docs/ChannelsProviders/Channel-Provider-Overview
Learn how to configure channels and providers in Siren
Siren makes it easy for organizations to build smart, multi-channel notification systems by combining powerful channel support and flexible provider integrations. Whether you’re sending transactional alerts, promotional messages, or critical system updates, Siren helps you reach users exactly where they are securely, without adding engineering complexity.
You can configure both channels and providers directly from the Siren dashboard under the **Settings** section, including providers in workflows with one click, giving you full control over how messages are routed and delivered across different environments and workflows.
***
## Channels
Channels in Siren represent the medium through which a notification is delivered. Each channel supports distinct use cases and content formats, allowing teams to craft contextually appropriate messages, whether it’s an OTP sent via SMS, a promotional email campaign, or a push notification embedded directly in your mobile app.
Siren allows you to configure channels, integrate each channel into broader workflows or campaigns. Templates are fully customizable and support channel-specific fields, ensuring that your messages are not only consistent but optimized for their destination platform.
***
## Providers
While channels define *where* your messages are sent, **providers** define *how* they’re delivered. Siren integrates with over 20 third-party providers across email, SMS, WhatsApp, push, and more, offering the flexibility to choose the right delivery partner for your needs.
Providers can be added and managed from **Settings > Providers**. Each integration allows you to input credentials, configure environment-specific keys (for staging vs production), and define fallback logic to ensure message delivery even if a primary provider fails. Multiple providers can be configured per channel. Given below is the list of all available providers in each channel.
***
## Choose a Channel
Not every audience engages the same way, and that is why Siren offers options. Whether it is Email, SMS, Push, or more, channels can be selected based on what works best for your target audience.
The following sections walk through how to set up each channel. No complex setup — just clean, flexible integration that fits seamlessly into any product.
***
## Select a Provider
Providers are the backbone of your communication infrastructure, offering essential services for sending messages and notifications.
With Siren, you have the flexibility to work with multiple providers based on your business requirements and preferences.
Our platform seamlessly integrates with various providers, allowing you to add them effortlessly to your account.\
Providers are categorized under their respective channels for easy access and management.
Select your channel to explore the available providers and configuration options. Click on any card to configure that specific channel.
## Integration Setup
To integrate Discord with Siren, follow these steps:
**Important:** Keep this token secure and never share it publicly.
## Integration Setup
To integrate LINE with Siren, follow these steps:
## Before You Begin
Before proceeding with the Slack integration, you need to configure your Slack App with the required permissions and features.
### Create and Configure Your Slack App
## Integration Setup
To integrate your Microsoft Teams account with Siren using Microsoft's OAuth authentication, follow these steps:
## Integration Setup
To integrate your Amazon SES account with Siren, follow these steps:
## Integration Setup
To integrate your Gmail account with Siren using Google's OAuth authentication, follow these steps:
## Integration Setup
To integrate your Loops account with Siren, follow these steps:
## Integration Setup
To integrate your Mailchimp account with Siren, follow these steps:
## Integration Setup
To integrate your SendGrid account with Siren, follow these steps:
* **From Email**: Use the verified sender email from your Postmark account.
* Go to **Sender Signatures** in Postmark.
* Use the verified email address from your sender signature.
* **From Name**: Enter the name associated with the sender's email.
* **Reply To**: (Optional) Enter an alternate email ID for recipients to reply to.
* **Webhook Path**: The default webhook URL will be pre-filled.
## Integration Setup
To seamlessly integrate Siren with your In-App channel, follow these steps:
## Integration Setup
To integrate FCM with Siren for push notifications, follow these steps:
## Integration Setup
To integrate your OneSignal account with Siren, follow these steps:
## Integration Setup
To integrate your MSG91 account with Siren, follow these steps:
## Integration Setup
To integrate your MessageBird account with Siren, follow these steps:
## Integration Setup
To integrate your Plivo account with Siren, follow these steps:
## Integration Setup
To integrate your Twilio account with Siren for SMS notifications, follow these steps:
2. **Account SID**:
* In the Twilio Console, go to the **Developer** tab
* Click on **Services**
* Select account SID
3. **Webhook Setup**:
* Go to the **Monitor** tab
* Click on **Logs** > **Webhooks**
* Paste the Webhook URL from Siren here
## Integration Setup
To integrate your MSG91 WhatsApp account with Siren, follow these steps:
## Integration Setup
To integrate Twilio WhatsApp with Siren, follow these steps:
2. **Account SID**:
* In the Twilio Console, go to the **Developer** tab
* Click on **Services**
* Select account SID
3. **Webhook Setup**:
* Go to the **Monitor** tab
* Click on **Logs** > **Webhooks**
* Paste the Webhook URL from Siren here
***
## Filters
* **Time Filter**:\
Select from predefined ranges like **Last 7 days**, **28 days**, or **customize the date range** to focus on specific periods relevant to your analysis.
* **Version Filter**:\
Easily switch between **Live** and **Test** versions to view data specific to your current testing or production environment.
## Overview and Insights
* Get a comprehensive overview of your account's performance in the Insights section.
* Track essential metrics such as:
* Total Notifications Sent
* Workflows Processed
* Channel Performance
## Visualizations
* Channel Engagement: Visualize engagement levels across different channels, offering insights into audience interaction.
* Delivery Status: Monitor the overall delivery status of your notifications across various channels, ensuring effective message dissemination.
* Provider Performance: Evaluate the performance of your providers in terms of delivery efficiency, facilitating informed decision-making.
* Activity Trends: Track usage trends for channels or integrations over time, enabling you to identify patterns and optimize resource allocation.
* Top Events: Identify the most frequently triggered Notification Events, enabling you to prioritize and optimize messaging strategies accordingly.
With Siren's Dashboard, monitoring and optimizing your notification performance has never been more efficient. Dive in and unlock the full potential of your communication strategy with ease!
# Workspace Overview
Source: https://docs.trysiren.io/docs/Monitoring/Workspace Overview
**Workspaces** are isolated environments within Siren designed to keep disassociated communications contained and easier to manage.
By default, Siren provides three Workspaces:
* **Sandbox**
* **Staging**
* **Production**
## Key Characteristics of Workspaces
* Each workspace has its own:
* **Templates**
* **Vendor settings**
* **Workflows**
* **Organization settings** are common across all workspaces.
## Notification Configuration
## Adding Messages
## Preview Area
On the left side of the editor, you will find a preview area that shows how your push notification will appear on different platforms. You can toggle between Android, iOS, and Web views to see platform-specific previews.
## Basic Configuration
## Message Configuration
## Template Selection
Tags help categorize templates for easier filtering and management across your workspace.
Quickly duplicate templates within the same environment to minimize repetition and streamline configuration.[](https://docs.trysiren.io/Template/Duplicate%20Template#how-to-duplicate)
# Workflow Editor UI
Once you have created and saved a workflow, you will enter the **Workflow Editor**, a visual interface where you can design, test, and configure your workflow.
* **Editor Mode** lets you build and edit the workflow.
* **Test Mode** allows you to simulate how the workflow would run using mock data.
In **Advanced workflows only**, you will see a **Test Code** panel on the left. This lets you run the flow with sample values and observe how the logic behaves.
Click **Run flow** to test the execution path in real time.
***
### Input JSON Panel
Whether you are in Editor or Test mode, you will have access to the **Input JSON** panel.
The input JSON is divided into two keys:
* `data`: Custom data used inside nodes or for conditions
* `notify`: Recipient details mapped to various channels
In **Advanced workflows**, this JSON is editable. You can update values in real time to simulate dynamic content or branching conditions during testing.
Here is an example structure:
```json theme={null}
{
"data": {
"name": "John",
"event": "OTP"
},
"notify": {
"email": "user@example.com",
"sms": "+911234567890"
}
}
```
# Channel Node
Source: https://docs.trysiren.io/docs/Workflow/NodeConfiguration/ChannelNode
The **Channel Node** lets you send a notification through a specific channel (such as Email, SMS, WhatsApp, etc.) using a configured provider. This is different from the Template Node — here, you manually select the provider and specify recipient details instead of using a predefined template.
### Basic Workflow Configuration
In a Basic workflow, the configuration is straightforward:
* **Provider**: Select from a dropdown list of available providers for the chosen channel.
* **Wait for Delivery Status**: A checkbox to indicate whether the workflow should pause until a delivery status (e.g., delivered or failed) is returned.
This setup works well when you want to quickly trigger a notification using a static provider and recipient details.
### Advanced Workflow Configuration
In an Advanced workflow, this node offers more flexibility:
* **Static Mode** (default view):
* **Provider**: Same as in Basic — select a static provider from the dropdown.
* **Recipient Field**: Enter the value for the recipient (e.g., Email address, phone number) or use a variable via JSON path (e.g., `${workflow.input.recipient.email}`).
* **Wait for Delivery Status**: Same checkbox as in Basic.
* **Dynamic Mode** (enabled via toggle switch):
When toggled ON, the node supports fully dynamic provider routing:
* **Provider Integration name or JSON Path**: Input field to define the integration either directly or via a JSON path (e.g., `${workflow.input.provider_name}`).
* **Provider (dropdown)**: Still available as a fallback or default.
* **Recipient Field or JSON Path**: Define where to fetch recipient info dynamically — e.g., `${workflow.input.notify.sms}`.
* **Wait for Delivery Status**: Optional checkbox to enable delivery-based control logic.
# Chat Node [Beta]
Source: https://docs.trysiren.io/docs/Workflow/NodeConfiguration/ChatNode
### Configuration Options
When you add a Chat Node, you will see the following fields in parameters:
* **Chat Node ID**: A system-generated unique identifier for the node. This value is read-only and can be copied and saved for later use.
* **Select Channel**: Choose the chat platform you want to track — e.g., Slack, MS Teams, Email.
* **Select Provider**: From the dropdown, select a provider configured for the chosen channel.
* **Dynamic Provider**: A toggle switch that allows you to use a provider dynamically at runtime. When enabled, the provider will be resolved using a variable or JSON path.
* **Channel ID or JSON Path**: Enter the channel ID where the message should be sent. Alternatively, use a JSON path to dynamically fetch the channel ID from the input payload.
* **Select Maximum Chat Duration**: Define the duration for how long the chat session should stay open. Specify the value in days, hours, and minutes.
* **Provider Integration Name or JSON Path** *(only visible when Dynamic Provider is enabled)*: Input the provider integration name or a JSON path to dynamically resolve the provider during execution.
> ### Example
>
> Let’s say you want to send a Slack message and keep the conversation active for 2 hours and 15 minutes by tracking the response and navigating the workflow based on the response. Here’s how you might configure the Chat Node:
>
> * **Chat Node ID**: Auto-generated
> * **Select Channel**: `slack`
> * **Select Provider**: `slack-primary`
> * **Channel ID**: `#incident-response`
> * **Select Maximum Chat Duration**: `0 Days`, `2 Hours`, `15 Minutes`
> If you’re using a dynamic provider:
> * **Dynamic Provider**: Enabled
> * **Provider Integration Name or JSON Path**: \$`{workflow.input.data.provider_name}`
> * **Channel ID or JSON Path**: \$`{workflow.data.channel_id}`
>
> ```json theme={null}
> {
> "provider_name": "slack",
> "channelId": "ABCXX1234"
> }
> ```
# Control Nodes
Source: https://docs.trysiren.io/docs/Workflow/NodeConfiguration/ControlNode
Control nodes help your workflow make decisions and branch based on conditions or variable values. Siren currently supports two types of control nodes:
* **If Node** — used for binary conditions (true/false paths)
* **Switch Node** — used for multi-branch routing based on values
***
## If Node
The **If Node** allows you to define one or more conditions, and split the workflow based on whether the condition(s) evaluate to **true** or **false**.
### Basic Workflow Configuration
In a Basic workflow, you can configure only **one condition**.
Each condition has the following fields:
* **Value A** – This is the **input source**, typically a JSON path pointing to data pulled from your system, database, or even a prior node.
* **Type** – The expected data type for comparison, such as `STRING`, `NUMBER`, or `BOOLEAN`.
* **Comparison Operator** – How you want to compare the two values. Options include `EQUALS`, `NOT EQUALS`, `GREATER THAN`, etc.
* **Value B** – The **reference value** you are comparing against. This is usually the value entered by the user or a static condition.
If the condition evaluates to true, the workflow continues along the **true** path. Otherwise, it follows the **false** path.
### Advanced Workflow Configuration
In an Advanced workflow, the If Node becomes more powerful. You can:
* Add multiple conditions
* Combine them using **AND** / **OR** logic
* Use dynamic data from external APIs or workflow input using JSON paths
> #### Example
>
> Imagine you need to send notification to a user whose ID is verified and check their country if India use one provider, if USA use another provider. So use the if node in advanced workflow for this.
>
> * A user submits their **country**, and if their ID is **verified or not verified**.
> * Your backend fetches the corresponding details of the user from the database and passes it to Siren.
>
> You can configure the **If Node** like this:
>
> * **Value A**: `${workflow.input.data.country}` (value retrieved from your database)
> * **Type**: `STRING`
> * **Operator**: `EQUALS`
> * **Value B**: `India` (the Country the user entered)
>
> This checks if the submitted country matches the required one.
>
> The other branch can look like this, where Value A fetches from the database whether the person's ID is verified or not.
>
> * **Value A**: `${workflow.input.data.verification}`
> * **Type**: `STRING`
> * **Operator**: `EQUALS`
> * **Value B**: `verified`
>
> These conditions can then be combined using **AND** logic — so the workflow proceeds only if both checks pass.
***
## Switch Node
The **Switch Node** is used to split the workflow into **multiple paths** based on the value of a variable, similar to a `switch-case` logic in programming.
### Basic Workflow Configuration
In Basic mode, the switch has a **Name** field and allows defining up to **9 cases**, including a **default (fallback)** case.
* Each case is a **static value**.
* You can route each case to a different set of nodes.
* The **default** route will be used if no match is found.
### Advanced Workflow Configuration
In an Advanced workflow, you will see a **Switch Expression** field instead of a name.
* Enter a **JSON variable path** (e.g., `${workflow.input.data.}`) to evaluate dynamically.
* Add up to 9 cases to match the expression.
* Just like in Basic mode, one fallback case is always present by default.
> #### Example
>
> Suppose you want to notify users based on their preferred channel.
>
> * Use `${workflow.input.data.channel}` as your **Switch Expression**
> * Add cases like `email`, `sms`, and `push`
> * Connect each case to the respective channel’s template node
> * Let the fallback case handle any unknown or missing channel values
>
> This allows you to streamline multi-channel workflows in a clean, organized way.
***
# HTTP Node
Source: https://docs.trysiren.io/docs/Workflow/NodeConfiguration/HTTPNode
### Configuration Options
When you add an HTTP Node, you will see the following fields:
* **Reference Name**: A label used to reference this API’s response in later parts of the workflow.
* **Continue Workflow on API Failure**: If checked, the workflow continues even if the API call fails. Useful for optional or non-blocking requests.
* **Method**: Choose the type of HTTP request from the following options: `GET`, `POST`, `PUT`, `PATCH`, `DELETE`, `OPTIONS`, `HEAD`.
* **URL**: Enter the **API endpoint link** you want to call.
* **Body**: Required for methods like `POST`, `PUT`, or `PATCH`. You can insert variables using JSON path.
* **Content Type**: Specifies the format of the request body: `application/json`, `text/plain`, `text/html`.
* **Accept Type**: Defines what response format you expect: `application/json`, `text/plain`, `text/html`.
* **Timeouts**
* **Connection Timeout** – Time (in milliseconds) to wait for a connection to establish.
* **Read Timeout** – Time (in milliseconds) to wait for the response after the connection is open.
* **Headers**: Add custom headers to the request using key-value pairs.
> ### Example
>
> Let’s say you want to check if a user passed a fraud check before sending them a transaction alert.
> Here’s how you might configure the HTTP Node:
>
> * **Reference Name**: Reference name that is generated
> * **Method**: `POST`
> * **URL**: `https://api.example.com/verify`
> * **Body**:
>
> ```json theme={null}
> {
> "userId": "${workflow.data.user_id}",
> "phone": "${data.phone_number}"
> }
> ```
# Node Configuration
Source: https://docs.trysiren.io/docs/Workflow/NodeConfiguration/NodeConfiguration
Learn how to configure different types of nodes in Siren's visual workflow builder.
Earlier, we covered how to create a workflow and got familiar with the Workflow Editor. Now, let's take a closer look at how each **node** works.
Inside the editor, you build your workflow by connecting nodes — each representing a specific action, condition, or message step. To add a node, click the `+` icon below an existing one. Then click the node to open its configuration panel.
Each node allows you to define how that step behaves. You can:
* Set static values or attach message templates
* Add conditions, delays, or branching logic
* In **Advanced workflows**, configure nodes dynamically using **variables** with JSON paths
The sections below cover each node type in detail and explain the options available for configuration.
***
### Basic Workflow Configuration
In a Basic workflow:
* The **Parameter** section includes a **Template dropdown**.
* All available templates are listed.
* Templates that share the **same tag** as the workflow will appear **at the top** of the list for quicker access.
You simply select the desired template, and the message will be sent using that configuration.
***
### Advanced Workflow Configuration
In an Advanced workflow, the Template Node offers more flexibility:
* A **radio button** lets you choose between:
* **Static**: Works the same way as Basic — choose a template from the dropdown list.
* **Dynamic**: Use variables to dynamically select the template and its version during runtime.
Under **Dynamic**, you’ll see the following fields:
* **Template Variable**: Input field where you provide the JSON path to fetch the template name at runtime (e.g., `${workflow.input.data.template_name}`).
* **Template Version**: Optional field to specify a particular version of the template if needed.
* **Variable Object Path**: Defines the path to the variables object (e.g., `{{data.vars}}`) that will be substituted into the template during execution.
This makes it possible to personalize which template gets triggered — and what values are passed — based on real-time inputs.
# Wait Node
Source: https://docs.trysiren.io/docs/Workflow/NodeConfiguration/WaitNode
The **Wait Node** lets you pause the workflow before proceeding to the next step. This is useful when you want to introduce a delay or wait until a specific date and time before sending a message or continuing the flow.
When you click on the Wait Node, a configuration panel appears with a **Parameters** tab. Here, you can choose how the wait should be defined:
### Configuration Options
* **Duration:** Set a fixed delay using:
* **Days**
* **Hours**
* **Minutes**
* **Seconds**
This option is ideal for introducing consistent gaps between workflow steps.
* **Until:** Define a specific **date and time** when the workflow should resume.
* Select a **Time Zone** to align the timing with the recipient’s or system’s locale.
### Advanced Workflow Configuration
In **Advanced workflows**, an extra field appears below the static options:
* **Wait Variable**: A field to enter a dynamic wait value using a JSON path.
* Example: `${workflow.input.data.time}`
This allows the wait duration to be determined at runtime, based on input data.
### Schedule Configuration Options
On the schedule creation screen, you’ll find the following input fields:
* **Workflow**: Select the workflow you want to schedule.
* **Time Zone**: Choose the time zone in which the schedule should run.
* **Starts**: Pick a date for the schedule to begin (`YYYY-MM-DD`).
* **Runs**: Choose how often the workflow should run:
* **Once** – Specify a time (`HH:mm` format).
* **Daily** – Select a time, and optionally an end date.
* **Weekly** – Pick specific weekdays and a time.
* **Monthly** – Choose:
* First day of the month
* Last day of the month
* Custom day of the month
* **Ends**: (only for recurring schedules)
* **Never** – The schedule runs indefinitely.
* **On** – Specify a date to stop the schedule.
### JSON Body
Users have the option to input a **JSON body** for the workflow trigger.
This JSON allows you to:
* Pass dynamic values to the workflow
* Provide user-specific data under the `data` object
* Specify recipient details under the `notify` object
Example:
```json theme={null}
{
"data": {
"name": "Ravi",
"action": "login"
},
"notify": {
"email": "ravi@example.com",
"sms": "+911234567890"
}
}
```
## Managing the Schedules
Once you have configured everything and click **Update**, the Schedule will be active
After scheduling:
* A Pause Schedule button will appear in the bottom right.
* You can use this to temporarily pause the scheduled workflow without deleting it.
* To restart it, click Resume, and the schedule will continue from its configured timing.
* You can view all existing schedules and their current status in the **Schedule List**. To modify a schedule, simply click the Edit button next to it in the list.