一键导入
guardar-notas-telegram-googledocs
Clasifica y registra notas de WhatsApp/Telegram en Google Docs por categoría con URLs clickables y adjuntos multimedia
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Clasifica y registra notas de WhatsApp/Telegram en Google Docs por categoría con URLs clickables y adjuntos multimedia
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Con mensajes recibidos en Telegram que contienen Gasto, CxP, Ingreso, Pago CxP, Saldo o Flujo de Caja, gestiona el flujo de caja personal
Local search/indexing CLI (BM25 + vectors + rerank) with MCP mode.
| name | guardar-notas-telegram-googledocs |
| description | Clasifica y registra notas de WhatsApp/Telegram en Google Docs por categoría con URLs clickables y adjuntos multimedia |
Organiza notas, enlaces y multimedia recibidos por WhatsApp exportado o Telegram en documentos de Google Docs por categoría, ordenados por fecha de recepción.
Activar en dos flujos exclusivos:
.zip exportado desde WhatsApp con chat y adjuntos.No activar para mensajes de Telegram que pertenezcan al flujo de caja personal.
/root/.openclaw/openclaw.json bajo mcp.servers.composio.headers como x-consumer-api-key.COMPOSIO_MULTI_EXECUTE_TOOL como tool único; dentro de él se pasa tool_slug y arguments.COMPOSIO_REMOTE_WORKBENCH con run_composio_tool().yolanda.4geeks@gmail.com.Notas_preferencias/ (id: 1yfcFSY2tc5g9Ys5Bwtv84uWWJNL1eJdt).Notas_preferencias/multimedia/ para archivos adjuntos copiados (id: 1Np-hgEXF7PenohoEsJ4WhPBckBAWa5s1).WhatsApp_Export/ (id: 1l5uSqZlZ-6CxvzuU82aZ3xWks9Mn9hwi)..zip de WhatsApp disponible para extracción.En Google Docs, las URLs SOLO son clickables si están en formato [texto_visible](url) (markdown link).
Las URLs escritas como texto plano (ej: https://...) NO se convierten en hipervínculos automáticamente cuando el documento se crea vía API.
Toda URL debe ir envuelta en [url](url) para que Google Docs la renderice como link azul clickable.
Para adjuntos multimedia:
| fecha | título | texto descriptivo, [Adjunto: nombrearchivo.ext](https://drive.google.com/file/d/FILE_ID/view) |
Para URLs externas:
| fecha | título | texto descriptivo [https://www.instagram.com/...](https://www.instagram.com/...) |
Crear un doc con contenido mínimo:
r, e = run_composio_tool("GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN", {
"title": "NombreCategoria",
"markdown": "# NombreCategoria"
})
doc_id = r.get("data",{}).get("documentId","")
Actualizar con el markdown completo (tablas, enlaces, etc.):
r2, e2 = run_composio_tool("GOOGLEDOCS_UPDATE_DOCUMENT_MARKDOWN", {
"id": doc_id, # campo se llama "id", NO "document_id"
"markdown": markdown_completo
})
# Verificar: r2["data"]["replies"] debe tener muchas entradas
Mover a la carpeta Notas_preferencias/:
r3, e3 = run_composio_tool("GOOGLEDRIVE_MOVE_FILE", {
"file_id": doc_id,
"add_parents": "1yfcFSY2tc5g9Ys5Bwtv84uWWJNL1eJdt"
# add_parents es STRING, no lista
})
GOOGLEDRIVE_UPLOAD_FROM_URL con URLs de Google Drive: NO FUNCIONA. Descarga la página de advertencia HTML de Google en lugar de la imagen real. Solo funciona con URLs públicas de sitios externos.GOOGLEDRIVE_COPY_FILE: Preserva el contenido tal cual (incluyendo contenido corrupto). No acepta name ni parents aunque la API los soporte.GOOGLEDRIVE_RENAME_FILE: No se puede renombrar un archivo vía Composio.image/jpeg pero contenido real text/html (si se subieron vía UPLOAD_FROM_URL desde Drive). Verificar con imageMediaMetadata en GOOGLEDRIVE_GET_FILE_V2 — si tiene dimensiones reales, el contenido es genuino.Categoria_nombreoriginal.ext.
Ejemplos: Quilling_IMG-20250821-WA0002.jpg, Limpieza_Detox_IMG-20260101-WA0000.jpgGOOGLEDRIVE_FIND_FILE y se obtienen sus webViewLink.Formato: Categoria_nombreoriginal.ext (sin consecutivo numérico, solo prefijo de categoría)
Quilling_IMG-20250821-WA0002.jpgLimpieza_Detox_IMG-20260101-WA0000.jpgRecetas_IMG-20220112-WA0001.jpgResina_IMG-20230318-WA0003.jpgPor_clasificar_VID-20230902-WA0013.mp4Cuando el markdown tiene pipes (|), emojis, o caracteres especiales:
/mnt/files/...)# Codificar
B64=$(base64 -w0 archivo.md)
# En el workbench:
code_to_execute='import json, base64
md = base64.b64decode("'${B64}'").decode("utf-8")
# usar md normalmente
'
Los IDs de Drive pueden ser largos (hasta ~44 caracteres). Siempre usar el ID completo, nunca truncado. Para obtener IDs completos, buscar archivos por nombre en lugar de depender de IDs pre-capturados.
Detectar fuente de entrada: WhatsApp ZIP (carga inicial) o Telegram (día a día).
Extraer elementos procesables por mensaje: texto, URL, imagen/video/audio y fecha de recepción. IMPORTANTE: En el chat exportado de WhatsApp, los URLs y archivos adjuntos suelen venir en mensajes separados de su texto descriptivo (misma fecha, mismo remitente). Ejemplos:
Por clasificar y notifica a Yolanda para que la revise y mueva a la
categoría correcta.Generar un título corto descriptivo para cada elemento (máx 80 caracteres).
Deducir categoría dinámica usando contenido del texto y, si aplica, del enlace.
Buscar en Notas_preferencias/ un Google Doc existente para esa categoría.
Si no existe, crear un documento nuevo con el nombre de la categoría en esa misma carpeta.
Agregar una nueva fila al final del documento (formato tabla) con los siguientes campos:
Título del elemento (máx 80 caracteres).
Contenido / Enlace — según el tipo de elemento:
a) Si es un enlace (Instagram, YouTube, Facebook, Threads, etc.):
[url_completa](url_completa) para que sea clickable.[https://www.instagram.com/p/abc123/](https://www.instagram.com/p/abc123/)"Ejercicios [https://...](https://...)"b) Si es un archivo adjunto (foto, video, documento, audio, ZIP):
multimedia/ con el formato:
Categoria_nombrearchivo.ext — ej: Quilling_IMG-20250821-WA0002.jpg, Limpieza_Detox_IMG-20260101-WA0000.jpg
El usuario sube los archivos manualmente desde su dispositivo; desde aquí solo se reconstruyen los docs con los links.[Adjunto: nombrearchivo.ext](link_drive).Fotos de la cena de navidad, [Adjunto: IMG-20220110-WA0000.jpg](https://drive.google.com/file/d/xxx/view)[Adjunto: nombrearchivo.ext](link_drive).c) Si es multimedia incrustable directamente (imagen/video pequeño): incrustarlo en la celda.
Fecha de recepción.
Mantener orden cronológico de inserción dentro de cada documento por fecha de recepción.
Si el flujo es carga inicial, acumular conteo por categoría y reportar resumen al finalizar.
Si el flujo es diario por Telegram, enviar confirmación inmediata a Telegram con:
nota recibida, título y categoría.
Notas_preferencias/.[url](url).Por clasificar y notificar.enlace no verificable.GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN con markdown completo produce un doc vacío, hacer CREATE con contenido mínimo y UPDATE con el markdown completo.En caso de que haga falta, se podrán tener los siguientes archivos de soporte en la carpeta de la skill:
docs.md: Reglas de categorización, ejemplos de títulos cortos y formato de filas por tipo de contenido.scripts/: Extractor de ZIP de WhatsApp, parser de mensajes, deduplicador de notas y cargador a Docs.references/: Taxonomía inicial sugerida, mapeo de fuentes (Instagram/YouTube/TikTok) y checklist de validación.