Skip to main content

Backfilling Missing Data Using Google Sheets & Zapier

Learn how to backfill missing events in Cometly using Google Sheets and Zapier.

Updated this week

When events are missing from Cometly due to setup errors, you can backfill that data by compiling it in a Google Sheet and sending it to Cometly via a Zapier automation. This ensures your reporting reflects the complete picture, with events stamped at the correct historical time.
​

When to Use This

  • You have missing purchase, lead, or other events that were not captured

  • You need to send historical events to Cometly with accurate timestamps

  • You exported data from another platform and need to push it into Cometly


Overview

The workflow is simple:

  1. Export your missing data into a Google Sheet with the required fields

  2. Create a Zap that triggers on new rows added to the sheet

  3. Map fields from your sheet to Cometly, including the historical Event Time

  4. Add rows to the sheet to send each event to Cometly


Step 1: Prepare Your Google Sheet

Create a new Google Sheet with two tabs:

Tab 1: "All Data"

This is your staging tab. Compile all of your missing event data here first. Do NOT connect this tab to Zapier.

Export the missing transactions or events from your payment processor or platform:

  • Stripe: Go to Payments > Export, filter by date range

  • ClickFunnels: Go to Orders/Transactions and export

  • Other platforms: Export from your CRM, payment provider, or order management system

Cross-reference this export against your Cometly Event Log (Settings > Integrations > Event Log) to identify which events are missing, then add only those to the "All Data" tab.

Organize the data with the following columns:

Column

Required?

Description

Example

Email

βœ… Required

The customer's email address

john@example. com

Event Time

βœ… Required

The date/time the event originally happened (ISO 8601 or standard date format)

2026-02-15T14:30:00Z or 2/15/2026 2:30 PM

Amount

*Recommended for purchase events

The purchase/transaction amount (numeric, no currency symbols)

47.00

First Name

Optional

Customer's first name

John

Last Name

Optional

Customer's last name

Smith

Phone Number

Optional

Customer's phone number

+15551234567

Order ID

Optional

Unique transaction/order identifier (helps prevent deduplication issues)

ord_12345

Important Notes on Event Time

  • Use a consistent date/time format across all rows

  • This should be the time the event actually happened, not the time you're adding it to the sheet

Where to Get the Missing Data

Export the missing transactions or events from your payment processor or platform:

  • Stripe: Go to Payments > Export, filter by date range

  • ClickFunnels: Go to Orders/Transactions and export

  • Other platforms: Export from your CRM, payment provider, or order management system

Cross-reference this export against your Cometly Event Log (Settings > Integrations > Event Log) to identify which events are missing, then add only those to your Google Sheet.

Tab 2: "Send to Cometly"

This is your live tab. This is the tab Zapier will be watching. Create this tab with the exact same column headers as your "All Data" tab.

Do not paste any data into this tab yet. You'll do that after everything is configured and tested.

πŸ’‘ Why two tabs?
​
The "All Data" tab is your source of truth where you organize and review everything. The "Send to Cometly" tab is what Zapier monitors. Every time a new row appears in this tab, it triggers a Zap that sends the event to Cometly. By keeping them separate, you control exactly when events get sent and avoid accidentally firing events before you're ready.


Step 2: Connect Cometly to Zapier (If Not Already Connected)

  1. In Cometly, navigate to the Integrations page

  2. Click Add Integration and search for Zapier

  3. Click Next

  4. Click Create New API Token and copy the token (you'll need it in Zapier)


Step 3: Create Your Zap

Set Up the Trigger (Google Sheets)

  1. Go to zapier. com and click Create Zap

  2. For the Trigger App, search for and select Google Sheets

  3. For the trigger event, select New or Updated Spreadsheet Row

  4. Connect your Google account and select:

  • The Spreadsheet you created in Step 1

  • The Worksheet: select "Send to Cometly" (your live tab, NOT the "All Data" tab)

Add one test row to the "Send to Cometly" tab so Zapier can detect your columns.

Click Test Trigger to pull in the sample row.

Tip: Add one sample row of data to your sheet before testing so Zapier can detect your columns.

Set Up the Action (Cometly)

  1. Click Add Step (the + button)

  2. Search for Cometly and select it

  3. For the action event, select Send Event

  4. Connect your Cometly account by pasting the API Token you copied in Step 2

  5. Configure the action fields:

  • Event Type: Select the appropriate event (e. g., Purchase, Lead, or your custom event name)


Step 4: Map Your Fields

This is the most important step. You need to map each column from your Google Sheet to the corresponding Cometly field.

Required Fields

Cometly Field

Map To

Email

Select your Email column from the Google Sheet

Event Time

Select your Event Time column from the Google Sheet

⚠️ Critical for Backfilling: For Event Time, do NOT select "The time we receive the event." Instead, map it to the Event Time column in your Google Sheet. This is what ensures your backfilled events appear at the correct historical date/time in Cometly's reporting.

Recommended Fields

Click + Add Field to map additional data:

Cometly Field

Map To

Amount

Your Amount column (for purchase events)

First Name

Your First Name column

Last Name

Your Last Name column

Phone Number

Your Phone Number column

Click Continue after mapping all fields.


Step 5: Test Your Zap

  1. Click Test Step to send your sample row to Cometly

  2. Verify the event arrived in Cometly:

  • Go to your Event Log

  • Confirm the event shows the correct email, amount, and event time

If everything looks correct, click Publish to activate the Zap


Step 6: Backfill Your Data

Now that your Zap is live and verified, it's time to send the rest of your data.

  1. Go to your "All Data" tab

  2. Copy a batch of rows (50-100 at a time is recommended)

  3. Paste them into the "Send to Cometly" tab

  4. Each new row will trigger the Zap and send the event to Cometly

  5. Check your Event Log to confirm events are flowing in correctly

  6. Repeat with the next batch until all data has been sent

Tips

  • Work in batches. Paste 50-100 rows at a time rather than all at once. This prevents rate limiting and makes it easy to catch issues early.

  • Don't re-paste rows. Rows that have already been added to the "Send to Cometly" tab have already been processed. Adding them again will create duplicate events.

  • Check as you go. After each batch, spot-check a few events in the Event Log to make sure everything looks right before continuing.


Troubleshooting

Issue

Solution

Events show today's date instead of historical date

You likely selected "The time we receive the event" instead of mapping the Event Time column. Edit the Zap and re-map the Event Time field to your sheet column.

Events not appearing in Cometly

Check your Event Log. Verify the Zap is turned on and your API token is correct.

Duplicate events

Use a unique Order ID in your sheet. Avoid re-adding rows that were already processed.

Amount showing incorrectly

Ensure amounts are numeric values only (no $ signs or currency codes).

Event Time format errors

Use ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ. Avoid ambiguous formats like 3/4/2026 (is that March 4 or April 3?).


Summary

By combining a Google Sheet with a Zapier automation, you can backfill any missing events into Cometly with accurate historical timestamps. The key is mapping the Event Time column from your sheet (not "the time we receive the event") so that your reporting reflects when events actually occurred.

If you need help identifying which events are missing, compare your platform's transaction export against your Cometly Event Log.

Did this answer your question?