πŸͺWebhooks

Setup powerful event-driven workflows in seconds.

Helius Webhooks enable seamless monitoring of Solana on-chain events, such as sales, listings, swaps, and more. We offer a user-friendly interface, programmatic API, and SDK access for easily creating and managing webhooks.

For a detailed list of supported events, please refer to our documentation.

Webhook events are charged at 1 credit. Editing, adding, or deleting a webhook via the API will cost 100 credits/request.

Types of Webhooks

We currently offer several types of webhooks tailored to different needs:

  • Enhanced Transaction Webhooks: Provide human-readable, parsed data for specific transaction types (e.g., NFT sales) related to the addresses you monitor. This is ideal if you want filtered, actionable insights.

  • Raw Transaction Webhooks: This option delivers raw transaction data for all transactions involving the addresses you monitor. It does not allow filtering by transaction type.

  • Discord Webhooks: Stream updates for specific transaction types directly to a designated Discord channel as formatted messages. To use this option, you must submit your Discord Webhook URL.

Raw Transaction Webhooks offer lower latency since they do not involve parsing event types.

Event Payload Example

Enhanced
[
  {
    "accountData": [
      {
        "account": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "nativeBalanceChange": -72938049280,
        "tokenBalanceChanges": []
      },
      {
        "account": "NTYeYJ1wr4bpM5xo6zx5En44SvJFAd35zTxxNoERYqd",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "AAaTGaA3uVqikfVEwoSG7EwkCb4bBDsMEyueiVUS5CaU",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "autMW8SgBkVYeBgqYiTuJZnkvDZMVU2MHJh9Jh7CSQ2",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "D8TxfGwdu9MiNMoJmUoC9wQfNfNT7Lnm6DzifQHRTy6B",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "5DxD5ViWjvRZEkxQEaJHZw2sBsso6xoXx3wGFNKgXUzE",
        "nativeBalanceChange": 71860273440,
        "tokenBalanceChanges": []
      },
      {
        "account": "25DTUAd1roBFoUQaxJQByL6Qy2cKQCBp4bK9sgfy9UiM",
        "nativeBalanceChange": -2039280,
        "tokenBalanceChanges": [
          {
            "mint": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
            "rawTokenAmount": {
              "decimals": 0,
              "tokenAmount": "-1"
            },
            "tokenAccount": "25DTUAd1roBFoUQaxJQByL6Qy2cKQCBp4bK9sgfy9UiM",
            "userAccount": "1BWutmTvYPwDtmw9abTkS4Ssr8no61spGAvW1X6NDix"
          }
        ]
      },
      {
        "account": "DTYuh7gAGGZg2okM7hdFfU1yMY9LUemCiPyD5Z5GCs6Z",
        "nativeBalanceChange": 2039280,
        "tokenBalanceChanges": [
          {
            "mint": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
            "rawTokenAmount": {
              "decimals": 0,
              "tokenAmount": "1"
            },
            "tokenAccount": "DTYuh7gAGGZg2okM7hdFfU1yMY9LUemCiPyD5Z5GCs6Z",
            "userAccount": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX"
          }
        ]
      },
      {
        "account": "rFqFJ9g7TGBD8Ed7TPDnvGKZ5pWLPDyxLcvcH2eRCtt",
        "nativeBalanceChange": 1080000000,
        "tokenBalanceChanges": []
      },
      {
        "account": "CgXS5xC3qAGSg9txD9bS7BUgugZwshivGXpCJcGmdwrd",
        "nativeBalanceChange": -2234160,
        "tokenBalanceChanges": []
      },
      {
        "account": "M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "E8cU1WiRWjanGxmn96ewBgk9vPTcL6AEZ1t6F6fkgUWe",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "11111111111111111111111111111111",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "AYZsWahcrSnkwqbA1ji7wEzgAnGjLNJhVUMDPfACECZf",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "SysvarRent111111111111111111111111111111111",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      },
      {
        "account": "1BWutmTvYPwDtmw9abTkS4Ssr8no61spGAvW1X6NDix",
        "nativeBalanceChange": 0,
        "tokenBalanceChanges": []
      }
    ],
    "description": "5DxD5ViWjvRZEkxQEaJHZw2sBsso6xoXx3wGFNKgXUzE sold Fox #7637 to CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX for 72 SOL on MAGIC_EDEN.",
    "events": {
      "nft": {
        "amount": 72000000000,
        "buyer": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "description": "5DxD5ViWjvRZEkxQEaJHZw2sBsso6xoXx3wGFNKgXUzE sold Fox #7637 to CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX for 72 SOL on MAGIC_EDEN.",
        "fee": 10000,
        "feePayer": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "nfts": [
          {
            "mint": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
            "tokenStandard": "NonFungible"
          }
        ],
        "saleType": "INSTANT_SALE",
        "seller": "5DxD5ViWjvRZEkxQEaJHZw2sBsso6xoXx3wGFNKgXUzE",
        "signature": "5nNtjezQMYBHvgSQmoRmJPiXGsPAWmJPoGSa64xanqrauogiVzFyGQhKeFataHGXq51jR2hjbzNTkPUpP787HAmL",
        "slot": 171942732,
        "source": "MAGIC_EDEN",
        "staker": "",
        "timestamp": 1673445241,
        "type": "NFT_SALE"
      }
    },
    "fee": 10000,
    "feePayer": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
    "nativeTransfers": [
      {
        "amount": 72936000000,
        "fromUserAccount": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "toUserAccount": "AAaTGaA3uVqikfVEwoSG7EwkCb4bBDsMEyueiVUS5CaU"
      },
      {
        "amount": 2011440,
        "fromUserAccount": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "toUserAccount": "D8TxfGwdu9MiNMoJmUoC9wQfNfNT7Lnm6DzifQHRTy6B"
      },
      {
        "amount": 71856000000,
        "fromUserAccount": "AAaTGaA3uVqikfVEwoSG7EwkCb4bBDsMEyueiVUS5CaU",
        "toUserAccount": "5DxD5ViWjvRZEkxQEaJHZw2sBsso6xoXx3wGFNKgXUzE"
      },
      {
        "amount": 1080000000,
        "fromUserAccount": "AAaTGaA3uVqikfVEwoSG7EwkCb4bBDsMEyueiVUS5CaU",
        "toUserAccount": "rFqFJ9g7TGBD8Ed7TPDnvGKZ5pWLPDyxLcvcH2eRCtt"
      },
      {
        "amount": 2039280,
        "fromUserAccount": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "toUserAccount": "DTYuh7gAGGZg2okM7hdFfU1yMY9LUemCiPyD5Z5GCs6Z"
      }
    ],
    "signature": "5nNtjezQMYBHvgSQmoRmJPiXGsPAWmJPoGSa64xanqrauogiVzFyGQhKeFataHGXq51jR2hjbzNTkPUpP787HAmL",
    "slot": 171942732,
    "source": "MAGIC_EDEN",
    "timestamp": 1673445241,
    "tokenTransfers": [
      {
        "fromTokenAccount": "25DTUAd1roBFoUQaxJQByL6Qy2cKQCBp4bK9sgfy9UiM",
        "fromUserAccount": "1BWutmTvYPwDtmw9abTkS4Ssr8no61spGAvW1X6NDix",
        "mint": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
        "toTokenAccount": "DTYuh7gAGGZg2okM7hdFfU1yMY9LUemCiPyD5Z5GCs6Z",
        "toUserAccount": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
        "tokenAmount": 1,
        "tokenStandard": "NonFungible"
      }
    ],
    "type": "NFT_SALE"
  }
]

Raw
[
  {
    "blockTime": 1673445241,
    "indexWithinBlock": 2557,
    "meta": {
      "err": null,
      "fee": 10000,
      "innerInstructions": [
        {
          "index": 0,
          "instructions": [
            {
              "accounts": [
                0,
                2
              ],
              "data": "3Bxs3zs3x6pg4XWo",
              "programIdIndex": 12
            }
          ]
        },
        {
          "index": 1,
          "instructions": [
            {
              "accounts": [
                0,
                4
              ],
              "data": "11112nba6qLH4BKL4MW8GP9ayKApZeYn3LQKJdPdeSXbRW1n6UPeJ8y77ps6sAVwAjdxzh",
              "programIdIndex": 12
            }
          ]
        },
        {
          "index": 2,
          "instructions": [
            {
              "accounts": [
                2,
                5
              ],
              "data": "3Bxs3zx147oWJQej",
              "programIdIndex": 12
            },
            {
              "accounts": [
                2,
                8
              ],
              "data": "3Bxs3zwT1TGLhiT9",
              "programIdIndex": 12
            },
            {
              "accounts": [
                0,
                7,
                0,
                13,
                12,
                15
              ],
              "data": "1",
              "programIdIndex": 17
            },
            {
              "accounts": [
                13
              ],
              "data": "84eT",
              "programIdIndex": 15
            },
            {
              "accounts": [
                0,
                7
              ],
              "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL",
              "programIdIndex": 12
            },
            {
              "accounts": [
                7
              ],
              "data": "P",
              "programIdIndex": 15
            },
            {
              "accounts": [
                7,
                13
              ],
              "data": "6YTZgAHgNKVRJ2mAHQUYC1DgXF6dPCgbSWA5P4gZoSfGV",
              "programIdIndex": 15
            },
            {
              "accounts": [
                6,
                7,
                18
              ],
              "data": "3DdGGhkhJbjm",
              "programIdIndex": 15
            },
            {
              "accounts": [
                6,
                5,
                18
              ],
              "data": "A",
              "programIdIndex": 15
            }
          ]
        }
      ],
      "loadedAddresses": {
        "readonly": [],
        "writable": []
      },
      "logMessages": [
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K invoke [1]",
        "Program log: Instruction: Deposit",
        "Program 11111111111111111111111111111111 invoke [2]",
        "Program 11111111111111111111111111111111 success",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K consumed 10148 of 600000 compute units",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K success",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K invoke [1]",
        "Program log: Instruction: Buy",
        "Program 11111111111111111111111111111111 invoke [2]",
        "Program 11111111111111111111111111111111 success",
        "Program log: {\"price\":72000000000,\"buyer_expiry\":0}",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K consumed 30501 of 589852 compute units",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K success",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K invoke [1]",
        "Program log: Instruction: ExecuteSaleV2",
        "Program 11111111111111111111111111111111 invoke [2]",
        "Program 11111111111111111111111111111111 success",
        "Program 11111111111111111111111111111111 invoke [2]",
        "Program 11111111111111111111111111111111 success",
        "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]",
        "Program log: Create",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]",
        "Program log: Instruction: GetAccountDataSize",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 497733 compute units",
        "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success",
        "Program 11111111111111111111111111111111 invoke [3]",
        "Program 11111111111111111111111111111111 success",
        "Program log: Initialize the associated token account",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]",
        "Program log: Instruction: InitializeImmutableOwner",
        "Program log: Please upgrade to SPL Token 2022 for immutable owner support",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 491243 compute units",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]",
        "Program log: Instruction: InitializeAccount3",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 487361 compute units",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success",
        "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 21793 of 504630 compute units",
        "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]",
        "Program log: Instruction: Transfer",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 475696 compute units",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]",
        "Program log: Instruction: CloseAccount",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3033 of 456654 compute units",
        "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success",
        "Program log: {\"price\":72000000000,\"seller_expiry\":-1,\"buyer_expiry\":0}",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K consumed 109266 of 559351 compute units",
        "Program M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K success"
      ],
      "postBalances": [
        371980779080,
        0,
        0,
        100129388687,
        0,
        81872924494,
        0,
        2039280,
        993583055919,
        0,
        1141440,
        3654000,
        1,
        1461600,
        5616720,
        934087680,
        1009200,
        731913600,
        457953014766
      ],
      "postTokenBalances": [
        {
          "accountIndex": 7,
          "mint": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
          "owner": "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
          "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
          "uiTokenAmount": {
            "amount": "1",
            "decimals": 0,
            "uiAmount": 1,
            "uiAmountString": "1"
          }
        }
      ],
      "preBalances": [
        444918828360,
        0,
        0,
        100129388687,
        0,
        10012651054,
        2039280,
        0,
        992503055919,
        2234160,
        1141440,
        3654000,
        1,
        1461600,
        5616720,
        934087680,
        1009200,
        731913600,
        457953014766
      ],
      "preTokenBalances": [
        {
          "accountIndex": 6,
          "mint": "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
          "owner": "1BWutmTvYPwDtmw9abTkS4Ssr8no61spGAvW1X6NDix",
          "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
          "uiTokenAmount": {
            "amount": "1",
            "decimals": 0,
            "uiAmount": 1,
            "uiAmountString": "1"
          }
        }
      ],
      "rewards": []
    },
    "slot": 171942732,
    "transaction": {
      "message": {
        "accountKeys": [
          "CKs1E69a2e9TmH4mKKLrXFF8kD3ZnwKjoEuXa6sz9WqX",
          "NTYeYJ1wr4bpM5xo6zx5En44SvJFAd35zTxxNoERYqd",
          "AAaTGaA3uVqikfVEwoSG7EwkCb4bBDsMEyueiVUS5CaU",
          "autMW8SgBkVYeBgqYiTuJZnkvDZMVU2MHJh9Jh7CSQ2",
          "D8TxfGwdu9MiNMoJmUoC9wQfNfNT7Lnm6DzifQHRTy6B",
          "5DxD5ViWjvRZEkxQEaJHZw2sBsso6xoXx3wGFNKgXUzE",
          "25DTUAd1roBFoUQaxJQByL6Qy2cKQCBp4bK9sgfy9UiM",
          "DTYuh7gAGGZg2okM7hdFfU1yMY9LUemCiPyD5Z5GCs6Z",
          "rFqFJ9g7TGBD8Ed7TPDnvGKZ5pWLPDyxLcvcH2eRCtt",
          "CgXS5xC3qAGSg9txD9bS7BUgugZwshivGXpCJcGmdwrd",
          "M2mx93ekt1fmXSVkTrUL9xVFHkmME8HTUi5Cyc5aF7K",
          "E8cU1WiRWjanGxmn96ewBgk9vPTcL6AEZ1t6F6fkgUWe",
          "11111111111111111111111111111111",
          "FdsNQE5EeCe57tbEYCRV1JwW5dzNCof7MUTaGWhmzYqu",
          "AYZsWahcrSnkwqbA1ji7wEzgAnGjLNJhVUMDPfACECZf",
          "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
          "SysvarRent111111111111111111111111111111111",
          "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",
          "1BWutmTvYPwDtmw9abTkS4Ssr8no61spGAvW1X6NDix"
        ],
        "addressTableLookups": null,
        "header": {
          "numReadonlySignedAccounts": 1,
          "numReadonlyUnsignedAccounts": 9,
          "numRequiredSignatures": 2
        },
        "instructions": [
          {
            "accounts": [
              0,
              1,
              2,
              3,
              11,
              12
            ],
            "data": "3GyWrkssW12wSfxjTynBnbif",
            "programIdIndex": 10
          },
          {
            "accounts": [
              0,
              1,
              13,
              14,
              2,
              3,
              11,
              4,
              3,
              15,
              12,
              16
            ],
            "data": "3Jmjmsq2jyrch5iz612vBLZCRB498owPe7qezQVetRZhiMu",
            "programIdIndex": 10
          },
          {
            "accounts": [
              0,
              5,
              1,
              6,
              13,
              14,
              2,
              7,
              3,
              11,
              8,
              4,
              3,
              9,
              3,
              15,
              12,
              17,
              18,
              16
            ],
            "data": "B2rqPwAgvj3t35y6HpdumfhdhsZMLNFLmXMC9Uz2HX4nNAwirTk3o98vTazFB1y",
            "programIdIndex": 10
          }
        ],
        "recentBlockhash": "3NRncb7FJuDruQjMDxnHvJBQkvkHa7KSUBqBsxG21roZ"
      },
      "signatures": [
        "5nNtjezQMYBHvgSQmoRmJPiXGsPAWmJPoGSa64xanqrauogiVzFyGQhKeFataHGXq51jR2hjbzNTkPUpP787HAmL",
        "4dWBkbLHGvU2jw9Sjj6YETtKfaVKAAN1M8aWzXRNC4aHBckUzM73n3FddNbWTtfUvkU2vFRQ7bKHMwKZQ5dGy1iH"
      ]
    }
  }
]

Quick Start

We provide three convenient methods to create, edit, and manage webhooks on Helius.

Via Helius Dashboard

The Helius UI is perfect if you prefer a no-code solution with additional features like viewing logs and sending test webhook events. You can access it directly through our Dashboard. You can add up to 25 addresses via the Dashboard. To monitor more than 25 addresses, you can use our API or SDK.

Via Helius API

If you're not working with Typescript or Javascript, you'll need to interact with our webhooks through REST API:

Via Helius SDK

The easiestβ€”and most enjoyableβ€”way to interact with Helius webhooks is through our official SDKs. We currently offer SDKs for TypeScript and Rust.

The SDKs provide powerful abstractions that enhance the functionality of webhooks, including the ability to create collection webhooks that effortlessly track all NFTs within a specific NFT collection!

Example Uses

  • Bots

    • When an NFT is listed on marketplace X, trigger an "NFT buy" action.

    • When a margin position is unhealthy, trigger a "liquidation" action.

  • Monitoring & Alerts

    • When a program emits a certain log, it triggers PagerDuty integration.

    • When a token account balance changes by more than X%, use Dialect to communicate a warning action.

  • Event-driven Indexing

    • When any transaction occurs for a given program, send it directly to your database or backend.

  • Notifications & Activity Tracking

    • When transferring from wallet X to wallet Y β€” send a Slack notification or email.

  • Analytics & Logs

    • When event X happens, send it to an ETL pipeline or persist it directly on Helius to view trends over time.

  • Workflow Automation

    • When event X happens, trigger any set of actions.

Last updated