El código de una herramienta es un módulo JavaScript que exporta una función. eltick la llama con las entradas y el SDK:
  • input trae las entradas por su nombre. Las de credenciales llegan como un token opaco.
  • Lo que devuelves tiene que poder convertirse a JSON. Es lo que recibe el agente (dentro de resultado).
  • Si la función tira un error, el agente recibe ok: false con el mensaje.
  • Puedes exportarla como export default o como export async function run.

Dónde corre

Cada ejecución corre en un entorno aislado, armado de cero para esa llamada:
  • Sin acceso a la base de datos de eltick, a otras herramientas ni a otros clientes.
  • Sin red, salvo eltick.fetch hacia los dominios que declaraste y que aprobamos.
  • Sin eval, new Function, import de otros módulos ni WebAssembly.
  • Con JavaScript moderno y las APIs web estándar: URL, URLSearchParams, TextEncoder, crypto.subtle, Date, Intl, JSON.

eltick.fetch(url, opciones)

Hace un pedido HTTP, igual que fetch, con dos agregados:
  • Solo https:// y solo hacia los dominios declarados de la herramienta. Un pedido a otro dominio devuelve 403 con el motivo.
  • Las redirecciones no se siguen: recibes la respuesta 3xx y decides.
  • Una credencial solo sale hacia sus propios dominios (los de Ajustes › Credenciales), aunque la herramienta tenga otros.

Credenciales dentro de headers, URL o cuerpo

Si tu API espera la credencial en otro lugar, pon la entrada directamente donde va. eltick reemplaza el token por el valor real al salir el pedido:
El código nunca ve el valor: si haces eltick.log(input.clave) aparece el token, no la clave.

eltick.contact

Requiere el permiso Leer el contacto (contact.read) para leer y Guardar campos y etiquetas del contacto (contact.write) para escribir.
setField y addTag se aplican al terminar el turno, después de que el agente responde, y solo si el turno sigue vigente (si alguien del equipo tomó la conversación mientras tanto, no se aplican). En las pruebas del editor se muestran pero no se guardan.

eltick.conversation

eltick.account

eltick.knowledge.search(consulta)

Requiere Buscar en el conocimiento (knowledge.read). Busca en las fuentes del agente (en la prueba del editor, en todas las de tu negocio) y devuelve hasta 5 resultados:

eltick.store

Un almacén clave-valor propio de la herramienta, para guardar algo entre ejecuciones (por ejemplo, un token o una respuesta que cambia poco):
Cada valor puede pesar hasta 64 KB. No lo uses para guardar credenciales: para eso están las credenciales.

eltick.log, eltick.warn, eltick.error

Escriben en los logs de la ejecución, que ves en la pestaña Probar. console.log, console.warn y console.error también funcionan.

Permisos

Declaras los permisos en la pestaña Código y se aprueban con la versión. Sin el permiso, el método correspondiente tira un error y esos datos ni siquiera llegan al entorno aislado. Pide solo los que usas: cada permiso nuevo es algo más que revisamos.

Ejemplo completo

Diagnóstico de un servicio de internet con una credencial de usuario y contraseña, que guarda el número de usuario en el contacto:
Con estas reglas de lectura: bloqueado es verdadero → manda la deuda, conectado es verdadero → ofrece reiniciar, conectado es falso → corre el diagnóstico.