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.jsonplus 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
{
"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
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
| Skenario | Schedule cron | Aksi route |
|---|---|---|
| Publish 5 konten/hari | 0 8,11,14,17,20 * * 1-5 | Move draft to published |
| Refresh sitemap harian | 0 1 * * * | revalidateTag('sitemap') |
| Ping IndexNow/Bing | 30 8 * * * | POST ke endpoint IndexNow |
| Reset analytics counter | 0 0 * * 1 | UPDATE 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:
- Hourly content publish dari antrian Supabase
- Daily sitemap refresh dengan
revalidateTag('sitemap')dan ping IndexNow - 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.
Artikel Terkait
Website Bisnis
Cara Marketer Indonesia Pasang HTML Dialog Element di Next.js untuk Modal Aksesibel Tanpa Library 2026
Panduan singkat memasang <dialog> di Next.js untuk modal aksesibel: focus trap bawaan, backdrop native, dan minus 60% baris JavaScript dibanding modal custom.
Website Bisnis
Cara Marketer Indonesia Pasang Robots Meta Tag Granular di Next.js untuk Kontrol Indexing per Halaman 2026
Panduan praktis pasang robots meta tag granular di Next.js App Router. Pelajari kapan pakai noindex, max-snippet, dan unavailable_after untuk kontrol SERP yang presisi.
Website Bisnis
Cara Marketer Indonesia Pasang CSS Container Queries di Next.js untuk Komponen Reusable 2026
Panduan praktis pasang CSS Container Queries di Next.js App Router supaya satu komponen kartu produk bisa hidup di banyak slot dengan layout otomatis menyesuaikan.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang