🎞️ Telegram Slide Processor Workflow
This skill guides the processing of PowerPoint presentations (PPTX) received via Telegram chat, cleaning their filenames, uploading them to Google Drive, and logging them in the Obsidian Vault.
🎯 Core Process: Telegram -> GDrive -> Obsidian Vault
⚠️ CRITICAL WARNING: Process files one by one to ensure accurate naming and categorization.
File Identification & Cleaning:
- Locate: Find the uploaded
.pptxfile in thetelegram_files/directory. - Cleaning: Strip any unique hash or ID (e.g.,
---e6c1d386-70b8-4a22-a975-5d5113907e00) from the filename to make it clean. - GDrive Naming: Ensure the filename on Google Drive matches the title of the presentation exactly (e.g.,
Mengenal Generasi Z: Generasi Digital yang Unik.pptx).
- Locate: Find the uploaded
Content Analysis (Text Extraction):
- Analyze Content: Extract text from the local
.pptxfile.- Tool: Run
uv run /home/bety/.ductor/workspace/skills/slide-inventory/scripts/extract_pptx_ocr.py <path-to-cleaned-pptx>.
- Tool: Run
- Summarize: Create an Executive Brief summarizing the key points of the presentation.
- Determine Category: Based on the content, select one of the following categories:
01 - KLA & Evaluasi02 - PPA & Penanganan Kasus03 - Kesehatan & Parenting04 - Edukasi Remaja & Pernikahan Dini05 - Administrasi & DAK06 - KPHB07 - Uncategorized(Use only as a last resort)
- Analyze Content: Extract text from the local
GDrive Upload & Organization:
- Upload: Upload the cleaned
.pptxfile to the specific Google Drive category folder determined in Step 2.- Tool: Run
gog drive upload <path-to-cleaned-pptx> --parent <category-folder-id> --json
- Tool: Run
- Category Folder IDs (Parent:
1jw8ddZGQElEmQYRK-Su_20YW2xXe8X3c):01 - KLA & Evaluasi:1Un5dT8LpUuXounxEZOteHZLWb8e4Ha5702 - PPA & Penanganan Kasus:151xUe40i5dxjQbJGE1lTD3ijjuSHsOwr03 - Kesehatan & Parenting:1GNv5Ca1wahr_yTD-hcaXHs20SAQuTClm04 - Edukasi Remaja & Pernikahan Dini:1HI19IeVaxO3T3HBIm4lNCpgCjDonrw-J05 - Administrasi & DAK:1KgyXwwPHCwqztZ_BzgZaZTdks9_QsHvs06 - KPHB:1iueqY2bEpxW-BoGWicT2yAvaCAwdY2T707 - Uncategorized:1Yi1hSPKTx5z7ggJAvLUobgvRY8M9wtce
- Link Generation: Extract the
webViewLinkfrom the JSON output of thegog drive uploadcommand to use as the GDrive shareable link.
- Upload: Upload the cleaned
Auto-Tagging:
- Based on the content analysis, generate appropriate tags:
- KLA / Kota Layak Anak ->
#KLA #KLA-2026 - Evaluasi / evidence ->
#evaluasi #KLA - Perlindungan Perempuan ->
#PPA #perempuan - Perlindungan Anak ->
#PPA #anak - Anggaran / keuangan ->
#keuangan #anggaran - Sosialisasi ->
#sosialisasi - Rapat / koordinasi ->
#rapat #koordinasi - Sambutan / seremonial ->
#sambutan - Laporan / capaian ->
#laporan
- KLA / Kota Layak Anak ->
- MANDATORY: Always append
#slide #presentasi [year](e.g.,#2026).
- Based on the content analysis, generate appropriate tags:
Obsidian Inventory Creation:
- Location: Save the inventory note in the corresponding category subfolder under
/home/bety/.ductor/workspace/diary/01-Area/Presentasi/.- Example:
diary/01-Area/Presentasi/04 - Edukasi Remaja & Pernikahan Dini/
- Example:
- Filename:
YYYYMMDD-[slug-judul-presentasi].md(This must match the PPTX base name). - Template Content:
Fill the note based on
03-Referensi/Template/TPL-Inventory-Presentasi.md. Include the Executive Brief and insert the GDrive link into the frontmatter.
- Location: Save the inventory note in the corresponding category subfolder under
📋 Frontmatter Standards
Every generated inventory file MUST contain the following frontmatter structure:
---
title: "[Judul Presentasi Sesuai File]"
tags: ["slide", "presentasi", 2026, "tag-lainnya"]
tanggal: YYYY-MM-DD
kegiatan: ""
audiens: ""
gdrive-link: "[Link GDrive yang di-generate]"
topik: ["[Topik Utama 1]", "[Topik Utama 2]"]
status: "selesai"
---
🛠️ Tools & Resources
- Upload Tool:
gog drive upload(Google CLI) - Target GDrive Folder IDs: See Step 3 above.
- Obsidian Target Path: Specific category subfolders inside
diary/01-Area/Presentasi/. - Extraction Script:
uv run /home/bety/.ductor/workspace/skills/slide-inventory/scripts/extract_pptx_ocr.py