Module 08Lesson 6

Lesson 6. Versioning and Backups

Hands-on: Zapier

Lesson 6. Versioning and Backups#

Goal: learn how to save data versions and make backups so you don't lose information.

Why Versioning Matters#

An agent can accidentally:

  • delete a row
  • overwrite data
  • corrupt the format

Without a backup — you lose the data.

Versioning means saving snapshots of data at specific points in time.

How to Work with Versions in Google Sheets#

Google Sheets automatically saves change history:

  • open the document
  • click File → Version history → See version history
  • select the version you need and restore it

You can also create named versions manually:

  • File → Version history → Name current version
  • enter a version name (e.g., "Before agent launch")
  • you can always return to this version

How to Work with Versions in Airtable#

Airtable saves change history on paid plans (from $20/month).

On the free plan there's no history → back up manually:

  • export the base to CSV (via ...Export)
  • save the file with a date (e.g., clients_2026-01-31.csv)
  • export weekly (or before important changes)

How to Work with Versions in Notion#

Notion saves page change history:

  • open the page
  • click Page history
  • select the version you need and restore it

For a full backup of the base:

  • export the entire base (Workspace settings → Export all workspace content)
  • save the file (Markdown or HTML format)
  • export monthly

Git: A "Time Machine" for Your Files#

Google Sheets, Airtable, and Notion are great for tabular data. But if you work with text files — specs, prompts, articles, configs, knowledge bases — there's a much more powerful tool: Git.

What Git Is in Plain Terms

Git is a version control system. Imagine that every time you save a file, a snapshot of all files in the folder is created. You can:

  • view any previous version
  • see exactly what changed (which lines were added, removed, modified)
  • roll back to any snapshot with one click
  • store all versions in the cloud (GitHub, GitLab) — like a free backup

Analogy: Google Docs saves history of one document. Git saves history of the entire folder of files, with signatures: who, when, and why changed it.

Why Git for Non-Technical Users

1. Safety when working with AI: When an AI agent (Claude Code, Cursor, Gemini CLI) edits your files, it might accidentally delete a needed paragraph, rewrite text poorly, or break the structure. With Git you can restore any previous version with one click.

2. Understanding changes: Git shows a "diff" — the difference between versions. You immediately see what the AI changed: green for added lines, red for removed. Much easier than comparing two documents manually.

3. Cloud backup: Via GitHub (free account) all your files and history are stored in the cloud. Even if your computer breaks — data is safe.

4. Collaboration: If you work with an AI assistant (or a colleague), Git lets you see who changed what and when.

Getting Started: GitHub Desktop (No Command Line!)

You don't need a terminal or complex commands. GitHub Desktop is a free app with a visual interface:

Step 1. Install:

  • Download GitHub Desktop (Windows, macOS)
  • Create a free account at github.com
  • Sign in to GitHub Desktop with your account

Step 2. Create a repository:

  • In GitHub Desktop: File → New Repository
  • Choose the folder with your documents (or create a new one)
  • Name the repository, e.g.: my-documents or project-docs

Step 3. Daily workflow (3 actions):

  1. Work with files as usual — edit in any editor (Word, Notion export, Cursor, VS Code)

  2. Save a version (commit):

    • Open GitHub Desktop — it shows which files changed
    • At the bottom left write a short description: "Updated spec for client" or "AI rewrote section 3"
    • Click Commit to main — version saved!
  3. Push to the cloud:

    • Click Push origin — your files and history are sent to GitHub

Step 4. Roll back to a previous version:

  • In GitHub Desktop: History → select the commit → right-click → Revert changes in commit
  • Files return to the previous state

Alternative: Git in VS Code and Cursor

If you use Cursor or VS Code (see Module 3, Lesson 2), Git is built into the editor:

  • The left panel has a "branch" icon (Source Control) — it shows changed files
  • Write a description and click the checkmark (Commit)
  • The Sync Changes button pushes to the cloud

This is more convenient than a separate app because everything is in one window: editing + AI assistant + version control.

Git Glossary for Non-Technical Users

TermIn plain terms
RepositoryFolder with files that Git tracks
CommitSaved snapshot of all files with a signature
PushSending snapshots from your computer to the cloud (GitHub)
PullDownloading updates from the cloud to your computer
DiffShowing differences between two versions of a file
RevertRolling a file back to a previous version
BranchParallel version of the project (for starters you only need one — main)

Tip: To start, you only need 3 actions: edit → commit → push. That's enough for reliable versioning of all your documents.

When to Use Git vs Built-in Versioning

SituationTool
Customer tables, ordersGoogle Sheets / Airtable (built-in history)
Documents in NotionNotion (built-in page history)
Text files: specs, prompts, articles, configsGit (via GitHub Desktop or Cursor)
Files edited by an AI agentGit (essential! for safe rollback)
Project folder (code + documents)Git (industry standard)

Data Handling Rules for Agents#

1. Make a backup before launching the agent

Before connecting the agent to the database:

  • export the data (CSV, JSON, Excel)
  • save a copy with the date
  • confirm the copy opens and data is readable

2. Test the agent on a copy of the base

Don't connect the agent to the live base right away. Create a copy (test base) and test the agent on it.

3. Set access permissions

The agent should have minimal required permissions:

  • if the agent only reads → grant "Read only"
  • if the agent adds data → grant "Write" only to the needed table
  • don't grant delete rights unless required

4. Log agent actions

If the agent changes data — log its actions:

  • create a separate "Action log" table
  • record each agent action (date, time, what it did, result)
  • if something breaks — you can roll back changes

Module Practice#

Practice Task 1: Create a Customer Table in Google Sheets#

Task: create a customer table with clean data, ready for agent connection.

Requirements:

  • Fields: ID, Name, Email, Phone, Status, RegistrationDate
  • Formats:
    • ID — number (1, 2, 3, …)
    • Name — text (First Last)
    • Email — lowercase text (ivan@example.com)
    • Phone — text in format +79001234567
    • Status — text from list: active, lead, inactive
    • RegistrationDate — date in format YYYY-MM-DD
  • Data: fill 10 rows (invent customers)
  • Cleanliness:
    • no empty values in critical fields (Email, Status)
    • no extra spaces
    • no duplicates (two customers with the same Email)

Checklist:

  • First row is headers (no spaces, no special characters)
  • All fields filled (no empty cells in Email, Status)
  • Formats consistent (all phones in one format)
  • No duplicates (check by Email)
  • No empty rows between records

Practice Task 2: Create Structure in Airtable#

Task: create a freelancer CRM structure in Airtable.

Requirements:

  • Table 1: Clients
    • Fields: Name (text), Email (email), Phone (phone), Status (single select: lead / active / inactive), RegistrationDate (date)
  • Table 2: Projects
    • Fields: Name (text), Client (link to Clients), Status (single select: planned / in_progress / completed), Deadline (date), Amount (number)
  • Table 3: Meetings
    • Fields: Client (link to Clients), Date (date), Topic (text), Status (single select: scheduled / completed / cancelled)

Steps:

  1. Create a base in Airtable
  2. Create three tables
  3. Set up links (in Projects, Client links to Clients)
  4. Fill with test data (2 clients, 3 projects, 2 meetings)
  5. Create a Calendar view for Meetings (by Date field)

Checklist:

  • Three tables created
  • Links configured (Projects → Clients, Meetings → Clients)
  • Test data filled
  • Calendar view for meetings created

Practice Task 3: Clean Messy Data#

Task: given a table with messy data. Clean it.

Original table:

EmailPhoneStatus
ivan@example.com+7 900 123-45-67Active
Maria@EXAMPLE.com89007654321active
alex@example.com+7(900)9876543
ivan@example.com+79001234567Active

What to do:

  1. Remove extra spaces in Email
  2. Convert Email to lowercase
  3. Convert Phone to single format +79001234567
  4. Convert Status to single format (choose one: active, lead, inactive)
  5. Fill empty Status values (decide on default status)
  6. Remove duplicates (rows with same Email)

Result:

EmailPhoneStatus
ivan@example.com+79001234567active
maria@example.com+79007654321active
alex@example.com+79009876543inactive

Checklist:

  • No extra spaces
  • Email in lowercase
  • Phone in single format
  • Status in single format
  • Empty values filled
  • Duplicates removed

Artifacts#

After completing the module you will have:

1. Customer Table in Google Sheets#

  • 10 rows with clean data
  • consistent field formats
  • ready for agent connection

2. CRM Structure in Airtable#

  • three linked tables (Clients, Projects, Meetings)
  • test data
  • Calendar view for meetings

3. Data Cleanliness Checklist#

  • list of rules for checking data before connecting to an agent
  • reusable for any project

4. Agent Action Log (Template)#

Table for logging agent actions:

TimestampActionEntityEntityIDResultDetails
2026-01-31 10:15:00createClient123successivan@example.com
2026-01-31 10:16:00updateClient123successStatus → active
2026-01-31 10:17:00createMeeting456failedDate format error

Zapier Practice: Configure an Agent to Write Clean Data#

Bonus Task#

Task:
Create a new chatbot/agent in Zapier (or improve an existing one) that collects data from customers and writes it to Airtable with validation.

What to do:

  1. Create a base in Airtable:

    • Name: "Customers [Your niche]"
    • Fields:
      • ID (Auto number)
      • Date (Date, automatic)
      • Name (Single line text, required)
      • Email (Email, required, with validation)
      • Phone (Phone number, required, with validation)
      • Source (Single select: Telegram, Website, Ads)
      • Status (Single select: New, Processed, Closed)
      • Notes (Long text, optional)
  2. Create a chatbot/agent in Zapier:

    • Name: "Lead collector [Your niche]"
    • Role: "You are a lead collection assistant"
  3. Write a prompt with validation:

You are a lead collection assistant for [your niche].

Your task: collect data from the customer and write it to Airtable.

Data to collect:
1. Name (text, required)
2. Email (format: example@mail.com, required)
3. Phone (format: +7-xxx-xxx-xx-xx, required)
4. Notes (text, optional)

Validation rules:
- Email: check format (must contain @ and domain)
- Phone: check format (must start with +7 and contain 11 digits)
- If format is wrong, ask to re-enter: "Please enter email in format example@mail.com"

Actions:
1. Ask for data one by one
2. Validate each field
3. After collecting all data, repeat for confirmation
4. If customer confirmed, write to Airtable (use plugin)
5. Say: "Done! Your request has been received. We'll contact you within a day."

Format:
- Friendly tone
- Short questions
  1. Connect Airtable to Zapier:

    • Skills → Add Skill → Plugins → Airtable
    • Configure credentials (API Key from Airtable)
    • Specify base and table
  2. Test:

    • Write to the bot with correct data → check record in Airtable
    • Write with wrong email (e.g., "ivan@") → check that the bot asks to re-enter
    • Write with wrong phone (e.g., "123") → check validation

Checklist:

  • Base in Airtable created (correct fields and types)
  • Chatbot/agent created in Zapier
  • Prompt written (with validation)
  • Airtable plugin connected
  • Testing passed (correct data → record works)
  • Validation works (wrong data → bot asks to re-enter)

What you'll get:
An agent that collects clean, validated data and automatically writes it to a structured Airtable base.

Time: 40–50 minutes


Materials for the Website#

Flashcards#

Flashcards: Data and Storage1 / 9
Known: 0 (0%)
Question

Database for non-technical users

👆 Click to flip

Answer

A smart table with organized data (rows = records, columns = fields) that can be connected via API or integration.

👆 Click to flip back

Test Yourself

Check

1. What are "clean data" for an AI agent?
2. Which tool is best for a simple start with a database for an agent?
3. Why are links between tables needed in Airtable?
4. What should you do before connecting an agent to a live database?
5. Which date format is best for agents?
6. You have a customer table, and the agent must check if a customer exists by email. Which field should be unique?
7. What is data versioning?