Antlytics logoAntlytics

Send Antlytics data to Notion

Append daily analytics rows to a Notion database for team dashboards and progress tracking.

Option A: Via Zapier (easiest)

  1. Create a Zapier Zap: Webhooks by Zapier → Catch Hook (trigger).
  2. In Antlytics → Settings → Webhooks → Add webhook, paste the Zapier URL and select Daily summary.
  3. Add a Notion → Create database item action step.
  4. Connect your Notion workspace and select the database.
  5. Map fields:
    • Dateperiod
    • Visitors (Number) → stats__visitors
    • Pageviews (Number) → stats__pageviews
    • Bounce rate (Number) → stats__bounce_rate

Option B: Via Make

  1. Connect Antlytics via Settings → Webhooks to a Make webhook trigger.
  2. Add a Notion → Create a database item module.
  3. Map the same fields using Make's {{1.stats.visitors}} notation.

Option C: Notion API + Apps Script

Call the Antlytics API and write to Notion in one Apps Script function on a daily trigger:

const ANTLYTICS_TOKEN = 'ant_YOUR_API_TOKEN';
const ANTLYTICS_SITE_ID = 'YOUR_SITE_ID';
const NOTION_TOKEN = 'secret_YOUR_NOTION_TOKEN';
const NOTION_DATABASE_ID = 'YOUR_DATABASE_ID';

function syncToNotion() {
  // Fetch stats
  const statsRes = UrlFetchApp.fetch(
    `https://www.antlytics.com/api/v1/stats?site_id=${ANTLYTICS_SITE_ID}`,
    { headers: { Authorization: `Bearer ${ANTLYTICS_TOKEN}` } }
  );
  const { visitors, pageviews, bounce_rate } = JSON.parse(statsRes.getContentText());
  const today = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd');

  // Write to Notion
  UrlFetchApp.fetch('https://api.notion.com/v1/pages', {
    method: 'post',
    contentType: 'application/json',
    headers: {
      Authorization: `Bearer ${NOTION_TOKEN}`,
      'Notion-Version': '2022-06-28',
    },
    payload: JSON.stringify({
      parent: { database_id: NOTION_DATABASE_ID },
      properties: {
        Date:      { date: { start: today } },
        Visitors:  { number: visitors },
        Pageviews: { number: pageviews },
        'Bounce rate': { number: bounce_rate },
      },
    }),
  });
}

Set up a daily time-based trigger via ScriptApp.newTrigger('syncToNotion').timeBased().everyDays(1).create().


Need help?

Email support@antlytics.com with your site ID.

Something missing? Get in touch and we will update these docs.