Website Bisnis

Cara Marketer Indonesia Pasang Cron Job Vercel untuk Otomasi Publikasi Konten Tanpa Server Tambahan 2026

Vito Atmo
Vito Atmo·26 Mei 2026·0 kali dibaca·4 min baca
Cara Marketer Indonesia Pasang Cron Job Vercel untuk Otomasi Publikasi Konten Tanpa Server Tambahan 2026

TL;DR: Vercel Cron Jobs memungkinkan marketer Indonesia menjalankan task berjadwal di Next.js tanpa server tambahan. Konfigurasinya satu file vercel.json plus satu route handler. Pola ini ideal untuk publikasi konten harian, refresh sitemap, atau revalidasi cache tag tanpa biaya hosting cron terpisah.

Banyak tim marketing Indonesia menjadwalkan publish konten via Zapier, Make, atau cron VPS terpisah. Tiga jalur ini berbiaya 100-500 ribu per bulan dan menambah satu titik kegagalan. Padahal, jika website sudah jalan di Vercel, ada fitur gratis yang sering terlewat: Vercel Cron Jobs.

Dalam beberapa proyek terakhir, saya melihat tim yang akhirnya migrasi cron mereka ke Vercel Cron memangkas billing automation 60-80 persen tanpa mengubah arsitektur Next.js.

Apa itu Vercel Cron Jobs?

Vercel Cron Jobs adalah fitur scheduling bawaan platform Vercel yang memanggil route handler Next.js pada jadwal yang kita tentukan. Sintaks jadwalnya pakai format cron standar (* * * * *). Vercel akan mengeksekusi panggilan HTTP ke endpoint kita sesuai schedule. Lihat dokumentasi resmi Vercel Cron Jobs untuk batas eksekusi terbaru.

Karena yang dijalankan adalah route handler biasa, kita bisa memanfaatkan akses penuh ke middleware, database Supabase, dan API internal tanpa konfigurasi tambahan.

Setup Dasar dalam 5 Menit

Tiga file yang perlu disentuh.

1. vercel.json

json
{
  "crons": [
    {
      "path": "/api/cron/publish-content",
      "schedule": "0 */2 * * *"
    }
  ]
}

Contoh di atas menjalankan publikasi tiap 2 jam. Untuk publish 5 konten per hari, schedule yang umum dipakai tim Vito Atmo adalah "0 8,11,14,17,20 * * 1-5" (Senin-Jumat, jam kerja).

2. Route handler app/api/cron/publish-content/route.ts

ts
import { NextResponse } from 'next/server';
import { revalidateTag } from 'next/cache';

export const dynamic = 'force-dynamic';

export async function GET(req: Request) {
  const authHeader = req.headers.get('authorization');
  if (authHeader !== `Bearer ${process.env.CRON_SECRET}`) {
    return new NextResponse('Unauthorized', { status: 401 });
  }

  // Logic: ambil draft dari Supabase, set status published, revalidate
  await publishNextDraftFromSupabase();
  revalidateTag('articles');
  revalidateTag('sitemap');

  return NextResponse.json({ ok: true });
}

3. Environment variable

Tambahkan CRON_SECRET di Vercel Dashboard. Vercel otomatis menyertakan header Authorization: Bearer <CRON_SECRET> saat memanggil cron path, jadi endpoint kita aman dari trigger acak.

Skenario Umum untuk Marketer

SkenarioSchedule cronAksi route
Publish 5 konten/hari0 8,11,14,17,20 * * 1-5Move draft to published
Refresh sitemap harian0 1 * * *revalidateTag('sitemap')
Ping IndexNow/Bing30 8 * * *POST ke endpoint IndexNow
Reset analytics counter0 0 * * 1UPDATE Supabase row

Vercel Cron Jobs gratis sampai 2 cron job di Hobby plan dan 40 cron job di Pro plan, lebih dari cukup untuk marketing harian.

Studi Kasus Internal: Atmo LMS

Tim Vito Atmo memakai Vercel Cron untuk Atmo LMS sejak Februari 2026. Tiga cron utama yang aktif:

  1. Hourly content publish dari antrian Supabase
  2. Daily sitemap refresh dengan revalidateTag('sitemap') dan ping IndexNow
  3. Weekly content audit yang menandai artikel di atas 12 bulan untuk refresh

Hasil: 30 publish konten per minggu jalan tanpa intervensi manual, dan billing Zapier yang sebelumnya 350 ribu per bulan turun ke nol. Pola yang sama dipakai untuk On-Demand ISR di Vetmo.

Pertanyaan Umum

Apakah Vercel Cron bisa jalan setiap menit?

Bisa di Pro plan dan ke atas. Hobby plan minimum interval per jam.

Bagaimana memastikan cron tidak dipanggil ulang kalau gagal?

Pakai pola idempoten: cek status di Supabase sebelum menjalankan aksi. Tambahkan kolom last_run_at agar logic skip jika baru saja jalan.

Apakah cron job menghitung sebagai Function Invocation di billing?

Ya. Setiap panggilan cron jalan sebagai Function Invocation biasa, masuk ke kuota Vercel Functions.

Bagaimana cara monitoring kalau cron gagal?

Vercel menampilkan log eksekusi di dashboard Cron Jobs. Untuk alert, tambahkan integrasi Sentry atau kirim webhook ke Discord/Slack saat status non-200.

Apakah perlu third-party scheduler kalau sudah pakai Vercel Cron?

Tidak untuk schedule per jam. Untuk schedule sub-jam pada Hobby plan atau workflow lintas tools, third-party tetap relevan.

Penutup: Sederhana Tapi Sering Terlewat

Vercel Cron Jobs adalah salah satu fitur paling underrated buat marketer yang sudah pakai Next.js. Setup 5 menit, biaya nol untuk volume kecil, dan integrasi penuh dengan cache tag dan revalidation Next.js. Kalau workflow content publishing masih bergantung pada Zapier atau VPS terpisah, layak audit ulang minggu ini juga.

Bagikan

Artikel Terkait

#vercel-cron#next-js#automation#content-publishing#marketing-ops

Butuh website yang benar-benar bekerja?

Hubungi Vito untuk konsultasi gratis 15 menit.

WhatsApp Sekarang