Archust Docs

Monthly Plans (SEO)

Lập kế hoạch SEO hàng tháng — canonical tại /dashboard/plans.

Monthly Plans (SEO)

Monthly Plans là planner trung tâm cho SEO: mỗi tháng một Plan với periodStart (YYYY-MM-01), bên trong là các Items liên kết tới pages, keywords, snapshots và jobs.

Plans

/dashboard/plans — list, detail

Legacy

/dashboard/seo/plans → redirect về /dashboard/plans

Profile

Planning profile: markets, segments, budgets

Bạn tìm thấy gì ở đâu

TrangĐường dẫnMô tả
Plans (canonical)/dashboard/plansList plans (limit 20), tạo bằng Dialog
Plan Detail/dashboard/plans/[id]Items, goals, readiness, narrative
Tạo PlanDialog trên /dashboard/plans/dashboard/plans/new sẽ redirect về list
Legacy/dashboard/seo/plans, /seo/plans/[id], /seo/plans/newTất cả redirect về /dashboard/plans — giữ bookmark cũ

Docs cũ ghi canonical là /dashboard/seo/plans là sai. Sidebar và tenantRoutes đều dùng /dashboard/plans. Hãy luôn dùng /dashboard/plans.

Trạng thái & Loại Item (đúng với code)

Khái niệmGiá trị thực tế
planStatusdraftapprovedarchived (3 giá trị, không có active/completed)
planItemTypenew_content, refresh_content, ctr_optimization, internal_links, technical_fix, audit, measurement (7 loại)
evidenceModeevidence_backed (cần sourceSnapshot) hoặc brief_only (manual, cần briefOnlyAcknowledged: true)
executionStateunlinked, queued, in_progress, blocked, done, cancelled, published
verificationStatenot_requested, waiting_for_data, passed, failed, inconclusive
readinessLevelready, limited, blocked (dựa trên GSC/audit/recommendations)
plannedWeek1-5

Planning Profile — trước khi tạo Plan

Trước khi generate plan, hệ thống cần Planning Profile (seoPlanningProfile):

  • targetMarkets, customerSegments, customerPersona, painPoints, desiredOutcomes, selectionCriteria
  • priorityOfferings, differentiators, competitorDomains/Keywords
  • monthlyNewContentCapacity, monthlyRefreshCapacity, monthlyTechnicalCapacity, weeklyReviewCapacity
  • timezone, locale, industry, businessModel, searchChannels, socialChannels, planningBudgetMin/Max/currency
  • selectedDocumentIds, selectedMediaIds

Xem/sửa qua getPlanningProfile / updatePlanningProfile (admin). Vào /dashboard/plans hệ thống prefetch settings.getContentStrategyProfile để hiện readiness.

Quy trình Monthly Plan

Kiểm tra readiness: getReadinessready mới generate được. Nếu limited/blocked, bổ sung GSC/scan/recommendations.
Tạo draft: generateDraft({ siteId, periodStart: '2026-03-01', goals: [{metric, target, unit, targetDate}], allowBriefOnly }) → trả plan draft với items, narrative, goals, capacitySnapshot.
Chỉnh draft: updateDraft({ planId, version, goals, excludedItemIds, includedItemIds, dueDates, weekByItemId, ownerUserIds, itemEdits }) — version optimistic.
Sắp xếp: reorderItems({ planId, itemIds }).
Thêm manual: addManualItem({ planId, title, description, itemType: new_content/refresh_content/technical_fix/measurement, plannedWeek, estimatedEffort, evidenceMode: 'brief_only', briefOnlyAcknowledged: true }).
Duyệt: approve({ planId, idempotencyKey }) (admin) → approved.
Theo dõi: mỗi item có executionState + verificationState + blogJobId/seoActionId để link sang Jobs. recordMonthEndObservation khi hết tháng.

Items chi tiết

Mỗi MonthlyPlanItem gồm:

  • title, description, reasonCodes, plannedWeek, sortOrder, expectedImpact, confidence, estimatedEffort
  • targetPageId / keywordTargetId / sourceSnapshotId (evidence-backed bắt buộc có ít nhất một)
  • ownerUserId, dueAt, seoActionId, blogJobId, generationRunId
  • baseline / baselineObservation / postChangeObservation để verify
  • excluded + excludedReason

Các chức năng khác

Chức năngMô tả
list({ siteId, limit, offset, cursor })List plans, sort periodStart desc
getById({ planId })Chi tiết plan + items
createRevision({ planId, periodStart })Tạo revision cho tháng sau
generateNextMonthDraft({ siteId, periodStart })Tự sinh draft tháng tiếp theo
getMonthEndReview({ planId })Tổng kết planned/active/completed/blocked/cancelled/published/waitingForData
recordMonthEndObservation({ planItemId, baseline, current, observedAt })Ghi quan sát cuối tháng
getPlanningProfile / updatePlanningProfileQuản lý profile

Mọi link tới Monthly Plans phải dùng /dashboard/plans (không phải /dashboard/seo/plans). Sau khi updateDraft/addManualItem/reorderItems, hệ thống invalidate seoPlans.listgetById.

On this page