docs
EnglishChatigram website ↗Open Chatigram
Recipes

Count daily operations records

Use a scheduled database aggregate to prepare a count for a later dashboard or notification step.

Count daily operations records Expand a node to see its configuration

Swipe sideways to explore the workflow branches.

  • TRIGGERCron

    Example configuration

    {
      "cronExpression": "0 0 9 * * ?",
      "timezone": "UTC",
      "mode": "advanced"
    }
      • countRecordsSummarize Database Rows

        Example configuration

        {
          "databaseId": null,
          "tableId": null,
          "columns": [],
          "aggregation": "COUNT",
          "columnKey": null,
          "combinator": "AND",
          "filters": []
        }
          • operationSucceededCheck condition

            Example configuration

            {
              "condition": {
                "$tag": "StringComparison",
                "operator": "IS_EMPTY",
                "variable": "countRecords.error",
                "rightOperand": {
                  "$tag": "Constant",
                  "value": ""
                },
                "ignoreCase": false,
                "valueType": "TEXT"
              }
            }
            • Yes
              • totalSet Variable

                Example configuration

                {
                  "variableValue": [
                    {
                      "$tag": "Variable",
                      "name": "countRecords.result"
                    }
                  ]
                }
            • No
              • countFailureSet Variable

                Example configuration

                {
                  "variableValue": [
                    {
                      "$tag": "Constant",
                      "value": "The count could not be calculated."
                    }
                  ]
                }

This diagram follows the downloadable workflow. Edit and run it in Chatigram.Swipe the diagram to explore its branches.

Plan availability #

Feature Free Starter Pro Enterprise
Databases Not included 1 2 Unlimited
Active workflows 3 10 45 Unlimited

Allowances follow the published Chatigram pricing page. Your organization’s Billing & Plans screen confirms its subscription and current usage. Plans can change. Plan information reviewed 2026-11-10.

The business outcome #

Use a scheduled database aggregate to prepare a count for a later dashboard or notification step.

This is an importable starter using Chatigram’s current native nodes. It needs destination-specific setup; it does not imply a dedicated connector for every CRM or ERP brand. Check your software’s API documentation and permissions.

Before you begin #

Select the database/table, add the filters that define your reporting period, and review the schedule. Choose any downstream delivery step separately.

The reserved example.invalid endpoint is deliberately non-working. No real customer data, account credentials, or private resource identifiers are embedded. Keep the workflow disabled until setup is complete.

Configure the workflow #

  1. Open countRecords and select the table you intend to summarize.
  2. Keep COUNT to count matching rows, or select a supported numeric aggregation and column if you need a sum or average instead.
  3. Configure the filters for the reporting period. An empty filter list counts all matching table rows, not automatically today’s records.
  4. Use total in a reviewed report or message step. The supplied graph prepares the value and handles failure without sending anything.

Test the outcomes #

  • Compare the result with a small known set of test records.
  • Check the distinction between zero matching records and an aggregation error.
  • Verify period boundaries and timezone choices.

Open Workflow Activity after the test. Import validation checks the definition; it does not prove a remote API accepted the business operation. Check the destination before repeating a send or write.

Make it your own #

Put reusable public settings in Properties, configure credentials through the protected connection options, and keep explicit error paths. Explore App Connections for existing provider-specific actions you can substitute through the editor.

Use the copy controls below for the complete workflow or its first node. The diagram and downloads come from the same definition. Use Share recipe to share the guide’s public address.

READY TO CUSTOMIZE

Try this in Chatigram

Setup required. Select the database/table, add the filters that define your reporting period, and review the schedule. Choose any downstream delivery step separately. Placeholder endpoints use example.invalid and cannot call a real business service. Keep the workflow disabled until you finish the setup and review its effects.

Download JSON
View workflow JSON
Workflow JSON
{
  "format": "chatigram-workflow",
  "version": 1,
  "metadata": {
    "sourceName": "Count daily operations records",
    "importHelp": {
      "note": "Setup required. Select the database/table, add the filters that define your reporting period, and review the schedule. Choose any downstream delivery step separately. Placeholder endpoints use example.invalid and cannot call a real business service. Keep the workflow disabled until you finish the setup and review its effects."
    }
  },
  "workflow": {
    "instruction": null,
    "multiLanguageSupport": null,
    "properties": [],
    "trigger": {
      "$tag": "Trigger",
      "type": "CRON",
      "data": {
        "cronExpression": "0 0 9 * * ?",
        "timezone": "UTC",
        "mode": "advanced"
      }
    },
    "nodes": [
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000001",
        "name": "countRecords",
        "parentId": null,
        "branchIndex": 0,
        "type": "DATABASE_AGGREGATE_ROWS",
        "data": {
          "databaseId": null,
          "tableId": null,
          "columns": [],
          "aggregation": "COUNT",
          "columnKey": null,
          "combinator": "AND",
          "filters": []
        }
      },
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000004",
        "name": "operationSucceeded",
        "parentId": "d0c00000-0000-4000-8000-000000000001",
        "branchIndex": 0,
        "type": "IF_STATEMENT",
        "data": {
          "condition": {
            "$tag": "StringComparison",
            "operator": "IS_EMPTY",
            "variable": "countRecords.error",
            "rightOperand": {
              "$tag": "Constant",
              "value": ""
            },
            "ignoreCase": false,
            "valueType": "TEXT"
          }
        }
      },
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000002",
        "name": "total",
        "parentId": "d0c00000-0000-4000-8000-000000000004",
        "branchIndex": 0,
        "type": "SET_VARIABLE",
        "data": {
          "variableValue": [
            {
              "$tag": "Variable",
              "name": "countRecords.result"
            }
          ]
        }
      },
      {
        "$tag": "Node",
        "id": "d0c00000-0000-4000-8000-000000000003",
        "name": "countFailure",
        "parentId": "d0c00000-0000-4000-8000-000000000004",
        "branchIndex": 1,
        "type": "SET_VARIABLE",
        "data": {
          "variableValue": [
            {
              "$tag": "Constant",
              "value": "The count could not be calculated."
            }
          ]
        }
      }
    ],
    "gotos": []
  }
}
Keep building.Need help with this? Explore troubleshooting ↗

Find an answer. Try “welcome workflow”, “database”, or “Telegram”.