Installation and testing guide · Leer en español
MyReportify for Klaviyo
MyReportify writes the monthly marketing report that agencies send to their clients. The Klaviyo integration adds an email section to the client's monthly report: how many campaigns went out last month, how many emails were delivered, unique opens and clicks, unsubscribes, open and click rates, the top campaigns and, when the account tracks orders, the revenue Klaviyo attributes to campaigns, always compared with the previous month.
1. Prerequisites
- A MyReportify account. Anyone can create one for free at myreportify.com/auth/register (no card needed). For the review, the test account details are given privately in the submission form, never on this page.
- A client created in MyReportify (Clients → New client). The test account already has one.
- A Klaviyo account you can sign in to. A free or test account is enough; with no activity, the figures read as zero.
2. Install (connect Klaviyo)
- Sign in to MyReportify at myreportify.com/auth/login.
- Open Clients, open the client and click Edit.
- Scroll to the Store, email and CRM section and find the Klaviyo card.
- Click Connect with Klaviyo.
- Sign in to Klaviyo, choose the account if asked, and approve the read-only permissions.
- You are sent back to MyReportify. The card now reads Connected by signing in and shows the account name.
3. Test the functionality
- On the Klaviyo card, click Check. MyReportify reads last month and the month before from Klaviyo, live, and shows the figures the next report will use.
- Compare them with what Klaviyo shows for the same month. They should match (an empty account shows zeros).
- Optional: on the client page, Generate report creates last month’s report. The Klaviyo figures appear in their own section of the report page and of the PDF. A full report also needs Google Analytics connected; the test account has it.
4. What MyReportify reads
- The account name, currency and timezone (so months are cut in the account’s own timezone).
- Monthly totals of Klaviyo’s own metrics: Received Email, Opened Email, Clicked Email and Unsubscribed (metric aggregates).
- The campaigns sent in the month (name and send date) and, if the account has a Placed Order metric, the campaign values report.
Permissions requested
accounts:read: Account name, currency and timezone.metrics:read: Monthly totals of the email metrics above.campaigns:read: Campaigns sent in the month and their results.
MyReportify never reads profiles, lists or any personal data, and never creates, sends, edits or deletes anything in Klaviyo. Only the monthly totals are stored, as part of the report. Tokens are kept on our server only and are never shown in the browser.
5. API endpoints and scopes
| Endpoint | Use | Scope |
|---|---|---|
POST https://a.klaviyo.com/oauth/token | Exchange the authorization code (PKCE) and refresh the access token. | — |
POST https://a.klaviyo.com/oauth/revoke | Revoke the refresh token when the user clicks Remove (uninstalls the app). | — |
GET /api/accounts | Account name, currency and timezone. | accounts:read |
GET /api/metrics | Find the ids of Received Email, Opened Email, Clicked Email, Unsubscribed and Placed Order. | metrics:read |
POST /api/metric-aggregates | Monthly totals (count and unique) of those metrics, in the account timezone. | metrics:read |
GET /api/campaigns | Email campaigns sent in the month (name, send time). | campaigns:read |
POST /api/campaign-values-reports | Per-campaign deliveries, opens, clicks and attributed revenue (only when Placed Order exists). | campaigns:read |
6. Architecture and data flow
The agency starts the connection from MyReportify; Klaviyo asks the user to approve the read-only scopes and returns an authorization code to MyReportify’s callback. Our server exchanges it for tokens, encrypts them (AES-256-GCM) and stores them in our database, which is never reachable from the browser. When the agency clicks Check or generates a report, our server reads last month and the month before from Klaviyo’s API over HTTPS, keeps only the monthly totals and adds them to the report. The browser only ever sees the totals and the account name. Hosting: Vercel (application) and Supabase (PostgreSQL database).
7. Uninstall
- In MyReportify: on the Klaviyo card, click Remove. The stored tokens are deleted at once.
- In Klaviyo, go to Integrations → find MyReportify → Uninstall (or Settings → Apps).
- Figures already included in past reports stay in those reports. To delete everything, delete the client or the MyReportify account (Settings → Delete account).
8. Support
Email hola@myreportify.com. Privacy policy: myreportify.com/privacy. Terms: myreportify.com/terms.