Pusat Bantuan
Panduan menggunakan Esteh Group Portal.
Lupa Password?
Klik "Lupa password?" di halaman login, masukkan email Anda, lalu cek inbox untuk link reset (berlaku 24 jam).
Apa itu Esteh Internal Projects Portal?
Portal internal Esteh Group untuk berbagi project digital antar karyawan. Anda bisa upload dashboard, laporan interaktif, microsite, presentasi, atau materi visual apapun yang berbentuk web statis (HTML+CSS+JS) ke portal ini, lalu share ke rekan kerja per individu, per grup, atau per departemen.
Login pakai email & password akun Esteh Group Anda (tidak perlu Microsoft 365). Akun dibuat lewat undangan dari IT, dan email internal wajib pakai domain Esteh Group (estehindonesia.com, eskopiindonesia.com, padellife.id, estehkarunia.com, sambalsamuda.com). File project Anda aman โ hanya dilihat orang yang Anda beri akses.
Ada juga portal terpisah services.estehindonesia.com untuk mitra/vendor/tim outlet external โ mereka hanya bisa mengakses sistem (mis. tracking) yang di-share khusus ke mereka, dan tidak bisa masuk ke portal internal ini.
5 Role di Portal Ini
User
Karyawan biasa (internal). Bisa melihat project yang di-share atau visibility public/departemen. Tidak bisa membuat project sendiri.
Creator
Bisa membuat & mengelola project sendiri, upload file, share ke rekan kerja. Designer, marketing, finance analyst, dll.
Management
Seperti Creator (bisa buat & kelola project sendiri), plus bisa melihat & membuka semua project di sistem. Cocok untuk level manajemen yang perlu memantau. Tidak punya akses halaman admin.
Admin
Admin IT. Full akses โ kelola user, grup, departemen, pengumuman, audit log, template email, sistem.
External
Pihak luar (Tim Outlet / Mitra / Vendor). Hanya akses services.estehindonesia.com, dan hanya sistem yang di-share khusus ke mereka. Tidak bisa masuk portal internal.
Role Anda di-set oleh IT Department. Hubungi IT kalau perlu upgrade role.
Mengakses Project yang Di-share ke Anda
- Login portal dengan email & password akun Esteh Group Anda.
- Halaman Beranda menampilkan ringkasan project terbaru yang bisa Anda akses.
- Menu Semua Project untuk lihat semua project visibility public/departemen yang bisa Anda akses.
- Menu Di-share ke Saya untuk lihat project yang spesifik di-share oleh creator ke email Anda.
- Klik card project mana saja โ browser membuka isi project di tab baru.
Tidak ada project muncul?
Kemungkinan belum ada creator yang share project ke email Anda, atau Anda belum dimasukkan ke departemen yang sesuai. Hubungi creator yang Anda cari, atau hubungi IT Department untuk konfirmasi role & departemen akun Anda.
Saya Mau Buat Project Sendiri
Role default karyawan baru adalah user (hanya view). Untuk bisa upload project, Anda perlu role creator. Hubungi IT Department dengan menyebutkan email Anda + alasan perlu role creator (contoh: "Saya marketing, perlu upload dashboard kampanye").
Alur Lengkap Buat & Upload Project
Anda pakai Claude di mana?
- Cowork (Claude Desktop): folder project Anda di-mount langsung, Claude bisa baca/tulis file di situ. Lewati step 1, ikuti step 2A.
- Claude.ai web atau Claude Code: harus siapkan folder dulu di komputer. Mulai dari step 1.
- (Skip kalau Cowork mode) Siapkan folder kerja di OneDrive Anda dengan nama ID project (huruf kecil, pakai strip, tanpa spasi). Contoh:
kampanye-lebaran-2026. Folder kosong saja, Claude yang akan isi. - Buka Claude:
- 2A โ Cowork: mount folder project existing Anda sebagai working folder Cowork (klik nama folder di pojok kiri atas โ "Select folder"). Claude otomatis baca semua file di dalamnya.
- 2B โ Web / Claude Code: open chat baru. Untuk Claude Code, set working dir ke folder kosong di step 1.
- (Cowork mode bisa skip) Kalau pakai Web, drag file sumber dari OneDrive ke chat Claude (CSV, Excel, PDF, dokumen, gambar). Kalau Cowork, Claude sudah punya akses ke semua file di folder.
- Paste Prompt Template dari tab "Prompt Template" โ ganti bagian
[TUGAS]dengan deskripsi project Anda. Kalau Cowork mode dengan file existing, sebutkan: "Baca file-file di folder kerja saya, lalu buat project sesuai tugas berikut: ..." - Tunggu Claude generate file. Di Cowork, Claude tulis langsung ke folder Anda. Di Web, copy-paste output ke file masing-masing.
- Test lokal: double-click
index.htmldi File Explorer โ harus jalan tanpa error di browser. - Di portal, masuk Creator Portal โ Buat Baru. Isi nama, departemen, dan ID yang sama persis dengan nama folder lokal.
- Tab File โ pilih opsi "Upload Folder (Recommended)" โ klik tombol pilih folder โ arahkan ke folder project Anda di komputer (folder induk-nya, misal
loyalty-analytics-dashboard/). Semua file dan sub-folder akan ke-upload otomatis sambil preserve struktur. Tidak perlu upload per-file lagi. - Tab Share & Akses โ tambahkan email rekan kerja yang perlu lihat project.
-
Selesai. Akses project Anda di
https://portal.estehindonesia.com/p/<departemen>/<id>/
Catatan Penting untuk Cowork Mode
Saat Anda mount folder project ke Cowork, seluruh isi folder ke-share ke Claude (Claude bisa baca/tulis/hapus file di situ). Pastikan folder yang Anda mount memang folder khusus project itu โ jangan mount folder OneDrive root atau folder yang berisi data perusahaan rahasia lain. Best practice: 1 project = 1 folder dedicated.
Tips Penamaan ID
Boleh: kampanye-lebaran-2026, laporan-q1-finance, onboarding-staff-baru
Jangan: Kampanye Lebaran 2026 (ada spasi), KAMPANYE (huruf besar), kampanye_lebaran (underscore โ pakai dash)
Belum Familiar dengan Web Development?
Tidak masalah. Anda tidak perlu coding sendiri โ Claude yang melakukan semua. Tugas Anda hanya: (1) siapkan data sumber, (2) jelaskan apa yang ingin Anda tampilkan, (3) upload hasilnya. Lihat tab "Prompt Template" untuk template yang siap pakai.
Prompt Template untuk Claude
Pilih mode sesuai cara Anda pakai Claude. Otomatis direkomendasikan kalau Claude Anda bisa baca file (Cowork desktop atau Claude.ai Pro/Team).
Mode Otomatis โ Claude kerjakan semua
Pakai mode ini kalau Anda pakai Cowork (desktop) atau Claude.ai Pro/Team (yang bisa baca file dari folder/attachment). Anda tidak perlu edit apapun di prompt โ Claude yang kerjakan semua.
- Siapkan file project Anda โ drop folder project ke chat Claude (Cowork: mount folder; Claude.ai Pro: drag-drop file-file project ke chat).
- Copy prompt di bawah, paste ke chat Claude (di bawah file-file yang sudah Anda drop).
- Jawab 3 pertanyaan dari Claude: department, nama Anda, dan konfirmasi nama project + ID folder yang Claude detect.
- Tunggu Claude generate folder ID, project.json, normalize data record, dan compliance check otomatis. Selesai.
Catatan: Mode Otomatis butuh Claude yang bisa baca file. Kalau Anda pakai Claude.ai versi gratis (free), pakai tab Manual sebelah.
Prompt Otomatis
Copy semua, paste ke chat Claude. Tidak perlu edit apapun.
Saya Creator di PT Esteh Indonesia Makmur (Esteh Group). Saya akan upload project saya ke Esteh Internal Projects Portal (https://portal.estehindonesia.com).
============================================================
TUGAS ANDA (CLAUDE)
============================================================
Bantu saya menyiapkan project saya untuk di-upload ke portal. Saya akan kasih file project saya (HTML, CSS, JS, data, gambar, dll). Anda yang strukturkan ulang sesuai format portal SECARA OTOMATIS.
ATURAN UTAMA โ JANGAN DILANGGAR:
1. JANGAN ubah isi, logic, atau desain file project saya. Anda hanya format ulang STRUKTUR FOLDER + tambah file METADATA.
2. JANGAN buat file di luar folder project ini. Folder lain di komputer saya read-only.
3. SEBELUM mulai eksekusi, TANYA SAYA 3 hal: department, nama saya, dan konfirmasi nama project + ID folder yang Anda detect.
============================================================
KONTEKS PORTAL โ WAJIB DIBACA SEBELUM ANDA NOLAK ATAU FLAG "TIDAK BISA"
============================================================
Portal Esteh punya 2 LAPISAN TERPISAH. Jangan dicampur:
LAPISAN 1 โ PROJECT HTML (yang saya kasih ke Anda)
Pure static: HTML5 + CSS3 + Vanilla JS. Di-serve oleh web server portal.
TIDAK punya runtime backend sendiri. Tidak ada Node/PHP/Python
di dalam folder project.
LAPISAN 2 โ BACKEND TERPUSAT (portal-app, sudah LIVE, dikelola IT)
Project saya MEMANGGIL service di lapisan ini dari frontend
pakai HTTP API + SDK. Anda TIDAK perlu (dan TIDAK boleh) bangun
backend baru di dalam folder project saya.
SERVICE TERPUSAT YANG SUDAH TERSEDIA โ LANGSUNG PAKAI:
- Bridge SDK: window.CoworkBridge('slug-bridge')
Simpan & baca record (ticket, task, customer, approval, leads, dll).
Method: bridge.list(filter), bridge.get(id), bridge.create(data),
bridge.update(id, data), bridge.delete(id).
COCOK untuk: service desk ticketing, CRM, approval system,
task tracker, expense management, dll.
- M365 Email OUTBOUND (Microsoft Graph API, sudah live)
Kirim email notifikasi dari portal (mis. "ticket baru dibuat",
"status berubah jadi resolved"). Wire-nya di-config oleh IT Admin
per project per event Bridge. Project saya cukup trigger event
via bridge.create / bridge.update โ IT yang setup template +
recipient + escalation rules.
- M365 Email INBOUND (worker baca mailbox -> auto-create record)
Tersedia ON-DEMAND. Kalau project saya butuh fitur "email yang
masuk ke alamat tertentu otomatis jadi ticket", LAPORKAN ke saya.
Saya yang minta IT bangun inbound worker untuk Bridge saya.
JANGAN coba listener webhook / Graph subscription di project HTML
โ itu memang tidak bisa di static, tapi BACKEND TERPUSAT yang
handle, bukan tugas Anda di project.
ATURAN INTERPRETASI YANG WAJIB ANDA PEGANG:
- KALAU project saya butuh kapabilitas server-side (parse email masuk,
scheduled job/cron, webhook listener pihak ketiga, integrasi API
yang butuh secret, file upload publik tanpa login, dll), JANGAN
bilang "tidak bisa karena static". Yang benar: project HTML cuma
jadi UI + panggil Bridge SDK. Logic server-side adalah pekerjaan
BACKEND TERPUSAT, dan IT yang bangun on-demand.
- LAPORKAN ke saya kapabilitas server-side apa yang dibutuhkan,
TAPI tetap LANJUT generate project HTML-nya pakai Bridge SDK.
Project bisa live duluan dengan input manual, lalu IT wire
inbound/outbound nanti tanpa ubah project.
- Service desk ticketing CUKUP dibuat sebagai UI static + Bridge SDK.
Auto-create dari email masuk = task IT untuk wire inbound worker
ke Bridge yang sama. Project tidak perlu tahu detail itu.
============================================================
LANGKAH YANG ANDA KERJAKAN
============================================================
LANGKAH 1 โ DETEKSI NAMA PROJECT
- Baca <title> dari HTML utama, <h1> pertama, atau README kalau ada.
- Tentukan nama project (frasa pendek 3-7 kata).
- Generate ID folder dengan aturan:
โข HURUF KECIL SEMUA
โข PEMISAH KATA pakai strip "-" (BUKAN spasi atau underscore)
โข Hanya huruf, angka, dan strip
โข Contoh: "Dashboard Penjualan Q1 2026" -> "dashboard-penjualan-q1-2026"
LANGKAH 2 โ BUNGKUS DALAM FOLDER ID
- Buat folder dengan nama ID (lihat aturan ID di LANGKAH 1).
- Pindahkan SEMUA file project ke dalam folder itu.
- Pastikan path relatif di HTML (src, href) masih valid setelah pindah.
- File entry HARUS bernama index.html. Kalau file utama bukan index.html, rename + update referensi internal.
LANGKAH 2b โ DETEKSI MULTI-VIEW (UNTUK TICKETING/HELPDESK/CRM/APPROVAL)
Project tipe ini biasanya butuh BEBERAPA VIEW dengan audience berbeda:
- Service desk ticketing : view ADMIN (IT staff, full CRUD ticket) + view PUBLIC (user biasa, cuma input + tracking by ID/email)
- CRM pipeline : view SALES (edit lead, log aktivitas) + view MANAGER (dashboard agregat read-only)
- Approval system : view REQUESTER (input + tracking sendiri) + view APPROVER (queue review + approve/reject)
- Project management : view TIM (update progress) + view STAKEHOLDER (read-only milestone status)
KALAU project sumber saya tampak butuh multi-view (ada mention kata "admin", "public", "tracking", "form user", "dashboard manager", "approver", dll), TANYA SAYA dulu:
1. "Apakah project ini butuh beberapa view dengan audience berbeda?"
2. Kalau YA: "Sebutkan setiap view + audience + permission read/write yang dibutuhkan"
KALAU multi-view dikonfirmasi, jangan generate 1 folder. Generate FOLDER ID TERPISAH per view:
helpdesk-it-admin/ โ admin view (IT staff)
helpdesk-it-tracking/ โ public view (user lacak ticket)
Aturan per folder:
- Suffix ID yang JELAS peran-nya: -admin, -tracking, -sales, -manager, -requester, -approver, dst
- project.json di setiap folder dengan visibility + bridge_role yang sesuai:
โข Write role (admin/sales/approver/tim):
"visibility": "shared", "bridge_role": "write"
โข Read role (public/manager/requester/stakeholder):
"visibility": "public" (kalau memang publik) atau "shared", "bridge_role": "read"
- Field "bridge_role" di project.json adalah HINT untuk IT Admin Portal saat attach ke Bridge nanti
(IT Admin yang manual set role saat attach, tapi nilai ini bantu konsistensi + dokumentasi)
- SDK CoworkBridge dipanggil dengan ID bridge YANG SAMA di SEMUA folder, contoh:
const bridge = window.CoworkBridge('ticket-system-it');
- Setiap view render UI yang sesuai role-nya:
โข Write role: table list record + form Create/Edit/Delete + filter status
โข Read role: form input record baru (kalau allowed) + tracking by ID atau filter by owner=email_user_sendiri (read-only display)
- Style + brand color SAMA di semua view (tetap pakai #0E8141 + Esteh Sans) โ konsistensi UX
CONTOH STRUKTUR OUTPUT multi-view service desk IT:
helpdesk-it-admin/
โโโ index.html (dashboard IT staff: list semua ticket, edit, reply)
โโโ style.css
โโโ app.js (panggil bridge.list, bridge.update, bridge.create)
โโโ project.json (visibility: "shared", bridge_role: "write")
helpdesk-it-tracking/
โโโ index.html (form input user + lacak ticket sendiri)
โโโ style.css
โโโ app.js (panggil bridge.create untuk input, bridge.list dengan filter owner)
โโโ project.json (visibility: "public", bridge_role: "read")
KEDUA folder ini akan di-upload sebagai 2 project terpisah ke portal. IT Admin yang attach keduanya ke Bridge yang sama dengan role berbeda.
LANGKAH 2c โ TENTUKAN AUDIENS & VISIBILITY (WAJIB TANYA SAYA)
Ini menentukan project ini muncul di mana (portal internal saja, atau juga di services untuk pihak luar) dan siapa yang boleh akses. TANYA SAYA: "Project ini untuk siapa?" lalu petakan ke salah satu nilai visibility portal Esteh:
- "private" -> hanya saya (pembuat) + Admin IT. Cocok untuk draft / dashboard pribadi.
- "department" -> semua orang di department saya. Cocok untuk laporan internal divisi.
- "shared" -> hanya orang / grup / department tertentu yang dipilih. BISA termasuk mitra
external yang sudah diundang (akun "service"). Cocok untuk berbagi terbatas.
- "public" -> Public (Internal Only): SEMUA karyawan internal Esteh Group (portal.estehindonesia.com).
TIDAK untuk pihak luar.
- "public_ext" -> Public (Internal & External): semua internal + mitra/vendor/tim outlet (pihak LUAR).
ATURAN PORTAL vs SERVICES (PENTING โ ada 2 setelan TERPISAH: VISIBILITY + AKSES VIA):
- VISIBILITY (daftar di atas) = SIAPA yang boleh melihat.
- AKSES VIA = DI DOMAIN MANA project muncul: "Portal saja" / "Services saja" / "Portal & Services".
Setelan ini dipilih di portal saat Buat/Kelola Project (BUKAN di file metadata).
- Project muncul di services.estehindonesia.com HANYA JIKA: Akses via = Services (atau Keduanya)
DAN visibility = public / public_ext. Jadi "public_ext" SAJA TIDAK cukup โ Akses via harus Services juga.
- Audiens internal saja -> Akses via "Portal saja" + visibility internal (private/department/shared/public).
- Audiens termasuk pihak LUAR / project tracking untuk pengaju -> Akses via "Services saja" (atau Keduanya)
+ visibility "public" (atau "public_ext" lalu IT menambah email mitra). Pihak luar TIDAK pernah bisa masuk
portal.estehindonesia.com; mereka hanya lihat project yang di-share di services.estehindonesia.com.
- Kalau saya ragu: default visibility "private" + Akses via "Portal saja". Catat rekomendasi Anda โ IT bisa ubah.
LANGKAH 3 โ GENERATE project.json (FILE BARU)
Buat file project.json di root folder ID dengan struktur:
{
"name": "<nama-project-readable-yang-Anda-detect>",
"description": "<satu-kalimat-deskripsi-dari-konten-project>",
"department": "<ID-department-dari-jawaban-saya>",
"owner": "<dari-jawaban-saya>",
"visibility": "<private | department | shared | public | public_ext โ sesuai LANGKAH 2c>",
"surface_rekomendasi": "<portal | services | both โ rekomendasi 'Akses via'; nilai ini SAYA set di portal saat Buat Project, bukan dari file>",
"audience_note": "<1 kalimat: untuk siapa project ini, mis. 'internal divisi marketing' atau 'mitra outlet + internal / tracking pengaju'>",
"entry": "index.html"
}
UNTUK MULTI-VIEW PROJECT (kalau LANGKAH 2b berlaku), struktur project.json di setiap folder:
{
"name": "<nama-view-yang-readable>", (contoh "Helpdesk IT โ Admin Dashboard")
"description": "<peran-view-ini>", (contoh "Dashboard untuk IT staff handle ticket")
"department": "<dari-jawaban-saya>",
"owner": "<dari-jawaban-saya>",
"visibility": "shared", (atau "public" โ sesuai aturan LANGKAH 2b per role)
"entry": "index.html",
"bridge_role": "write" (atau "read" โ hint untuk IT Admin saat attach Bridge)
}
LANGKAH 3b โ SUMBER DATA (PILIH: STATIS atau LIVE)
Tanya saya kalau ragu. Ada 2 cara project memperoleh data:
A. DATA STATIS (embed) โ untuk snapshot yang TIDAK berubah (laporan periode tertentu, materi tetap).
Embed data dari CSV/Excel ke file .js / .json di dalam folder project. Tidak butuh koneksi apa pun.
B. DATA LIVE dari OneDrive (sudah AKTIF) โ untuk dashboard/laporan yang DATANYA SERING DIUPDATE.
Project TIDAK meng-embed data. Sebaliknya:
- File data (Excel/CSV) ditaruh di folder OneDrive project (folder OneDrive bernama = ID project).
- Dashboard mengambil data via fetch ke endpoint portal:
fetch('/api/projects/<ID-department>/<ID-project>/data?file=<nama-file>', { credentials: 'include' })
(kalau di folder OneDrive cuma ada 1 file data, '?file=' boleh dikosongkan โ otomatis terdeteksi)
- Respons JSON: { ok, columns: [...], rows: [ {...}, ... ], row_count, fetched_at }.
- Untuk tombol "Refresh Data", tambahkan '&refresh=1' pada URL (paksa ambil ulang dari OneDrive).
- Render chart/tabel dari "rows". Data ikut versi terbaru di OneDrive otomatis.
LAPORKAN ke saya kalau project pakai cara B + sebutkan nama file data yang diharapkan,
supaya saya menaruh file-nya di folder OneDrive yang benar.
(Untuk APLIKASI KELOLA RECORD seperti ticketing/CRM/approval, gunakan Bridge SDK di KONTEKS PORTAL โ
itu jalur berbeda untuk MENYIMPAN/MENGUBAH record, bukan sekadar menampilkan data tabel.)
LANGKAH 4 โ NORMALIZE DATA RECORD (KALAU ADA)
DEFINISI LIST RECORD: array of object yang merepresentasikan entitas (task, ticket, customer, approval, milestone, leads, expense, dll). Bisa berupa array di file .json, array hardcoded di .js, atau data dari CSV/Excel attached.
Kalau project SAYA PUNYA list record -> normalkan ke schema portal Esteh berikut. Kalau TIDAK punya (landing page, brosur, slideshow tanpa data dinamis) -> SKIP langkah ini.
a) FIELD NAME WAJIB per record:
id, name, department, status, owner, created_at, updated_at
Kalau nama field lama beda (taskId, judul, pic_email, tgl_dibuat, dll), RENAME ke nama wajib di atas.
Field tambahan project-specific BOLEH (outlet_code, campaign_id, dll), tapi 7 field wajib HARUS ada.
b) ID PATTERN per tipe record:
โข Task : TASK-{DEPT3}-{NNN} -> TASK-MKT-001
โข Ticket : TKT-{YYMMDD}-{NNN} -> TKT-260524-001
โข Approval : APR-{YYMMDD}-{NNN} -> APR-260524-001
โข Milestone: MS-{PROJECT_CODE}-{NN} -> MS-CAMP01-01
โข Customer : CUS-{NNNN} -> CUS-0001
DEPT3 = singkatan 3 huruf department (mis. IT, MKT, FIN, HR, OPS, RND, QA) โ bebas, yang penting konsisten.
Tipe lain: buat pattern sejenis {PREFIX3-5}-{NNN} atau {PREFIX}-{YYMMDD}-{NNN}.
c) STATUS ENUM per tipe (lowercase snake_case):
โข task : pending / in_progress / done / cancelled / blocked
โข ticket : open / assigned / in_progress / resolved / closed
โข approval : draft / submitted / review / approved / rejected
โข milestone: not_started / in_progress / done / delayed
โข customer : active / inactive / prospect
Kalau status lama beda ("selesai", "complete", "1", true) -> CONVERT ke enum di atas.
d) TIMESTAMP FORMAT โ ISO 8601 dengan timezone:
"2026-05-24T14:30:00+07:00" (Asia/Jakarta) atau "2026-05-24T07:30:00Z" (UTC).
Kalau lama "24/05/2026" atau Unix epoch -> CONVERT ke ISO 8601.
e) NAMING CONVENTION:
Field name : snake_case lowercase (created_at, NOT createdAt)
Enum value : snake_case lowercase (in_progress, NOT inProgress)
ID prefix : UPPERCASE (TASK-, TKT-, APR-)
LANGKAH 5 โ TECH STACK COMPLIANCE CHECK
Pastikan project saya compliance dengan aturan portal:
- FOLDER PROJECT pure static (HTML5 + CSS3 + Vanilla JS). Library via CDN public OK.
- TIDAK ada server backend di dalam FOLDER PROJECT (no Node/PHP/Python source code, no build step).
(Ingat: backend terpusat portal-app sudah ada untuk service Bridge & Email. Lihat
"KONTEKS PORTAL" di atas. Project cuma panggil service-nya dari frontend.)
- TIDAK ada external API call yang butuh API key rahasia di kode frontend.
(Kalau perlu, panggil lewat Bridge SDK / minta IT bangun proxy di backend terpusat.)
- Semua path asset RELATIF (./images/logo.png), bukan absolut (/images/ atau C:/...).
- <html lang="id">, <meta charset="UTF-8">, <meta name="viewport">, <title> jelas.
- Semua <img> punya alt. Heading hierarchy benar (h1 -> h2 -> h3).
- Layout responsive (desktop 1920px + mobile 375px).
- Warna brand: hijau #0E8141 sebagai primary, putih + abu netral.
BRANDING ESTEH (WAJIB di tiap project):
- Di <head> tambahkan: <link rel="stylesheet" href="/brand/tokens.css"> (memuat font resmi "Esteh Sans" + token warna Esteh). Lalu set font halaman: font-family: 'Esteh Sans', system-ui, sans-serif;
- Tampilkan logo Esteh Group KECIL di kiri atas (jangan besar, seperti logo di portal): <img src="/brand/logo.png" alt="Esteh Group" style="height:32px;width:auto">
- PENGECUALIAN aturan path relatif: aset brand portal (/brand/tokens.css, /brand/logo.png, /fonts/...) memang pakai path absolut /brand/ dan /fonts/ โ itu dilayani portal di KEDUA domain (portal & services), bukan file project. Aset MILIK project tetap relatif (./...).
Kalau ada yang tidak compliance, PERBAIKI tanpa ubah logic/desain inti. LAPORKAN apa yang Anda ubah.
Kalau project butuh kapabilitas server-side, JANGAN tolak โ pakai Bridge SDK + laporkan
ke saya kapabilitas backend apa yang perlu IT wire (lihat KONTEKS PORTAL di atas).
LANGKAH 6 โ OUTPUT
Format output:
KALAU ANDA DI COWORK / Claude Code (file access):
- Tulis langsung file ke disk di dalam folder ID.
- Setelah selesai, kasih saya laporan singkat:
โข Nama folder ID yang dibuat (atau LIST folder kalau multi-view)
โข Tree lengkap file & folder di dalamnya (per folder kalau multi-view)
โข Daftar perubahan (rename field, normalize data, dll)
โข Konfirmasi: tidak ada file di luar folder ID yang Anda modify
โข Kalau multi-view: rekomendasi ID bridge yang sebaiknya dibuat IT Admin untuk attach kedua project ini
KALAU ANDA DI CLAUDE.AI WEB (no file access):
- Output dalam blok kode format:
=== FILE: <id>/index.html ===
... isi ...
=== FILE: <id>/project.json ===
... isi ...
- Untuk multi-view: blok-blok file dengan ID berbeda satu per satu:
=== FILE: helpdesk-it-admin/index.html ===
...
=== FILE: helpdesk-it-tracking/index.html ===
...
- Saya akan copy-paste sendiri ke file di komputer.
- Sertakan juga laporan singkat seperti di atas.
============================================================
KALAU AMBIGU, TANYA SAYA โ JANGAN ASUMSI
============================================================
Skenario yang HARUS Anda tanya:
- Ada beberapa file .html, tidak jelas mana index utama.
- Ada beberapa array data, tidak jelas mana yang list record perlu di-normalize.
- Nama project tidak jelas dari <title>/h1 (terlalu generic seperti "Document" atau "Untitled").
- Format data lama yang Anda ragu cara convert-nya.
============================================================
MULAI SEKARANG
============================================================
Langkah pertama Anda:
1. KONFIRMASI Anda sudah baca semua file project saya โ sebutkan jumlah file + nama-nama file utamanya.
2. TANYA hal-hal berikut di awal:
a. ID department saya (lihat daftarnya di portal -> menu "Buat Baru"; contoh: it, marketing, finance, hr, esteh-indonesia, dst). Tulis ID-nya yang huruf kecil pakai strip.
b. Nama saya (huruf kecil tanpa spasi, contoh: lisa, andi, sarah)
c. Konfirmasi nama project + ID folder yang Anda detect (saya bisa koreksi)
d. AUDIENS project ini untuk siapa? (lihat LANGKAH 2c โ internal saja / department / orang tertentu / semua internal / termasuk pihak luar). Ini menentukan visibility + apakah project tampil di services.estehindonesia.com.
e. SUMBER DATA: statis (embed) atau live dari OneDrive? (lihat LANGKAH 3b)
f. (KALAU project tampak multi-view โ ticketing/CRM/approval/dst, lihat LANGKAH 2b)
"Apakah project ini butuh beberapa view dengan audience berbeda? Kalau ya, sebutkan setiap view + audience + permission read/write." โ TANYA HANYA kalau saya tampak butuh multi-view, untuk project single-view skip pertanyaan ini.
3. TUNGGU jawaban saya.
4. BARU mulai eksekusi LANGKAH 1-6 setelah saya konfirmasi.
JANGAN langsung output file sebelum saya konfirmasi. Tips โ Supaya Mode Otomatis Lancar
- Pastikan Claude sudah baca file Anda sebelum paste prompt. Di Cowork: tunggu indikator working folder hijau muncul. Di Claude.ai Pro: drop file-file dulu, tunggu thumbnail file muncul, baru paste prompt.
- Jawab pertanyaan Claude dengan jelas. Misal department: tulis
marketingsaja (bukan "Marketing Dept" atau "Tim Marketing"). Owner: tulis nama tanpa spasi (lisa, andi, sarah). - Kalau Claude salah detect nama project, koreksi langsung saat dia tanya konfirmasi. Contoh: "Bukan, project ini namanya 'Kampanye Lebaran 2026', ID-nya kampanye-lebaran-2026."
- Mode Otomatis aman untuk project existing. Claude diperintahkan JANGAN ubah logic/desain โ hanya format ulang struktur folder + tambah file metadata.
Mode Manual โ Anda edit prompt sendiri
Pakai mode ini kalau Claude Anda tidak bisa baca file (Claude.ai versi gratis, atau chat tanpa attachment support). Anda perlu copy prompt, lalu edit bagian dalam kurung siku [...] sebelum paste ke chat Claude.
Prompt Manual Template
Copy template di bawah, paste ke chat Claude, edit bagian dalam kurung [...] sesuai kebutuhan Anda.
Saya Creator di PT Esteh Indonesia Makmur (Esteh Group). Saya butuh project web statis yang akan di-upload ke Esteh Internal Projects Portal (https://portal.estehindonesia.com).
============================================================
TUGAS
============================================================
[ Jelaskan apa yang Anda ingin Claude buat. Contoh:
- "Buat dashboard analitik penjualan harian dari data CSV terlampir, dengan grafik bar + line + filter per outlet."
- "Buat microsite kampanye Lebaran 2026 dengan landing page + galeri foto + form pendaftaran customer (data form di-save ke localStorage saja)."
- "Buat report keuangan Q1 2026 interaktif dari Excel terlampir, lengkap dengan ringkasan + tabel + grafik." ]
============================================================
KONTEKS PORTAL โ WAJIB DIBACA SEBELUM NOLAK ATAU FLAG "TIDAK BISA"
============================================================
Portal Esteh punya 2 LAPISAN TERPISAH. Jangan dicampur:
LAPISAN 1 — PROJECT HTML (yang saya minta Anda buat)
Pure static: HTML5 + CSS3 + Vanilla JS. Di-serve oleh web server portal.
TIDAK punya runtime backend sendiri. Tidak ada Node/PHP/Python
di dalam folder project.
LAPISAN 2 — BACKEND TERPUSAT (portal-app, sudah LIVE, dikelola IT)
Project saya MEMANGGIL service di lapisan ini dari frontend
pakai HTTP API + SDK. Anda TIDAK perlu (dan TIDAK boleh) bangun
backend baru di dalam folder project saya.
SERVICE TERPUSAT YANG SUDAH TERSEDIA — LANGSUNG PAKAI:
• Bridge SDK: window.CoworkBridge('slug-bridge')
Simpan & baca record (ticket, task, customer, approval,
leads, dll). Method: bridge.list(filter), bridge.get(id),
bridge.create(data), bridge.update(id, data), bridge.delete(id).
COCOK untuk: service desk ticketing, CRM, approval system,
task tracker, expense management, dll. Lihat tab "Data Bridge"
di Help Center portal untuk SDK lengkap.
• M365 Email OUTBOUND (Microsoft Graph API, sudah live)
Kirim email notifikasi dari portal (mis. "ticket baru dibuat",
"status berubah jadi resolved"). Wire-nya di-config oleh IT
Admin per project per event Bridge. Project saya cukup trigger
event via bridge.create / bridge.update — IT yang setup
template + recipient + escalation rules.
• M365 Email INBOUND (worker baca mailbox -> auto-create record)
Tersedia ON-DEMAND. Kalau project saya butuh fitur "email yang
masuk ke alamat tertentu otomatis jadi ticket", LAPORKAN ke saya.
Saya yang minta IT bangun inbound worker untuk Bridge saya.
JANGAN coba listener webhook / Graph subscription di project HTML
— itu memang tidak bisa di static, tapi BACKEND TERPUSAT
yang handle, bukan tugas Anda di project.
ATURAN INTERPRETASI YANG WAJIB ANDA PEGANG:
• KALAU project saya butuh kapabilitas server-side (parse email
masuk, scheduled job/cron, webhook listener pihak ketiga,
integrasi API yang butuh secret, file upload publik tanpa login,
dll), JANGAN bilang "tidak bisa karena static". Yang benar:
project HTML cuma jadi UI + panggil Bridge SDK. Logic server-side
adalah pekerjaan BACKEND TERPUSAT, dan IT yang bangun on-demand.
• LAPORKAN ke saya kapabilitas server-side apa yang dibutuhkan,
TAPI tetap LANJUT generate project HTML-nya pakai Bridge SDK.
Project bisa live duluan dengan input manual, lalu IT wire
inbound/outbound nanti tanpa ubah project.
• Service desk ticketing CUKUP dibuat sebagai UI static +
Bridge SDK. Auto-create dari email masuk = task IT untuk wire
inbound worker ke Bridge yang sama. Project tidak perlu tahu
detail itu.
============================================================
PERSYARATAN WAJIB โ JANGAN dilanggar
============================================================
1. STRUKTUR FILE:
- WAJIB: Bungkus SEMUA file & folder project di dalam SATU folder.
Nama folder ini = nama project Anda, dengan ATURAN PENULISAN berikut:
• HURUF KECIL SEMUA (jangan ada huruf besar)
• PEMISAH KATA pakai tanda strip "-" (jangan pakai spasi)
• JANGAN pakai karakter aneh (titik, koma, tanda seru, tanda tanya,
garis miring, kurung, dll). Hanya huruf, angka, dan strip.
CONTOH BENAR :
kampanye-lebaran-2026
dashboard-penjualan-harian
report-keuangan-q1-2026
microsite-produk-baru
laporan-stok-outlet
CONTOH SALAH :
"Kampanye Lebaran 2026" → ada huruf besar & spasi
"dashboard_penjualan" → pakai underscore, harusnya strip "-"
"laporan/q1" → pakai garis miring
"report keuangan!" → ada spasi & tanda seru
- File utama HARUS bernama index.html, taruh di root folder induk.
- File lain: nama lowercase + dash. CONTOH: style.css, app.js, data-q1.json
- Sub-folder boleh: images/, data/, lib/, fonts/, css/, js/
- JANGAN BUAT atau MODIFY file di luar folder induk ini.
Anggap folder lain di komputer saya read-only.
2. PATH RELATIF:
- Semua referensi asset pakai path relatif dari index.html.
- BENAR: <img src="./images/logo.png">
- SALAH: <img src="/images/logo.png"> (slash di depan)
- SALAH: <img src="C:/Users/.../logo.png"> (path absolut komputer)
3. TEKNOLOGI:
- Stack FOLDER PROJECT: HTML5 + CSS3 + Vanilla JS.
- Boleh library via CDN public (Tailwind, Chart.js, D3.js, Plotly, Alpine.js, dll
dari cdn.jsdelivr.net, unpkg.com, cdnjs.cloudflare.com).
- DILARANG di dalam folder project: Node.js server source, PHP, Python backend,
build step. Folder project harus pure static โ buka langsung di browser tanpa server.
- DILARANG: External API call yang butuh API key rahasia di kode frontend.
- INGAT: Larangan di atas hanya untuk ISI FOLDER PROJECT. Backend terpusat
portal-app sudah ada untuk service Bridge & Email (lihat KONTEKS PORTAL
di atas). Project saya panggil service-nya lewat SDK / HTTP — bukan
implementasi backend baru di project.
- GRAFIK (penting biar tidak gagal tampil): kalau pakai Chart.js/Plotly/ApexCharts,
bungkus <canvas> dalam container ber-TINGGI TETAP (mis. <div style="position:relative;height:320px">)
+ set maintainAspectRatio:false; gambar grafik SETELAH elemen terlihat (mis. setelah data fetch /
tab aktif). Untuk grafik sederhana (bar/line/donut) lebih aman pakai SVG/CSS murni tanpa library.
Muat library chart dari cdnjs.cloudflare.com atau cdn.jsdelivr.net (keduanya diizinkan).
4. DATA — pilih salah satu:
A. STATIS (embed): embed data dari CSV/Excel/JSON yang saya attach ke file .js / .json
di project. Jangan minta user upload file lagi saat buka project. Cocok untuk data tetap (snapshot).
B. LIVE dari OneDrive (untuk data yang SERING diupdate): JANGAN embed. Project ambil data
dengan fetch ke endpoint portal:
/api/projects/<ID-department>/<ID-project>/data?file=<nama-file>
(kalau di folder OneDrive project cuma ada 1 file data, '?file=' boleh dikosongkan).
Respons JSON berisi: daftar kolom, baris data, dan waktu ambil. Tambahkan '&refresh=1'
untuk tombol Refresh (paksa ambil ulang). File data ditaruh di folder OneDrive project
(nama folder OneDrive = ID project). LAPORKAN ke saya nama file data yang diharapkan.
5. STRUKTUR DATA RECORD (WAJIB kalau project menyimpan LIST RECORD):
Aturan ini WAJIB diikuti supaya project kompatibel dengan Data Bridge portal
Esteh. "List record" = data berupa array of object yang merepresentasikan
entitas seperti task, ticket, customer, approval, milestone, leads, expense,
dll. Project tanpa list record (landing page, brosur, kampanye visual,
slideshow) DIKECUALIKAN dari rule ini.
5.1 FIELD NAME WAJIB (jangan pakai nama lain):
• id — string unique per record
• name — judul/nama record (string)
• department — ID department (lihat di portal menu "Buat Baru"; mis. it, marketing, finance, hr, esteh-indonesia, dst)
• status — enum sesuai tipe record (lihat 5.3)
• owner — email PIC, format: [email protected]
• created_at — ISO 8601 timestamp
• updated_at — ISO 8601 timestamp
Field opsional umum: progress (number 0-100), tags (array string),
priority (low/medium/high/urgent), due_date (ISO 8601).
Field custom tambahan BOLEH (mis. outlet_code, campaign_id), tapi
JANGAN replace nama field wajib di atas dengan sinonim
("taskId" / "judul" / "nm" / "pic_email" / "tgl_dibuat" → DILARANG).
5.2 ID PATTERN WAJIB (auto-generate dengan max existing ID + 1):
• Task : TASK-{DEPT3}-{NNN} contoh: TASK-MKT-001
• Ticket : TKT-{YYMMDD}-{NNN} contoh: TKT-260524-001
• Approval : APR-{YYMMDD}-{NNN} contoh: APR-260524-001
• Milestone: MS-{PROJECT_CODE}-{NN} contoh: MS-CAMP01-01
• Customer : CUS-{NNNN} contoh: CUS-0001
DEPT3 = singkatan 3 huruf department (mis. IT, MKT, FIN, HR, OPS) โ bebas, yang penting konsisten.
NNN / NNNN = zero-padded counter (001, 002, ...).
5.3 STATUS ENUM WAJIB (jangan pakai sinonim "selesai"/"done"/"1"/"complete"):
• task : pending → in_progress → done
(boleh juga: cancelled, blocked)
• ticket : open → assigned → in_progress → resolved → closed
• approval : draft → submitted → review → approved
(boleh juga: rejected)
• milestone: not_started → in_progress → done
(boleh juga: delayed)
Untuk tipe record di luar daftar ini, pakai status enum yang konsisten
(lowercase, snake_case, value seragam di seluruh dataset).
5.4 FORMAT TIMESTAMP:
created_at & updated_at WAJIB ISO 8601 dengan timezone, contoh:
"2026-05-24T14:30:00+07:00" (Asia/Jakarta) atau
"2026-05-24T07:30:00Z" (UTC). Jangan pakai format "24/05/2026" atau
Unix epoch number.
5.5 NAMING CONVENTION:
• Field name : snake_case lowercase (created_at, due_date)
• Enum value : snake_case lowercase (in_progress, not_started)
• ID prefix : UPPERCASE (TASK-, TKT-, APR-)
Schema lengkap, contoh data, & SDK Bridge ada di tab "Data Bridge" Help
Center portal.
6. RESPONSIVE:
- Layout WAJIB responsive โ works di desktop (1920px) dan mobile (375px).
7. BRANDING ESTEH (WAJIB):
- Warna utama hijau #0E8141, background putih + abu netral. Modern minimal.
- Di <head> tambahkan: <link rel="stylesheet" href="/brand/tokens.css">
(memuat font resmi "Esteh Sans" + token warna). Set font halaman:
font-family: 'Esteh Sans', system-ui, sans-serif;
- Logo Esteh Group KECIL di kiri atas (jangan besar):
<img src="/brand/logo.png" alt="Esteh Group" style="height:32px;width:auto">
- PENGECUALIAN aturan path relatif (poin 2): aset brand /brand/tokens.css, /brand/logo.png,
/fonts/... boleh path absolut karena dilayani portal di kedua domain. Aset milik project tetap relatif.
8. METADATA HTML:
- <title> jelas, <meta charset="UTF-8">, <meta name="viewport">,
lang="id" di tag <html>.
9. AKSESIBILITAS:
- Semua <img> punya alt. Tombol/link teks jelas. Heading hierarchy benar.
10. AUDIENS, VISIBILITY & AKSES VIA (WAJIB tentukan โ 2 setelan TERPISAH):
(a) VISIBILITY = SIAPA yang boleh lihat (TANYA saya kalau ragu):
• private — hanya saya + Admin IT
• department — semua orang di department saya
• shared — orang/grup/department tertentu (boleh termasuk mitra external yang diundang)
• public — SEMUA karyawan internal Esteh Group
• public_ext — internal + PIHAK LUAR (mitra/vendor/tim outlet)
(b) AKSES VIA = DI DOMAIN MANA project muncul (SAYA pilih di portal saat Buat/Kelola Project, bukan dari file):
• Portal saja — hanya portal.estehindonesia.com (internal)
• Services saja — hanya services.estehindonesia.com (mitra/pengaju) — mis. project tracking
• Portal & Services — keduanya
ATURAN: project muncul di services HANYA JIKA Akses via = Services/Keduanya DAN visibility public/public_ext.
- Audiens internal saja -> Akses via "Portal saja" + visibility internal.
- Audiens pihak luar / tracking pengaju -> Akses via "Services saja" (atau Keduanya) + visibility public/public_ext.
Pihak luar tidak pernah bisa masuk portal internal; mereka hanya lihat project yang di-share di services.
Buat juga file project.json di root folder (catatan rekomendasi untuk saya/IT โ nilai final di-set di portal):
=== FILE: <id>/project.json ===
{
"name": "<nama project>",
"description": "<satu kalimat>",
"department": "<ID-department>",
"owner": "<nama-saya>",
"visibility": "private | department | shared | public | public_ext",
"surface_rekomendasi": "portal | services | both",
"audience_note": "<untuk siapa project ini>",
"entry": "index.html"
}
Kalau ragu, set visibility "private" + surface_rekomendasi "portal", lalu beri tahu saya rekomendasinya.
============================================================
OUTPUT YANG SAYA HARAPKAN
============================================================
Nama folder project saya: [GANTI_DENGAN_NAMA_FOLDER_PROJECT_ANDA]
CONTOH cara mengisi (pilih SATU sesuai project Anda, atau buat sendiri):
- kampanye-lebaran-2026
- dashboard-penjualan-harian
- report-keuangan-q1-2026
- microsite-produk-baru
- laporan-stok-outlet
Buat folder dengan nama tersebut. SEMUA file masuk di dalamnya. JANGAN buat
file di luar folder ini.
Format output per file:
=== FILE: <id>/index.html ===
... isi ...
=== FILE: <id>/project.json ===
... isi (lihat seksi 10) ...
=== FILE: <id>/css/style.css ===
... isi ...
=== FILE: <id>/data/penjualan.json ===
... isi ...
Kalau Anda kerja di Cowork mode / Claude Code (dengan file access), tulis file
langsung ke disk di folder induk tersebut. Kalau di Claude.ai web, output dalam
blok kode di atas.
============================================================
SANITY CHECK DI AKHIR
============================================================
Setelah selesai, jelaskan dalam 5-7 poin:
1. Nama folder induk yang dibuat.
2. Tree lengkap file & folder di dalamnya.
3. File entry point (index.html).
4. Cara test lokal (double-click index.html).
5. Library CDN yang dipakai.
6. Confirmation: tidak ada file di luar folder induk yang Anda modify/buat.
7. Cara upload ke portal.
============================================================
DATA SUMBER
============================================================
[ Pilih salah satu โ sesuaikan dengan mode Claude Anda:
- COWORK MODE (folder sudah di-mount):
"Baca semua file yang ada di folder kerja saya sekarang sebagai data sumber.
File-file ini berisi data project saya. Pahami isinya, lalu generate
project sesuai tugas di atas. JANGAN modify atau hapus file existing โ
hanya buat file baru (HTML/CSS/JS/JSON) atau update file yang memang
Anda perlu update untuk project deliverable."
- CLAUDE WEB / CLAUDE CODE:
Attach file Anda dari OneDrive (drag ke chat). Kalau tidak punya data,
tulis: "Tidak ada data sumber, generate dummy data realistis sesuai
konteks tugas." ] Penting โ Sebelum Kirim Prompt ke Claude
Setelah Anda Copy Prompt di atas, paste ke chat Claude lalu ganti 2 placeholder dalam kurung siku berikut dengan teks Anda sendiri:
-
[ Jelaskan apa yang Anda ingin Claude buat... ]di bagian TUGAS
Tulis deskripsi project Anda. Misal: "Buat dashboard penjualan harian dari data CSV yang saya attach, dengan grafik bar + filter per outlet." -
[GANTI_DENGAN_NAMA_FOLDER_PROJECT_ANDA]di bagian OUTPUT
Tulis nama folder project Anda, dengan aturan: huruf kecil semua, pakai strip "-" sebagai pemisah kata (bukan spasi atau underscore). Misal:dashboard-penjualan-harianataukampanye-lebaran-2026.
Kenapa harus pakai format ini? Nama folder akan jadi URL project Anda di portal (misal portal.estehindonesia.com/p/marketing/dashboard-penjualan-harian). Spasi & karakter aneh akan dirubah otomatis dan bisa bikin URL jelek atau error saat upload.
Titip Project ke IT/Creator (lewat Catatan Project)
Tidak punya akses Claude untuk membangun sendiri, atau ingin dibantu? Pakai cara ini. Anda cukup menyiapkan bahan (prototype + file data) dan 1 file catatan yang menjelaskan project Anda, taruh di folder department Anda di OneDrive, lalu tim IT atau rekan Creator yang akan men-generate project final-nya ke portal. Project tetap akan ter-flag milik department Anda (pihak yang membantu hanya jadi pengelola/pembuatnya). Template prompt di bawah membantu Anda membuat file catatan itu dengan cepat.
Alurnya
- Siapkan bahan project Anda: file prototype (kalau ada) + file data (Excel/CSV) + gambar pendukung.
- Buka Claude Anda, lampirkan bahan tadi, lalu copy-paste prompt di bawah. Claude akan membuatkan file
CATATAN-PROJECT.md. - Bungkus semua jadi 1 folder (nama project, huruf kecil pakai strip, mis.
laporan-stok-outlet): isi = catatan + prototype + file pendukung. - Jadikan folder itu satu file ZIP (klik kanan folder โ "Compress" / "Kirim ke โ Folder terkompresi (zip)").
- Kirim file ZIP itu ke rekan Creator yang membantu atau ke tim IT lewat media apa pun (WhatsApp / email) โ tidak perlu akses OneDrive department. Mereka akan men-generate project-nya ke portal (pilih department tujuan = department Anda saat membuat).
Prompt โ Buat File Catatan Project
Lampirkan bahan Anda ke Claude lebih dulu, baru paste prompt ini.
Saya karyawan PT Esteh Indonesia Makmur (Esteh Group). Saya punya bahan project (prototype + file data) yang ingin saya titipkan ke tim IT untuk di-generate menjadi project di Esteh Internal Projects Portal. Saya BELUM butuh project jadinya sekarang โ saya hanya perlu bantuan menyiapkan catatan + merapikan folder. TUGAS ANDA: Bantu saya membuat SATU file catatan bernama CATATAN-PROJECT.md yang menjelaskan project saya, supaya tim IT bisa paham dan men-generate-nya tanpa perlu banyak tanya lagi. LANGKAH: 1. Baca semua file yang saya lampirkan (prototype, data Excel/CSV, gambar, dll). 2. Tanyakan ke saya hal yang belum jelas (nama project, tujuan, siapa penggunanya). 3. Setelah jelas, buatkan file CATATAN-PROJECT.md dengan isi persis seperti kerangka di bawah. KERANGKA ISI CATATAN-PROJECT.md: # Nama Project [nama yang mudah dipahami] ## Department [department saya, mis. Esteh Marketing & Promotion / Corporate Finance & Strategy / IT] ## Penjelasan Singkat [1-2 paragraf: project ini apa, untuk apa, masalah yang ingin diselesaikan] ## Siapa yang Akan Mengakses (Audiens) [pilih yang paling sesuai โ ini menentukan project tampil di portal internal saja, atau juga di services untuk pihak luar: - hanya saya (draft/pribadi) - tim department saya saja - orang / grup tertentu (sebutkan siapa) - SEMUA karyawan internal Esteh Group - TERMASUK PIHAK LUAR / untuk pengaju di services (mitra / vendor / tim outlet / form tracking) -> IT akan set "Akses via = Services" + visibility Public saat membuat project, supaya tampil di services.estehindonesia.com] ## Struktur Data [jelaskan tiap file data: nama file, isinya apa, daftar kolom + tipe (teks/angka/tanggal), dan contoh 1-2 baris] ## Cara Baca / Hubungan Antar File [kalau ada beberapa file, jelaskan bagaimana saling terhubung โ mis. kolom mana yang jadi penghubung antar file] ## Data Perlu Update Berkala? [apakah data ini akan sering diperbarui? - YA -> IT akan menyambungkan dashboard ke file Excel/CSV di OneDrive supaya datanya selalu ikut versi terbaru (live). - TIDAK -> data dipakai sebagai snapshot tetap saat ini.] ## Hasil yang Diharapkan [bentuk akhir yang diinginkan: dashboard? laporan interaktif? microsite? Sebutkan grafik/tabel/fitur yang diinginkan dan untuk siapa] ## File yang Saya Lampirkan [daftar nama file prototype + file pendukung] ## Catatan Tambahan [hal lain yang perlu IT tahu: data di-update berkala? ada angka rahasia? ada deadline?] SETELAH FILE CATATAN SELESAI: 1. Bungkus SEMUA dalam SATU folder. Nama folder = nama project, dengan aturan: huruf kecil semua, pemisah kata pakai strip "-", tanpa spasi/karakter aneh. Contoh: laporan-stok-outlet, dashboard-penjualan-harian. 2. Isi folder: file CATATAN-PROJECT.md + file prototype + semua file pendukung (data, gambar). 3. Jadikan folder itu satu file ZIP (klik kanan folder โ "Compress" / "Kirim ke โ Folder terkompresi (zip)"). 4. Kirim file ZIP itu ke creator yang membantu atau ke tim IT lewat media apa pun (WhatsApp / email). Tidak perlu akses OneDrive department. PENTING: Anda TIDAK perlu membangun project jadinya. Cukup bantu saya menyiapkan catatan yang jelas + merapikan folder. Tim IT yang akan men-generate project final dari bahan ini โ termasuk otomatis menerapkan logo Esteh Group + font Esteh Sans, jadi Anda tidak perlu memikirkan tampilan brand-nya.
Kenapa pakai cara ini?
Dengan catatan yang jelas + bahan terkumpul rapi di satu folder, tim IT bisa langsung men-generate project Anda tanpa bolak-balik tanya. Makin lengkap catatan Anda, makin cepat & akurat hasilnya. Untuk Anda yang sudah bisa membangun sendiri lewat Claude, pakai tab Prompt Template dan upload langsung lewat menu Buat/Kelola project.
Datanya sering berubah โ bisa dashboard tampil data terbaru otomatis?
Bisa. Taruh file data (Excel/CSV) di folder OneDrive project Anda, lalu dashboard mengambilnya lewat koneksi data portal: /api/projects/<dept>/<id>/data?file=<nama-file> (kalau cuma 1 file data, ?file= boleh dikosongkan). Begitu Excel di OneDrive diperbarui, dashboard ikut terbaru saat di-refresh. Lihat detailnya di tab Prompt Template / Titip Project ke IT. Verifikasi koneksi di Kelola Project โ Metadata โ Cek Koneksi Data.
Saya bisa pakai Google Sheets sebagai database?
Tidak perlu (dan tidak disarankan โ API key bisa bocor di frontend). Untuk data yang sering berubah, pakai data live dari OneDrive (lihat FAQ di atas). Untuk data tetap (snapshot), cukup embed sebagai file .json di project.
Project saya perlu menyimpan/mengelola record (tiket, form, approval) โ bukan cuma menampilkan data?
Itu pakai Data Bridge โ kotak data bersama supaya dua tampilan (mis. form requester di services + dashboard admin di portal) bisa baca/tulis record yang sama dan sinkron. Fitur ini sedang disiapkan (coming soon). Untuk sekarang, hubungi IT โ IT yang menyiapkan Bridge dan menghubungkan project Anda.
Project saya juga untuk pihak luar (mitra/vendor/outlet). Bagaimana?
Ada 2 setelan di Buat/Kelola Project: (1) Visibility = siapa yang boleh lihat, dan (2) Akses via = di domain mana project muncul (Portal saja / Services saja / Portal & Services). Supaya tampil di services.estehindonesia.com, set Akses via = "Services saja" (atau "Portal & Services") DAN visibility Public (Internal Only / Internal & External). Untuk membatasi ke mitra tertentu, pakai visibility Public (Internal & External) lalu IT menambahkan email mitra di tab Share. Catatan: visibility Public saja TIDAK lagi otomatis muncul di services โ Akses via harus diset ke Services. Pihak luar tidak pernah bisa masuk portal internal.
Boleh pakai gambar dari Unsplash / Pexels?
Boleh untuk demo. Untuk production, download gambarnya dan taruh di folder images/ project Anda. Jangan hot-link URL eksternal โ tidak handal jika web sumbernya down.
File saya terlalu besar (lebih dari 100MB)?
Limit per file 100MB. Untuk video/file besar, simpan di OneDrive dan tempel link saja di project. Atau optimalkan: kompres video (Handbrake), kompres gambar (TinyPNG), pakai SVG untuk ikon.
Saat pakai Claude (Cowork), Claude mengubah file di luar folder project saya. Kenapa?
Itu terjadi kalau Anda meng-mount folder yang terlalu luas ke Claude. Best practice: 1 project = 1 folder khusus, dan mount hanya folder itu. Kalau Claude tetap menyentuh file lain, tegaskan di prompt: "Hanya buat/ubah file di dalam folder project ini; anggap folder lain read-only." Kalau perlu, mulai chat baru.
Bagaimana cara update project yang sudah ke-upload?
Buka Kelola Project โ tab File โ upload ulang file yang berubah. File dengan nama sama akan ter-replace otomatis. URL project tetap sama. (Untuk data live OneDrive, cukup perbarui file Excel/CSV-nya di OneDrive โ tidak perlu re-upload project.)
Saya lupa password portal. Cara reset?
Klik "Lupa password?" di halaman login โ masukkan email Anda โ cek inbox untuk link reset (link berlaku 24 jam). Kalau email tidak masuk, cek folder Spam atau hubungi IT.
Hubungi IT Department
Untuk pertanyaan, request fitur, masalah teknis, atau request upgrade role:
Email IT: [email protected] atau [email protected]
Format Laporan Masalah yang Baik
Bantu IT bantu Anda lebih cepat. Sertakan info berikut saat melapor:
- Email akun Anda di portal.
- URL halaman saat masalah terjadi (contoh:
/creator/manage?slug=...). - Apa yang Anda coba lakukan (langkah-langkah).
- Hasil yang muncul vs hasil yang diharapkan.
- Screenshot kalau memungkinkan.
Fitur Data Bridge โ Tersedia
Data Bridge membuat satu sistem bisa punya beberapa tampilan yang saling sinkron โ misalnya form pembuatan tiket di services.estehindonesia.com (untuk pihak luar) dan dashboard pengelolaan di portal.estehindonesia.com (untuk staf), berbagi data tiket yang sama. Pengaturan bridge dilakukan IT di menu Data Bridge (admin): buat bridge, attach project, lalu project memanggil SDK window.CoworkBridge('id-bridge'). Schema standards di bawah memastikan data antar project konsisten.
Apa itu Data Bridge?
Data Bridge adalah cara menghubungkan 2 project atau lebih agar bisa berbagi data secara otomatis. Anggap seperti kulkas bersama di kantor โ setiap project bisa menaruh data, dan project lain yang butuh bisa mengambil. Tanpa kirim file email, tanpa copy-paste manual, tanpa database baru.
Contoh nyata di Esteh:
- Tim purchasing update progress negosiasi lokasi outlet โ otomatis muncul di project timeline opening outlet milik marketing.
- Tim HR update status recruitment manager outlet โ otomatis muncul di dashboard CEO.
- Tim sekretaris input tiket โ otomatis terlihat oleh IT untuk dikerjakan, dan oleh user untuk tracking status.
Kapan Butuh Bridge?
Gunakan Bridge jika:
- Data perlu dilihat lebih dari 1 project
- Data harus selalu sinkron antar tim
- Ada workflow lintas department
- Project A menulis, project B membaca
Tidak perlu Bridge jika:
- Project standalone, tidak butuh data project lain
- Data hanya untuk internal project itu
- Project hanya menampilkan informasi statis
- Data sangat sensitif (gunakan project private)
Schema Standards โ Nama Field Wajib
Gunakan nama field standar ini agar bridge antar project konsisten. Jangan pakai variasi seperti title, nama, atau nm untuk field yang sama.
| Field | Tipe | Wajib? | Contoh |
|---|---|---|---|
id | string | Wajib | TASK-PUR-001 |
name | string | Wajib | "Negosiasi Lokasi Jakarta" |
department | enum | Wajib | purchasing |
owner | Wajib | "[email protected]" | |
status | enum | Wajib | in_progress |
progress | number 0โ100 | Opsional | 65 |
priority | enum | Opsional | high |
created_at | ISO 8601 | Auto | "2026-05-24T03:12:00Z" |
updated_at | ISO 8601 | Auto | "2026-05-24T08:45:00Z" |
due_date | ISO date | Opsional | "2026-06-30" |
tags | array | Opsional | ["jakarta", "lokasi"] |
Schema Standards โ ID Pattern
Pola ID record yang disepakati seluruh perusahaan. Format: {TYPE}-{SCOPE}-{NUMBER}
| Jenis | Pattern | Contoh |
|---|---|---|
| Task | TASK-{DEPT3}-{NNN} | TASK-PUR-001 |
| Tiket | TKT-{YYMMDD}-{NNN} | TKT-260524-001 |
| Milestone | MS-{PROJECT}-{NN} | MS-OPENJKT-01 |
| Dokumen | DOC-{DEPT3}-{YYMM}-{NNN} | DOC-FIN-2605-001 |
| Asset | AST-{CATEGORY}-{NNN} | AST-IT-001 |
| Vendor | VND-{NNN} | VND-0042 |
| Approval | APR-{YYMMDD}-{NNN} | APR-260524-005 |
Kode department (3-letter): PUR (purchasing), HR (HR), IT (IT), MKT (marketing), FIN (finance), SEK (sekretaris), OPS (operations).
Schema Standards โ Status Enum
Daftar nilai status standar berdasarkan jenis record. Jangan menambah status baru tanpa konfirmasi IT Admin.
| Jenis | Status Allowed |
|---|---|
| Task | pending โ in_progress โ done (boleh cancelled, blocked) |
| Ticket | open โ assigned โ in_progress โ resolved โ closed |
| Approval | draft โ submitted โ review โ approved (boleh rejected) |
| Milestone | not_started โ in_progress โ done (boleh delayed) |
Priority enum: low, medium, high, urgent.
Tambahan Prompt untuk Data Bridge
Hanya pakai bagian ini kalau project Anda butuh terhubung ke Data Bridge (sharing data antar project).
Cara Pakai (4 Langkah):
- Buka tab Prompt Template di Help Center, klik tombol Copy Prompt di atas โ paste ke chat Claude.
- Balik ke tab ini, klik Copy Tambahan di atas โ paste di chat Claude, di bawah prompt utama (jadi 1 chat panjang). Jangan replace prompt utama.
- Edit bagian dalam kurung siku
[...]di kedua bagian (TUGAS, nama folder, NAMA BRIDGE, ROLE, TIPE RECORD). - Kirim ke Claude. Claude akan generate project yang sudah konek ke Bridge.
๐จ Yang dikirim ke Claude (1 chat panjang):
Saya Creator di PT Esteh Indonesia Makmur...
1. STRUKTUR FILE: ...
...
5. STRUKTUR DATA RECORD: ...
...
TAMBAHAN INSTRUKSI: KONEKSI KE DATA BRIDGE
NAMA BRIDGE: outlet-jakarta-pipeline
ROLE PROJECT INI: Read & Write
...
Isi tambahan prompt di bawah ini (klik Copy Tambahan di atas untuk menyalin):
============================================================
TAMBAHAN INSTRUKSI: KONEKSI KE DATA BRIDGE (OPSIONAL)
============================================================
KAPAN PAKAI BAGIAN INI:
Project Anda butuh BERBAGI DATA dengan project lain di portal
(misal: dashboard CEO menarik data dari project HR & Finance).
Kalau project Anda berdiri sendiri (tidak share data ke project
lain), ABAIKAN bagian ini โ jangan paste ke chat Claude.
CATATAN: Schema field, ID pattern, & status enum WAJIB tetap
ikuti aturan di Section 5 STRUKTUR DATA RECORD pada prompt utama
di atas. Bagian ini HANYA tambahan cara konek ke Bridge.
------------------------------------------------------------
DETAIL BRIDGE (isi sesuai info dari IT Admin Anda):
NAMA BRIDGE : [contoh: outlet-jakarta-pipeline]
ROLE PROJECT INI : [pilih satu: Read-Only / Read & Write]
TIPE RECORD UTAMA : [contoh: task, ticket, approval, milestone]
------------------------------------------------------------
1. CARA CONNECT KE BRIDGE (tulis di file JavaScript project):
// Inisialisasi koneksi (ganti NAMA_BRIDGE sesuai isi di atas)
const bridge = window.CoworkBridge('NAMA_BRIDGE');
// Ambil SEMUA data dari bridge
const semuaData = await bridge.list();
// Ambil data dengan filter (contoh: hanya marketing)
const filtered = await bridge.list({
filter: { department: 'marketing' }
});
// Ambil 1 data berdasarkan ID
const satuRecord = await bridge.get('TASK-MKT-001');
// Tambah data baru (HANYA kalau role Read & Write)
await bridge.create({
id: 'TASK-MKT-002',
name: 'Buat konten Instagram Hari Kemerdekaan',
department: 'marketing',
status: 'pending',
owner: '[email protected]'
});
// Update data (HANYA kalau role Read & Write)
await bridge.update('TASK-MKT-001', { status: 'done' });
// Auto-refresh tiap 30 detik (data berubah โ UI re-render)
bridge.onChange((records) => {
renderTable(records);
});
------------------------------------------------------------
2. UI YANG WAJIB ADA:
- LOADING state : tampilkan skeleton/spinner saat fetch pertama
(jangan tampilkan halaman kosong)
- EMPTY state : kalau bridge belum punya data, tampilkan pesan
ramah seperti "Belum ada data. Tambah record
pertama Anda untuk memulai."
- ERROR state : kalau bridge tidak available, tampilkan banner
kuning "Bridge tidak terhubung. Coba refresh."
Jangan crash atau halaman blank.
- SYNC indikator: tampilkan teks kecil di pojok layar seperti
"Sync terakhir: 12 detik lalu"
------------------------------------------------------------
3. SECURITY (penting, jangan dilewat):
- Kalau ROLE = Read-Only:
JANGAN tampilkan tombol "Tambah", "Edit", atau "Hapus".
Sembunyikan atau disable tombol-tombol tersebut.
- JANGAN tampilkan field yang nama-nya diawali "internal_"
atau "private_". Field tersebut khusus untuk sistem.
- Field standar (id, name, department, status, owner,
progress) AMAN ditampilkan ke semua user.
------------------------------------------------------------
4. AUTO-FILL (jangan hard-code, ambil dari sistem):
- owner : window.CoworkUser.email
(email user yang sedang login)
- department : window.CoworkProject.department
(department project ini)
- created_at : sistem isi otomatis saat create
- updated_at : sistem isi otomatis saat update
------------------------------------------------------------
CATATAN:
- Bridge BUKAN realtime โ data refresh tiap 30 detik (polling).
Untuk chat atau notifikasi instan, JANGAN pakai Bridge.
- Sebelum project di-upload, pastikan Bridge sudah dibuat oleh
IT Admin di menu Data Bridge portal. Tanya admin IT kalau
Anda tidak yakin nama bridge apa yang dipakai. Tip: Kalau Anda belum tau nama bridge yang akan dipakai, tanya IT Admin atau buka menu Data Bridge di Admin Portal (perlu role admin). Bridge harus sudah ada di portal sebelum project Anda di-upload.
FAQ Data Bridge
Saya creator, bisakah saya buat bridge sendiri tanpa minta IT?
Bisa, untuk bridge yang melibatkan project di department Anda sendiri. Bridge lintas department butuh approval IT Admin (otomatis ada notifikasi).
Bagaimana kalau saya butuh field yang tidak ada di Schema Standards?
Boleh tambah field custom dengan prefix custom_. Contoh: custom_vendor_score. Field custom tidak otomatis kompatibel dengan project lain โ gunakan hanya untuk satu bridge.
Apakah Data Bridge real-time?
Polling tiap 30 detik (bisa konfigurasi 5โ300 detik). Untuk real-time penuh (chat), gunakan tool lain.
Project saya error "Bridge not found" โ kenapa?
Tiga kemungkinan: nama bridge salah ketik di SDK, project belum dihubungkan ke bridge di portal, atau bridge sudah di-archive admin.
Bagaimana backup data bridge?
Semua data bridge tersimpan di /projects/_data/. IT Admin punya tombol Download Backup di Admin Portal yang generate file .tar.gz.