¿Buscas una forma segura de generar números de folio consecutivos en AppSheet? Si tienes una app con múltiples usuarios creando registros al mismo tiempo, usar un contador secuencial puede parecer una buena idea… hasta que empieza a fallar. En este artículo descubrirás las mejores estrategias para crear un ID autonumérico en AppSheet sin errores, duplicados ni pérdida de datos.
🚨 El Problema del MAX() + 1 al crear un id autonumérico en Appsheet
Muchos desarrolladores intentan crear un número consecutivo así:
MAX(Tabla[ID]) + 1
Este método funciona en apps con un solo usuario… pero en ambientes multiusuario (y peor aún si trabajan offline), puede generar el mismo número en dos registros diferentes. ¿Resultado? Colisiones, errores de sincronización y caos en tus datos.
| Método | ¿Es seguro en multiusuario? | Problemas comunes |
|---|---|---|
MAX(Tabla[Folio]) + 1 |
❌ No | Colisiones, duplicados, inconsistencia offline |
COUNT(Tabla[ID]) + 1 |
❌ No | No considera borrados, también puede duplicarse |
| Folios calculados en formularios | ❌ No | Al enviar varios registros sin sincronizar |

✅ Métodos Seguros para Generar un ID Único en AppSheet
🔐 Opción 1: Usar UNIQUEID() como Clave Primaria
Es la opción más robusta que AppSheet ofrece. Genera un código aleatorio único como a12d3f4c.
Ventajas:
-
- Funciona offline
-
- Garantiza unicidad
-
- Es inmediato
Desventaja:
-
- No es legible para humanos (no es “0001”, “0002”, etc.)
🧠 Opción 2: ID Único + Folio Visible Secuencial
Mejor práctica recomendada:
-
- Crea una columna
[ID_Unico]con fórmula inicialUNIQUEID()(esto será tuKey).
- Crea una columna
-
- Crea otra columna
[Folio]que mostrará el
- Crea otra columna
Paso a paso con una tabla de control:
-
- Crea una tabla llamada
ContadorFolio
-
- Solo debe tener una fila con la columna
[UltimoFolio].
- Solo debe tener una fila con la columna
-
- Esta columna almacena el último número asignado.
-
- Crea una tabla llamada
-
- Crea un Bot en AppSheet que haga lo siguiente:
-
- Evento: Al crear un nuevo registro en la tabla principal.
-
- Proceso: Ejecuta las siguientes tareas en orden:
-
- Leer el valor actual de
UltimoFolio.
- Leer el valor actual de
-
- Incrementar ese valor en 1.
-
- Actualizar el campo
[Folio]del nuevo registro.
- Actualizar el campo
-
- Actualizar la tabla
ContadorFoliocon el nuevo valor.
- Actualizar la tabla
-
- Proceso: Ejecuta las siguientes tareas en orden:
-
- Crea un Bot en AppSheet que haga lo siguiente:
✅ Esto garantiza unicidad del folio incluso si varios usuarios están usando la app simultáneamente, ya que el cambio ocurre en el servidor, no en el dispositivo local.
⚡ ¿Y si el Bot es demasiado lento?
Es una observación válida: a veces el Bot tarda algunos segundos en ejecutar todo el proceso, lo cual puede generar una experiencia menos fluida para el usuario.
Soluciones posibles:
🔹 1. Folio provisional visible + folio real asignado luego
Muestra un número temporal al usuario al crear el registro (por ejemplo TEMP-1432 o con NOW()), y luego el Bot lo reemplaza con el número definitivo.
🔹 2. Generador de folios con Google Apps Script (crear un id autonumérico en Appsheet)
Puedes usar un webhook que llame a un Apps Script para:
-
- Leer el último folio desde una hoja de cálculo.
-
- Generar el nuevo número (ej.
2025-0007).
- Generar el nuevo número (ej.
-
- Escribirlo directamente en la fila correspondiente usando la API de AppSheet.
Este método es más rápido que los Bots tradicionales y te da mucha flexibilidad.
🧪 Comparativa de métodos para generar folios
| Método | ¿Seguro? | ¿Rápido? | ¿Offline? | Comentario |
|---|---|---|---|---|
MAX()+1 directo en fórmula |
❌ No | ✅ Sí | ❌ No | Muy inseguro en apps multiusuario |
UNIQUEID() |
✅ Sí | ✅ Sí | ✅ Sí | Ideal como clave, pero no legible |
| Tabla de control + Bot | ✅ Sí | ❌ Medio | ✅ Sí | Robusto, pero puede tardar unos segundos |
| Apps Script vía Webhook | ✅ Sí | ✅ Sí | ❌ No | Potente y flexible, requiere algo de código |
| Folio provisional + Bot | ✅ Sí | ✅ Sí | ✅ Sí | Experiencia más fluida para el usuario |
🧩 Consejo de experto
Siempre utiliza
UNIQUEID()como clave principal (Key) del registro.
Usa el número autonumérico solo como campo de referencia visual o administrativa (ej. “Folio”).
🏁 Conclusión
Crear un folio autonumérico seguro y funcional en AppSheet es totalmente posible, pero requiere una implementación pensada para evitar colisiones entre usuarios, especialmente en aplicaciones colaborativas y con acceso offline.
La estrategia más segura y profesional combina:
-
- Un
UNIQUEID()como clave interna.
- Un
-
- Un folio generado por Bot o Apps Script.
-
- Un control centralizado del contador.
Enlaces recomendados:
🔗 Enlaces recomendados
AppSheet.es – Guías, recursos y tutoriales en español
Blog especializado en AppSheet en español con guías prácticas, soluciones no-code y estrategias de automatización.
Documentación oficial de AppSheet – Funciones y automatizaciones
Recurso esencial para consultar expresiones, configuración de bots y automatizaciones paso a paso.
Sitio web oficial de AppSheet – Creador de apps sin código
Página oficial de Google AppSheet con acceso al editor, ejemplos, tutoriales y casos de éxito.


