Count daily operations records
Use a scheduled database aggregate to prepare a count for a later dashboard or notification step.
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." } ] }
- Yes
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 #
- Open countRecords and select the table you intend to summarize.
- Keep COUNT to count matching rows, or select a supported numeric aggregation and column if you need a sum or average instead.
- Configure the filters for the reporting period. An empty filter list counts all matching table rows, not automatically today’s records.
- 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.
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.
View 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": []
}
}