If you're running a LearnWorlds school at any meaningful scale, at some point you hit a wall with the built-in reporting.
The internal analytics are fine for a quick pulse check, but the moment you want to combine enrollment data with payment records, track certification expiry dates, or give your marketing team visibility into who's actually converting, you end up doing things manually that should be automatic.

Google Sheets is where most course creators end up actually managing their business.
The problem is LearnWorlds doesn't have a direct native integration with Google Sheets, so getting data from one to the other requires some setup.
This article covers every realistic method for connecting the two platforms: no-code middleware tools, custom webhook scripting, scheduled API pulls, and the manual approach you should probably stop doing.
For each method, I'll tell you who it's for, how to set it up, and where it breaks down.
Does LearnWorlds Integrate with Google Sheets Natively?
No. LearnWorlds has native integrations with other Google products, Google Drive for file storage, Google Meet for live sessions, and Google Analytics for traffic tracking, but there's no one-click connection to Google Sheets.
4 Ways to Connect LearnWorlds & Google Sheets
Before getting into the setup details, here's a quick map of the landscape so you can pick the right approach for your situation:
Middleware automation (Zapier, Make, Pabbly Connect, Integrately). Spoiler, this is usually the right choice for most people.
LearnWorlds webhooks + Google Apps Script, best if you want zero recurring cost and are comfortable with JavaScript (or can ask ChatGPT to create it).
LearnWorlds REST API, for scheduled reporting and historical data pulls
Manual CSV export, worth acknowledging, not worth recommending at scale
Here's how those four options compare at a glance:
| Middleware | Webhooks + Apps Script | REST API | Manual Export | |
|---|---|---|---|---|
| Technical barrier | None | High JavaScript | High REST / OAuth2 | None |
| Setup time | Minutes | Hours | Days | Immediate |
| Cost | Subscription / task-based | Free | Free | Free |
| Real-time? | Yes webhook triggers | Yes | No scheduled pulls | No |
| Customizability | Limited to provider modules | Unlimited | Unlimited | None |
| Maintenance | Low vendor-managed | Moderate | Moderate | High manual |
Method 1: Using Middleware (Zapier, Make, Pabbly Connect, Integrately)
Middleware tools sit between LearnWorlds and Google Sheets and pass data between them automatically.
You define a trigger (something that happens in LearnWorlds, like a new enrollment or a completed payment) and an action (something that happens in Google Sheets, like a new row being added).
The most popular one is Zapier, but competitors like Make or Pabbly are fine here.

This is the right path for the majority of LearnWorlds users since there is no code required and once it's running you don't think about it.
How to Set It Up
The general process is the same regardless of which middleware platform you choose:
Generate API credentials in LearnWorlds. Go to Settings > Developers > API and click Request API Keys. You'll get a Client ID and Client Secret, keep these safe.
Connect your LearnWorlds account inside your middleware platform using those credentials, along with your School ID (Settings > School Settings > School Info).
Choose your trigger event. Common options include: New User, User Enrolled in Product, Payment Created, Course Completed, Assessment Completed, and Certificate Issued.
If you're using a webhook-based trigger (common with Pabbly and Make), the middleware will give you a URL. Paste that URL into LearnWorlds under Settings > Developers > Webhooks, select the relevant event, save, and click Send Dummy Data to let the middleware capture a sample payload.
Map LearnWorlds fields to your Google Sheets columns. For example: data.user.email to Column A, data.payment.total_amount to Column B.
Test with a real event and activate.
Let’s look at a specific example with Zapier since that’s probably the one you’ll want to use.
Zapier
Zapier is the most mature platform in this space and the easiest to trust for production workflows.
It supports over 6,000 apps, has the most complete set of LearnWorlds triggers, and its "Search and Update" action is worth calling out specifically: instead of appending a new row every time a user updates their profile, Zapier can find the existing row by email address and update it in place.

That prevents the duplicate row problem that corrupts your spreadsheet data over time.
The main sticking point to consider is price. Zapier's task-based pricing means every step in a multi-step workflow counts separately, and it gets expensive fast for high-volume schools.
The free plan caps at 100 tasks with a 15-minute polling delay, which is fine for testing but not for anything scalable.
Instant triggers, which use webhooks under the hood to fire the moment an event occurs, are only available on paid plans.
If you’d like to consider other options, here is a comparison table to guide you:
| Zapier | Make.com | Pabbly Connect | Integrately | |
|---|---|---|---|---|
| Apps supported | 6,000+ | 1,500+ | 2,000+ | 1,400+ |
| Internal logic fees | Free in paid plans | Count as operations | Always free | Count as tasks |
| Complexity | Moderate | High | Moderate | Low |
| Price per 2k tasks | ~$69/mo | ~$9–$16/mo | ~$19/mo | ~$19.99/mo |
| Free plan | 100 tasks | 1,000 operations | 100 tasks | 100 tasks |
| Real-time sync? | Paid plans only | Yes | Yes | Yes |
| Best for | Reliability, certification tracking | Complex logic, gradebooks | High-volume schools | Simple, fast lead capture |
Method 2: LearnWorlds Webhooks + Google Apps Script
If middleware costs are a concern and you or someone on your team can write basic JavaScript, this method offers the most control at zero ongoing cost.
The architecture is straightforward. LearnWorlds is configured to send an HTTP POST request, containing a JSON payload of event data, to a URL you specify every time a defined event fires.
A Google Apps Script function deployed as a Web App listens at that URL, parses the incoming data, and writes it to your spreadsheet.
Note that webhook functionality requires the Learning Center plan.
How to Set It Up
- Open the Google Sheet you want to use as your data destination. Go to Extensions > Apps Script.

Write a doPost(e) function. This is the standard entry point for handling incoming HTTP POST requests. The function parses the JSON payload from LearnWorlds, extracts the fields you need, and calls sheet.appendRow() to write the data.
Deploy the script as a Web App. Set Execute as: Me and Who has access: Anyone. This gives LearnWorlds a URL it can POST to without requiring Google authentication.
Copy the Web App URL and paste it into LearnWorlds under Settings > Developers > Webhooks. Select the event you want to capture and save.
Test by triggering a real event in LearnWorlds and verifying that a row appears in your sheet.
Webhook Signature Verification
This part is necessary for security purposes. LearnWorlds includes a Learnworlds-Webhook-Signature header in every POST request it sends.
Your Apps Script should retrieve that header and compare it against a locally generated hash before processing any data. If the signatures don't match, reject the request.
Without this check, anyone who discovers your Web App URL can inject arbitrary data into your spreadsheet.
Honest Assessment
The webhook + Apps Script approach is technically elegant and has no per-task costs.
Once deployed, it handles real-time events as reliably as any middleware platform.
The catch is that you own the maintenance. If LearnWorlds changes the structure of its JSON payload, which has happened as they've upgraded their API, your script will fail silently until someone notices the data stopped coming in.
Method 3: LearnWorlds REST API (Scheduled Pulls)
The webhook methods above are reactive, they respond to events as they happen.
The REST API is different: it lets you query LearnWorlds proactively on a schedule, pulling data about courses, users, groups, or financial transactions into Google Sheets at whatever interval makes sense for your reporting.
This is the right approach for use cases like monthly revenue reporting, compliance audits where you need a point-in-time snapshot, or historical data backfills when you're setting up a new spreadsheet and need to import existing records.
The LearnWorlds API has a rate limit of 30 requests per 10 seconds and requires OAuth2 authentication using your Client ID and Client Secret.
A typical implementation uses a time-triggered Google Apps Script that runs on a nightly or weekly schedule, makes GET requests to the relevant API endpoints, and writes the results to your sheet.

This method has the highest technical barrier of the four options but is worth pursuing if your use case is specifically about scheduled reporting rather than real-time event tracking.
What Data Can You Send to Google Sheets?
The specific fields available depend on the trigger event. Here's what each one exposes:
New User / User Updated: email address, username, profile fields, registration timestamp
User Enrolled in Product: course or bundle name, enrollment date, student ID
Payment Created: transaction ID, amount, currency, coupon code applied, user email
Course Completed: completion date, student ID, course name
Assessment Completed: score, number of attempts, pass/fail status
Certificate Issued: certificate name, issue date, expiration date (where applicable)
LearnWorlds also supports adding custom key-value pairs to webhook payloads through its User Automations feature, which is worth exploring if you need to pass data that isn't included in the standard payload structure.
FAQ
1) Does LearnWorlds integrate with Google Sheets?
Not natively.
LearnWorlds connects directly to Google Drive, Google Meet, and Google Analytics, but Google Sheets requires a third-party middleware tool (like Zapier, Make, Pabbly Connect, or Integrately) or a custom webhook integration using Google Apps Script.
2) Can I connect LearnWorlds to Google Sheets without Zapier?
Yes. Make.com, Pabbly Connect, and Integrately all support LearnWorlds and are in many cases cheaper than Zapier for high-volume use.
You can also bypass middleware entirely by using LearnWorlds webhooks with a Google Apps Script web app, which has no per-task cost.
3) How do I set up LearnWorlds webhooks?
Go to Settings > Developers > Webhooks in your LearnWorlds admin.
Paste in your middleware or Apps Script URL, select the events you want to capture (such as user registration or payment created), and save.
Most platforms have a "Send Dummy Data" button that fires a test payload so you can verify the connection before going live.
4) What events can trigger a LearnWorlds to Google Sheets automation?
The main triggers available are: New User or User Updated, User Enrolled in Product, Payment Created, Course Completed, Assessment Completed, and Certificate Issued.
The exact triggers available depend on which middleware platform you're using.
5) Can LearnWorlds automatically update a Google Sheet when a student completes a course?
Yes. The "Course Completed" event is a standard trigger in Zapier, Make, Pabbly, and Integrately.
When it fires, you can have a row added to your sheet with the student's name, email, course name, and completion date automatically.
6) Is there a free way to integrate LearnWorlds with Google Sheets?
The most cost-effective approach is to use LearnWorlds webhooks with a Google Apps Script web app.
Once set up, this has no per-task cost and runs in real time. It requires JavaScript proficiency and some initial setup time, but there are no ongoing subscription fees.

