Back to Catalog

Backup Clockify to Github based on monthly reports

MarioMario
663 views
2/3/2026
Official Page

Purpose

This workflow creates a versioned backup of an entire Clockify workspace split up into monthly reports.

How it works

  • This backup routine runs daily by default
  • The Clockify reports API endpoint is used to get all data from the workspace based on time entries
  • A report file is being retrieved for every month starting with the current one, going back 3 month in total by default
  • If changes happened during a day to any report, it is being updated in Github

Prerequisites

  • Create a private Github repository
  • Create credentials for both Clockify and Github (make sure to give permissions for read and write operations)

Setup

  • Clone the workflow and select the belonging credentials
  • Follow the instructions given in the yellow sticky notes
  • Activate the workflow

n8n Clockify Monthly Reports to GitHub Backup Workflow

This n8n workflow automates the process of backing up monthly Clockify reports to a GitHub repository. It fetches time entries for the previous month, processes them, and then creates or updates a JSON file in a specified GitHub repository.

What it does

This workflow performs the following steps:

  1. Schedules Execution: Runs automatically on the first day of every month.
  2. Fetches Clockify Time Entries: Retrieves all time entries from Clockify for the previous month.
  3. Processes Time Entries:
    • Initializes an empty array to store processed time entries.
    • Iterates through each raw time entry from Clockify.
    • Extracts relevant fields (like billable, description, duration, projectId, taskId, userId, workspaceId, start, end, timeInterval).
    • Adds a month field (e.g., "YYYY-MM") to each entry.
    • Adds a reportDate field (e.g., "YYYY-MM-DD") to each entry.
  4. Checks for Existing GitHub File: Attempts to retrieve the content of a specific JSON file (e.g., clockify-monthly-reports/YYYY-MM.json) from a GitHub repository.
  5. Compares Datasets:
    • If the file exists, it extracts the JSON content from the file.
    • Compares the newly fetched Clockify data with the existing data in the GitHub file.
    • Filters out any time entries that are already present in the GitHub file.
  6. Updates GitHub File (if new data exists):
    • If there are new time entries to add, it merges the new data with the existing data.
    • Creates or updates the JSON file in the GitHub repository with the combined data.
    • Commits the changes with a descriptive message.
  7. Handles Errors: If any step fails (e.g., GitHub file not found, API error), the workflow will stop and report an error.

Prerequisites/Requirements

  • n8n Instance: A running instance of n8n.
  • Clockify Account: With an API key configured as an n8n credential.
  • GitHub Account: With a Personal Access Token (PAT) configured as an n8n credential, granting repository write access.
  • GitHub Repository: A designated GitHub repository where the Clockify reports will be stored. You will need to specify the owner, repo, and branch in the GitHub node.

Setup/Usage

  1. Import the Workflow:
    • Download the workflow JSON.
    • In your n8n instance, go to "Workflows" and click "New".
    • Click the "Import from JSON" button and paste the workflow JSON.
  2. Configure Credentials:
    • Clockify: Configure your Clockify API credential.
    • GitHub: Configure your GitHub Personal Access Token credential.
  3. Configure Nodes:
    • Clockify node (ID: 371): Ensure the correct Clockify credential is selected.
    • GitHub node (ID: 16):
      • Select your GitHub credential.
      • Update the Owner, Repository, and Branch fields to match your GitHub repository.
      • The File Name expression dynamically generates the file path (e.g., clockify-monthly-reports/{{ $json.month }}.json).
    • HTTP Request node (ID: 19): This node is used to fetch the raw content of the GitHub file. Ensure the URL and headers are correctly configured to use your GitHub PAT for authentication.
  4. Activate the Workflow: Once configured, activate the workflow to enable its scheduled execution. It will run automatically on the first day of each month.

Related Templates

Automated YouTube video uploads with 12h interval scheduling in JST

This workflow automates a batch upload of multiple videos to YouTube, spacing each upload 12 hours apart in Japan Standard Time (UTC+9) and automatically adding them to a playlist. ⚙️ Workflow Logic Manual Trigger — Starts the workflow manually. List Video Files — Uses a shell command to find all .mp4 files under the specified directory (/opt/downloads/单词卡/A1-A2). Sort and Generate Items — Sorts videos by day number (dayXX) extracted from filenames and assigns a sequential order value. Calculate Publish Schedule (+12h Interval) — Computes the next rounded JST hour plus a configurable buffer (default 30 min). Staggers each video’s scheduled time by order × 12 hours. Converts JST back to UTC for YouTube’s publishAt field. Split in Batches (1 per video) — Iterates over each video item. Read Video File — Loads the corresponding video from disk. Upload to YouTube (Scheduled) — Uploads the video privately with the computed publishAtUtc. Add to Playlist — Adds the newly uploaded video to the target playlist. 🕒 Highlights Timezone-safe: Pure UTC ↔ JST conversion avoids double-offset errors. Sequential scheduling: Ensures each upload is 12 hours apart to prevent clustering. Customizable: Change SPANHOURS, BUFFERMIN, or directory paths easily. Retry-ready: Each upload and playlist step has retry logic to handle transient errors. 💡 Typical Use Cases Multi-part educational video series (e.g., A1–A2 English learning). Regular content release cadence without manual scheduling. Automated YouTube publishing pipelines for pre-produced content. --- Author: Zane Category: Automation / YouTube / Scheduler Timezone: JST (UTC+09:00)

ZaneBy Zane
226

Monitor bank transactions with multi-channel alerts for accounting teams

Enhance financial oversight with this automated n8n workflow. Triggered every 5 minutes, it fetches real-time bank transactions via an API, enriches and transforms the data, and applies smart logic to detect critical, high, and medium priority alerts based on error conditions, amounts, or risk scores. It sends multi-channel notifications via email and Slack, logs all data to Google Sheets, and generates summary statistics for comprehensive tracking. 💰🚨 Key Features Real-time monitoring every 5 minutes for instant alerts. Smart prioritization (Critical, High, Medium) based on risk and errors. Multi-channel notifications via email and Slack. Detailed logging and summary reports in Google Sheets. How It Works Schedule Trigger: Runs every 5 minutes. Fetch Transactions: HTTP request retrieves real-time transaction data. API Error?: If condition for error logic is met, sends error alert. Enrich & Transform Data: Advanced risk calculation enhances data. Critical Alert?: If condition (50% or risk > 8) is met, raises alert. High Priority?: If condition (5% or risk > 7) is met, raises alert. Medium Priority?: If condition is met, raises alert. Log Priority to Sheet: Google Sheets appends critical, high, or medium priority data. Send Critical Email: HTML email to execute sheets append. Send High Priority Email: Email to finance team. Send High Priority Slack: Slack notification to finance team. Send Medium Priority Email: Email to finance team. Merge All Alerts: Combines all alerts for comprehensive tracking. Generate Summary Stats: Code block for analytics. Log Summary to Sheet: Summary statistics storage. Setup Instructions Import the workflow into n8n and configure the bank API credentials in "Fetch Transactions." Set up Google Sheets OAuth2 and replace the sheet ID for logging nodes. Configure Gmail API Key and Slack Bot Token for alerts. Test the workflow with sample transaction data exceeding risk or amount thresholds. Adjust priority conditions (e.g., 50%, 5%, risk > 8) based on your risk policy. Prerequisites Bank API access with real-time transaction data (e.g., https://api.bank.com) Google Sheets OAuth2 credentials Gmail API Key for email alerts Slack Bot Token (with chat:write permissions) Structured transaction data format Google Sheet Structure: Create a sheet with columns: Transaction ID Amount Date Risk Score Priority (Critical/High/Medium) Alert Sent Summary Stats Updated At Modification Options Adjust the "Schedule Trigger" interval (e.g., every 10 minutes). Modify "Critical Alert?" and "High Priority?" conditions for custom thresholds. Customize email and Slack templates with branded messaging. Integrate with fraud detection tools for enhanced risk analysis. Enhance "Generate Summary Stats" with additional metrics (e.g., average risk). Discover more workflows – Get in touch with us

Oneclick AI SquadBy Oneclick AI Squad
333

Automate event RSVPs with email validation & badge generation using VerifiEmail & HTMLCssToImage

Validated RSVP Confirmation with Automated Badge Generation Overview: This comprehensive workflow automates the entire event RSVP process from form submission to attendee confirmation, including real-time email validation and personalized digital badge generation. ✨ KEY FEATURES: • Real-time Email Validation - Verify attendee emails using VerifiEmail API to prevent fake registrations • Automated Badge Generation - Create beautiful, personalized event badges with attendee details • Smart Email Routing - Send confirmation emails with badges for valid emails, rejection notices for invalid ones • Comprehensive Logging - Track all RSVPs (both valid and invalid) in Google Sheets for analytics • Dual Path Logic - Handle valid and invalid submissions differently with conditional branching • Anti-Fraud Protection - Detect disposable emails and invalid domains automatically 🔧 WORKFLOW COMPONENTS: Webhook Trigger - Receives RSVP submissions Email Validation - Verifies email authenticity using VerifiEmail API Conditional Logic - Separates valid from invalid submissions Badge Creator - Generates HTML-based personalized event badges Image Converter - Converts HTML badges to shareable PNG images using HTMLCssToImage Email Sender - Delivers confirmation with badge or rejection notice via Gmail Data Logger - Records all attempts in Google Sheets for tracking and analytics 🎯 PERFECT FOR: • Conference organizers managing hundreds of RSVPs • Corporate event planners requiring verified attendee lists • Webinar hosts preventing fake registrations • Workshop coordinators issuing digital badges • Community event managers tracking attendance 💡 BENEFITS: • Reduces manual verification time by 95% • Eliminates fake email registrations • Creates professional branded badges automatically • Provides real-time RSVP tracking and analytics • Improves attendee experience with instant confirmations • Maintains clean, verified contact lists 🛠️ REQUIRED SERVICES: • n8n (cloud or self-hosted) • VerifiEmail API (https://verifi.email) • HTMLCssToImage API (https://htmlcsstoimg.com) • Gmail account (OAuth2) • Google Sheets 📈 USE CASE SCENARIO: When someone submits your event RSVP form, this workflow instantly validates their email, generates a personalized badge with their details, and emails them a confirmation—all within seconds. Invalid emails receive a helpful rejection notice, and every submission is logged for your records. No manual work required! 🎨 BADGE CUSTOMIZATION: The workflow includes a fully customizable HTML badge template featuring: • Gradient background with modern design • Attendee name, designation, and organization • Event name and date • Email address and validation timestamp • Google Fonts (Poppins) for professional typography 📊 ANALYTICS INCLUDED: Track metrics like: • Total RSVPs received • Valid vs invalid email ratio • Event-wise registration breakdown • Temporal patterns • Organization/company distribution ⚡ PERFORMANCE: • Processing time: ~3-5 seconds per RSVP • Scales to handle 100+ concurrent submissions • Email delivery within 10 seconds • Real-time Google Sheets updates 🔄 EASY SETUP: Import the workflow JSON Configure your credentials (detailed instructions included) Create your form with required fields (name, email, event, designation, organization) Connect the webhook Activate and start receiving validated RSVPs! 🎓 LEARNING VALUE: This workflow demonstrates: • Webhook integration patterns • API authentication methods • Conditional workflow branching • HTML-to-image conversion • Email automation best practices • Data logging strategies • Error handling techniques ---

Jitesh DugarBy Jitesh Dugar
67