{
  "schemaVersion": 1,
  "version": "1.0.0",
  "datePublished": "2026-08-26",
  "dateModified": "2026-08-26",
  "sourceHash": "sha256:c5f67d48de60ebfabe36c0682974b81fdfc05db9bbf377ab27e3503a7b060de5",
  "canonicalUrl": "https://meteor.com.co/recursos/registro-capacidades-meteor",
  "downloadUrl": "https://meteor.com.co/datos/capacidades-meteor.json",
  "publisher": {
    "name": "Meteor",
    "url": "https://meteor.com.co"
  },
  "scope": {
    "includes": {
      "es": "Fichas de integración publicadas en el catálogo de Meteor y las herramientas documentadas que cada conector entrega a Mets configurados.",
      "en": "Integration records published in the Meteor catalog and the documented tools each connector gives configured Mets."
    },
    "excludes": {
      "es": [
        "No afirma que cada integración esté habilitada en todos los espacios de trabajo.",
        "No convierte la ausencia de un mercado declarado en disponibilidad global.",
        "No presenta estas herramientas como una API pública ni como herramientas MCP de uso directo."
      ],
      "en": [
        "It does not state that every integration is enabled in every workspace.",
        "It does not treat an unspecified market as worldwide availability.",
        "It does not present these tools as a public API or as directly callable MCP tools."
      ]
    },
    "toolMeaning": {
      "es": "Una herramienta es una acción documentada del conector que un Met configurado puede usar cuando tiene las cuentas, credenciales, alcances y aprobaciones aplicables.",
      "en": "A tool is a documented connector action that a configured Met can use when the applicable accounts, credentials, scopes and approvals are in place."
    }
  },
  "recordCount": 39,
  "toolCount": 476,
  "relatedTechnicalSources": [
    {
      "name": "Meteor MCP descriptor",
      "url": "https://developers.meteor.com.co/.well-known/mcp.json"
    },
    {
      "name": "Meteor public OpenAPI contract",
      "url": "https://developers.meteor.com.co/public/openapi.public.json"
    }
  ],
  "records": [
    {
      "id": "agenda",
      "catalogStatus": "published",
      "toolCount": 7,
      "locales": {
        "es": {
          "name": "Agenda de Meteor",
          "category": "Vender y atender",
          "summary": "La agenda de Meteor es nativa: no hay que conectar una herramienta externa ni pedir credenciales. Tu agente de IA consulta los servicios agendables del negocio con su duración y su precio, devuelve los huecos libres entre dos fechas, crea la reserva ligada al contacto de la conversación, la consulta, la cancela y la reprograma. Son 7 herramientas que operan sobre las tablas de agenda de tu propio espacio de trabajo.",
          "tools": [
            {
              "name": "agenda_get_event_types",
              "description": "Lista los servicios agendables con su duración, precio y modalidad."
            },
            {
              "name": "agenda_get_slots",
              "description": "Devuelve los huecos libres de un servicio entre dos fechas, en la zona horaria del negocio."
            },
            {
              "name": "agenda_create_booking",
              "description": "Crea la reserva para el contacto de la conversación, usando el hueco exacto que se eligió."
            },
            {
              "name": "agenda_get_booking",
              "description": "Recupera el detalle de una reserva por su identificador."
            },
            {
              "name": "agenda_list_bookings",
              "description": "Lista las próximas reservas del contacto, con filtro opcional por estado."
            },
            {
              "name": "agenda_cancel_booking",
              "description": "Cancela una reserva, con un motivo opcional."
            },
            {
              "name": "agenda_reschedule_booking",
              "description": "Reprograma la reserva a otro horario y, si hace falta, a otro profesional."
            }
          ],
          "limitations": [
            "No cobra la cita ni pide un anticipo. Muestra el precio del servicio, pero el cobro pasa por la integración de pagos que tengas conectada.",
            "No sincroniza con Google Calendar ni con Outlook. Es una agenda propia; si necesitas la del calendario corporativo, se usa la integración de Google Workspace.",
            "No emite recordatorios por su cuenta desde estas herramientas; eso lo agenda el CRM conversacional.",
            "No agenda para un contacto distinto al de la conversación. Las reservas quedan ligadas a quien está escribiendo, que es lo que evita citas a nombre equivocado."
          ],
          "requirements": [
            {
              "name": "Nada. No pide credenciales",
              "howToObtain": "La agenda es nativa de Meteor y opera sobre las tablas de tu propio espacio de trabajo. Solo hay que definir los servicios agendables, su duración y su horario."
            },
            {
              "name": "Servicios y profesionales configurados",
              "howToObtain": "Se declaran desde el panel de Meteor. Sin servicios definidos, el agente no tiene qué ofrecer y responde que no hay nada agendable."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/agenda"
        },
        "en": {
          "name": "Meteor Scheduling",
          "category": "Sell and serve",
          "summary": "Meteor's scheduling is built in, so there is nothing to connect and no credentials to request. Your Met reads the services you sell with their duration and price, returns the open slots between two dates, books the appointment against the contact in the conversation, looks it up, cancels it and reschedules it. That is 7 tools running on the scheduling tables of your own workspace.",
          "tools": [
            {
              "name": "agenda_get_event_types",
              "description": "Lists the services customers can book, with duration, price and format."
            },
            {
              "name": "agenda_get_slots",
              "description": "Returns the open slots for a service between two dates, in the business time zone."
            },
            {
              "name": "agenda_create_booking",
              "description": "Books the appointment for the contact in the conversation, using the exact slot chosen."
            },
            {
              "name": "agenda_get_booking",
              "description": "Retrieves the details of a booking by its identifier."
            },
            {
              "name": "agenda_list_bookings",
              "description": "Lists that contact's upcoming bookings, with an optional status filter."
            },
            {
              "name": "agenda_cancel_booking",
              "description": "Cancels a booking, with an optional reason."
            },
            {
              "name": "agenda_reschedule_booking",
              "description": "Moves a booking to another time and, when needed, to another staff member."
            }
          ],
          "limitations": [
            "It does not charge for the appointment or take a deposit. It shows the price of the service, and the payment runs through whichever payments integration you have connected.",
            "It does not sync with Google Calendar or Outlook. This is Meteor's own calendar. For the corporate calendar, use the Google Workspace integration.",
            "It does not send reminders from these tools. Reminders are scheduled by the conversational CRM.",
            "It does not book on behalf of anyone other than the person writing. Bookings stay tied to the contact in the conversation, which is what keeps appointments off the wrong name."
          ],
          "requirements": [
            {
              "name": "Nothing. There are no credentials to enter",
              "howToObtain": "Scheduling is native to Meteor and runs on the tables of your own workspace. You only define the services you offer, how long each one takes and when you are open."
            },
            {
              "name": "Services and staff configured",
              "howToObtain": "You declare them in the Meteor panel. With no services defined, your Met has nothing to offer and says so."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/agenda"
        }
      }
    },
    {
      "id": "alegra",
      "catalogStatus": "published",
      "toolCount": 18,
      "locales": {
        "es": {
          "name": "Alegra",
          "category": "Cobrar y administrar",
          "summary": "Meteor se conecta con Alegra a través de su API y le da a tu Met 18 herramientas para operar el frente comercial: consultar productos, precios por lista y stock por bodega, identificar al cliente por su teléfono o NIT, crear cotizaciones, listar y abrir facturas para revisar cartera, y repartir la cola de cotizaciones pendientes por vendedor. Todo eso funciona desde una conversación de WhatsApp. Crear borradores de factura de venta, registrar pagos y gastos, y leer cuentas bancarias, impuestos y la ficha de la empresa quedan reservados al operador por web: el conector rechaza esas seis herramientas cuando quien las pide es un Met de canal, y no es una opción que se pueda activar. Solo necesitas un token de API de Alegra, sin desarrollo a la medida.",
          "markets": [
            "Colombia",
            "México",
            "Argentina"
          ],
          "marketNote": "La API identifica el país y la moneda configurados en la cuenta. Este conector solo crea el borrador de la factura de venta; no presenta, timbra ni emite el documento ante la autoridad tributaria de ningún país. Las herramientas contables sensibles solo corren desde el escritorio: el conector las rechaza cuando la petición llega por un canal.",
          "tools": [
            {
              "name": "consultar_producto",
              "description": "Busca un producto o servicio por nombre o referencia (SKU) y devuelve su id, categoría y estado."
            },
            {
              "name": "consultar_precio",
              "description": "Devuelve las listas de precios y los impuestos configurados del producto, con sus ids, porcentaje y estado."
            },
            {
              "name": "consultar_stock",
              "description": "Devuelve la disponibilidad actual de un producto, por bodega, con su costo unitario."
            },
            {
              "name": "listar_inventario",
              "description": "Lista o busca productos y trae en un solo llamado nombre, referencia, stock por bodega y precios."
            },
            {
              "name": "buscar_cliente",
              "description": "Identifica a un cliente por nombre, NIT, correo o teléfono, y devuelve sus últimas facturas."
            },
            {
              "name": "crear_cliente",
              "description": "Registra un cliente nuevo cuando la búsqueda no lo encuentra, antes de cotizar o facturar."
            },
            {
              "name": "crear_cotizacion",
              "description": "Crea una cotización (pre-factura) a nombre de un cliente. No factura ni afecta la DIAN. Exige que el cliente ya exista: cotizar no lo da de alta, para no dejar fichas duplicadas."
            },
            {
              "name": "consultar_cotizacion",
              "description": "Devuelve el detalle de una cotización con su enlace al PDF formal para enviárselo al cliente."
            },
            {
              "name": "listar_cotizaciones",
              "description": "Lista la cola de cotizaciones pendientes, filtrable por vendedor, situación, cliente y fechas."
            },
            {
              "name": "crear_pedido",
              "description": "Crea un borrador de factura de venta para un cliente existente, con productos, cantidades, precios antes de impuestos e ids de impuestos aprobados. Exige aprobar un resumen y enviar confirmar:true como booleano literal. Solo desde el escritorio; no emite facturación electrónica, registra pagos, envía correo ni genera PDF."
            },
            {
              "name": "alegra_list_invoices",
              "description": "Lista facturas filtrando por estado, cliente y rango de fechas. Sirve para cartera y reportes."
            },
            {
              "name": "alegra_get_invoice",
              "description": "Devuelve el detalle completo de una factura por su id, con sus líneas y el identificador de producto de cada una. Es lo que permite repetir el pedido de un cliente recurrente."
            },
            {
              "name": "alegra_register_payment",
              "description": "Registra un pago recibido contra una o varias facturas. Solo desde el escritorio: el conector la rechaza si quien la pide es un Met de canal."
            },
            {
              "name": "alegra_create_expense",
              "description": "Registra un gasto o una factura de compra. Solo desde el escritorio: el conector la rechaza si quien la pide es un Met de canal."
            },
            {
              "name": "alegra_list_bank_accounts",
              "description": "Lista las cuentas bancarias configuradas con su saldo actual. Aunque solo lee, está en el grupo fiscal: solo desde el escritorio, nunca desde un Met de canal."
            },
            {
              "name": "alegra_list_taxes",
              "description": "Lista los impuestos configurados en la cuenta (IVA, INC y demás). Aunque solo lee, está en el grupo fiscal: solo desde el escritorio, nunca desde un Met de canal."
            },
            {
              "name": "alegra_get_company",
              "description": "Devuelve los datos de la empresa (nombre, NIT, régimen, zona horaria). Sirve para verificar credenciales. Aunque solo lee, está en el grupo fiscal: solo desde el escritorio."
            },
            {
              "name": "listar_vendedores",
              "description": "Lista los vendedores con su id, para asignar el comercial de ruta a una cotización."
            }
          ],
          "limitations": [
            "No crea borradores de factura, registra pagos ni registra gastos desde un Met de canal. No es una opción configurable: el conector rechaza esas herramientas cuando la petición llega por WhatsApp, Instagram, Messenger o chat web. Un operador en la plataforma web sí las tiene, y crear el borrador exige confirmar:true como booleano literal después de aprobar el resumen.",
            "No emite, presenta, timbra ni anula facturación electrónica. La herramienta de nombre histórico crear_pedido fija status draft; no llama a la autoridad tributaria de ningún país. Tampoco registra un pago, envía un correo ni devuelve un PDF.",
            "No consulta cuentas bancarias, impuestos ni la ficha de la empresa desde un canal. Aunque las tres solo leen, están en el mismo grupo fiscal que las escrituras y el bloqueo las alcanza igual: son datos de la contabilidad, no del catálogo.",
            "No da de alta al cliente al cotizar. Si quien escribe no existe todavía en Alegra, hay que crearlo primero y reintentar; es a propósito, para no llenar el maestro de fichas duplicadas.",
            "No concilia bancos ni importa extractos. Lista cuentas y saldos, y registra pagos contra facturas.",
            "No hace cierres contables, no genera balances ni declaraciones tributarias.",
            "No reemplaza a tu contador. Es una ventana operativa a Alegra, no un criterio contable.",
            "No sincroniza el catálogo con tu tienda. Si necesitas que el stock de Alegra y el de WooCommerce se espejen, ese trabajo lo hace la integración de la tienda."
          ],
          "requirements": [
            {
              "name": "Token de API de Alegra en Base64",
              "howToObtain": "En Alegra, en Configuración → Integraciones → API. El token se guarda como Base64 de \"tu-correo@empresa.com:tu-token\", cifrado por espacio de trabajo."
            },
            {
              "name": "Una cuenta de Alegra activa con el inventario cargado",
              "howToObtain": "El Met lee lo que ya está en tu Alegra. Si los precios o el stock no están al día ahí, tampoco lo estarán en la conversación."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/alegra"
        },
        "en": {
          "name": "Alegra",
          "category": "Collect and manage",
          "summary": "Meteor connects to Alegra through its API and gives your Met 18 tools to run the commercial side of your books: look up products, price lists and stock by warehouse, identify the customer by phone number or tax ID, create quotes, list and open invoices to work receivables, and split the queue of open quotes by sales rep. All of that works from a live WhatsApp conversation. Creating sales-invoice drafts, registering payments and expenses, and reading bank accounts, taxes and the company profile stay with the operator on the web: the connector refuses those six tools when the request comes from a channel Met, and it is not a setting you can switch on. All it takes is an Alegra API token. There is no custom development.",
          "markets": [
            "Colombia",
            "Mexico",
            "Argentina"
          ],
          "marketNote": "The API identifies the country and currency configured in the account. This connector only creates the sales-invoice draft; it does not file, stamp, or issue the document with any tax authority. Sensitive accounting tools are desk only and the connector refuses them when the request arrives over a channel.",
          "tools": [
            {
              "name": "consultar_producto",
              "description": "Finds a product or service by name or SKU and returns its id, category and status."
            },
            {
              "name": "consultar_precio",
              "description": "Returns the product's price lists and configured taxes, including tax ids, percentage, and status."
            },
            {
              "name": "consultar_stock",
              "description": "Returns current availability for a product, by warehouse, with its unit cost."
            },
            {
              "name": "listar_inventario",
              "description": "Lists or searches products and returns name, SKU, stock by warehouse and prices in one call."
            },
            {
              "name": "buscar_cliente",
              "description": "Identifies a customer by name, tax ID, email or phone, and returns their latest invoices."
            },
            {
              "name": "crear_cliente",
              "description": "Registers a new customer when the search comes up empty, before quoting or invoicing."
            },
            {
              "name": "crear_cotizacion",
              "description": "Creates a quote in the customer's name. It does not invoice and it does not touch the tax authority. It requires the customer to exist already; quoting does not create them."
            },
            {
              "name": "consultar_cotizacion",
              "description": "Returns the detail of a quote with the link to its formal PDF, ready to send."
            },
            {
              "name": "listar_cotizaciones",
              "description": "Lists the queue of open quotes, filtered by sales rep, status, customer and dates."
            },
            {
              "name": "crear_pedido",
              "description": "Creates a sales-invoice draft for an existing customer, with products, quantities, pre-tax prices, and approved tax ids. It requires an approved summary and literal boolean confirmar:true. Desk only; it does not issue an electronic invoice, record payment, send email, or generate a PDF."
            },
            {
              "name": "alegra_list_invoices",
              "description": "Lists invoices by status, customer and date range. This is what feeds collections and reporting."
            },
            {
              "name": "alegra_get_invoice",
              "description": "Returns the full detail of an invoice by its id, with its line items and the product id on each one. This is what makes repeating a returning customer's order possible."
            },
            {
              "name": "alegra_register_payment",
              "description": "Registers an incoming payment against one or several invoices. Desk only, the connector refuses it for a channel Met."
            },
            {
              "name": "alegra_create_expense",
              "description": "Records an expense or a purchase invoice. Desk only, the connector refuses it for a channel Met."
            },
            {
              "name": "alegra_list_bank_accounts",
              "description": "Lists the bank accounts configured, with their current balance. It only reads, but it sits in the fiscal group, so it is desk only."
            },
            {
              "name": "alegra_list_taxes",
              "description": "Lists the taxes configured on the account (VAT and the rest). It only reads, but it sits in the fiscal group, so it is desk only."
            },
            {
              "name": "alegra_get_company",
              "description": "Returns the company profile (name, tax ID, tax regime, time zone). Useful to verify credentials. It only reads, but it sits in the fiscal group, so it is desk only."
            },
            {
              "name": "listar_vendedores",
              "description": "Lists sales reps with their id, so a quote lands on the right person."
            }
          ],
          "limitations": [
            "It does not create sales-invoice drafts, register payments, or record expenses from a channel Met. This is not a configurable setting: the connector refuses those tools over WhatsApp, Instagram, Messenger, or web chat. An operator in the web platform can use them, and draft creation requires literal boolean confirmar:true after approving the summary.",
            "It does not issue, file, stamp, or void electronic invoices. The historically named crear_pedido tool fixes status to draft and makes no tax-authority call. It also does not record payment, send email, or return a PDF.",
            "It does not read bank accounts, taxes or the company profile from a channel. All three only read, but they sit in the same fiscal group as the writes and the block reaches them too: this is accounting data, not catalog data.",
            "It does not create the customer while quoting. If whoever writes in is not in Alegra yet, you create them first and retry. That is deliberate, so the master does not fill with duplicates.",
            "It does not reconcile bank statements. It lists accounts and balances, and registers payments against invoices.",
            "It does not close the books, produce financial statements or file tax returns.",
            "It does not replace your accountant. This is an operating window into Alegra, not accounting judgment.",
            "It does not sync your catalog with your store. If you need Alegra stock and WooCommerce stock to mirror each other, that work belongs to the store integration."
          ],
          "requirements": [
            {
              "name": "An Alegra API token, Base64 encoded",
              "howToObtain": "In Alegra, under Settings, Integrations, API. The token is stored as the Base64 of \"you@yourcompany.com:your-token\", encrypted per workspace."
            },
            {
              "name": "An active Alegra account with your inventory loaded",
              "howToObtain": "Your Met reads what is already in Alegra. If prices or stock are out of date there, they will be out of date in the conversation too."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/alegra"
        }
      }
    },
    {
      "id": "andreani",
      "catalogStatus": "published",
      "toolCount": 12,
      "locales": {
        "es": {
          "name": "Andreani",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con la API de Andreani para que tu Met cotice un envío en Argentina con el contrato del propio cliente, dé de alta la orden y devuelva el número de envío, siga la trazabilidad evento por evento, y encuentre la sucursal o el punto de retiro que le sirve a quien recibe. Son 12 herramientas, y solo una escribe: el alta de la orden, que exige una confirmación explícita porque Andreani no permite cancelar un envío por API. Las credenciales salen de tu propio contrato con Andreani, y el conector arranca apuntando al ambiente de pruebas.",
          "markets": [
            "Argentina"
          ],
          "marketNote": "Andreani entrega un número de contrato por modalidad: uno para entrega a domicilio y otro para sucursal o punto de retiro. Son distintos y dan precios distintos.",
          "tools": [
            {
              "name": "andreani_consultar_conexion",
              "description": "Hace el login real contra Andreani y reporta el ambiente activo, el código de cliente y qué contratos hay cargados."
            },
            {
              "name": "andreani_cotizar_envio",
              "description": "Cotización real por código postal de destino, contrato y bultos, con el valor declarado que define el seguro. El precio es el que devuelve Andreani."
            },
            {
              "name": "andreani_crear_orden",
              "description": "Da de alta la orden de envío y devuelve el número de Andreani. Exige confirmación explícita."
            },
            {
              "name": "andreani_consultar_orden",
              "description": "Devuelve la orden por su número, con su estado. Es la fuente confiable para afirmar que algo se entregó."
            },
            {
              "name": "andreani_obtener_etiqueta",
              "description": "Sube el PDF de la etiqueta al almacenamiento privado de Meteor y devuelve un enlace firmado de siete días para imprimirla, sin traer el archivo al chat."
            },
            {
              "name": "andreani_rastrear_envio",
              "description": "Devuelve la trazabilidad del envío: los eventos con su fecha, su estado y la sucursal donde ocurrieron."
            },
            {
              "name": "andreani_consultar_envio",
              "description": "Ficha del envío con su estado, sus bultos y los datos de la entrega, con la información personal recortada."
            },
            {
              "name": "andreani_buscar_envios",
              "description": "Busca tus envíos por rango de fechas de creación, documento del destinatario o identificador de producto."
            },
            {
              "name": "andreani_buscar_sucursales",
              "description": "Busca sucursales por código postal y devuelve dirección, horario, coordenadas y qué códigos postales atienden."
            },
            {
              "name": "andreani_buscar_puntos_de_tercero",
              "description": "Busca puntos de retiro de la red de terceros, que suelen tener más cobertura y mejor horario que las sucursales."
            },
            {
              "name": "andreani_consultar_provincias",
              "description": "Lista las provincias argentinas con el código normalizado que el alta de orden exige en el campo de región."
            },
            {
              "name": "andreani_validar_direccion",
              "description": "Valida y geolocaliza una dirección argentina contra Andreani, devolviendo latitud y longitud."
            }
          ],
          "limitations": [
            "No cancela ni anula un envío. Andreani no expone esa operación por API, y por eso el alta de orden exige una confirmación explícita: lo que se da de alta por error no se deshace desde Meteor, hay que resolverlo con la transportadora.",
            "No mete el PDF de la etiqueta en la conversación. Lo sube al almacenamiento privado de Meteor y devuelve un enlace firmado que vence a los siete días: sirve para imprimir, no para archivar. Y como la etiqueta lleva impresos el nombre y la dirección de quien recibe, ese enlace es para quien despacha, no para reenviarlo al cliente.",
            "No calcula el precio ni el peso aforado. El valor que se comunica es el que devuelve Andreani para tu contrato, tal cual, porque un flete calculado del lado nuestro es un flete inventado.",
            "No deduce la entrega de la ausencia de eventos. La trazabilidad más reciente no emite el evento de entrega, así que afirmar que algo llegó se hace consultando la orden.",
            "No expone los datos personales del destinatario por defecto. Documento, correo y teléfono se recortan de la respuesta salvo que el caso lo pida explícitamente."
          ],
          "requirements": [
            {
              "name": "Usuario y clave de la API de Andreani",
              "howToObtain": "Los entrega Andreani al firmar el contrato. El par del ambiente de pruebas y el de producción son distintos, y el ambiente se declara al configurar la integración."
            },
            {
              "name": "Tu código de cliente",
              "howToObtain": "Es el que figura en tu contrato con Andreani. Se usa para cotizar y para buscar tus propios envíos por fecha o por documento del destinatario."
            },
            {
              "name": "Los números de contrato de cada modalidad",
              "howToObtain": "Andreani entrega uno para entrega a domicilio y otro para sucursal o punto de retiro. Sin el que corresponde no se puede cotizar esa modalidad, y usar el otro devuelve un precio que no es el tuyo."
            },
            {
              "name": "Sucursal de imposición y ambiente (opcionales)",
              "howToObtain": "La sucursal desde la que despachas se configura una vez para no repetirla en cada consulta; si no la declaras, Andreani usa la del contrato. El ambiente arranca en pruebas."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/andreani"
        },
        "en": {
          "name": "Andreani",
          "category": "Run stores and orders",
          "summary": "Meteor connects to the Andreani API so your Met can quote a shipment in Argentina on the customer's own contract, create the order and return the shipment number, follow tracking event by event, and find the branch or pickup point that suits the person receiving. There are 12 tools and only one of them writes: creating the order, which requires an explicit confirmation because Andreani does not allow cancelling a shipment over the API. The credentials come from your own contract with Andreani, and the connector starts out pointing at the sandbox.",
          "markets": [
            "Argentina"
          ],
          "marketNote": "Andreani issues one contract number per delivery mode: one for home delivery and another for branch or pickup point. They are different numbers and they return different prices.",
          "tools": [
            {
              "name": "andreani_consultar_conexion",
              "description": "Performs a real login against Andreani and reports the active environment, client code and loaded contracts."
            },
            {
              "name": "andreani_cotizar_envio",
              "description": "A real quote by destination postal code, contract and parcels, with the declared value that sets the insurance. The price is whatever Andreani returns."
            },
            {
              "name": "andreani_crear_orden",
              "description": "Creates the shipping order and returns the Andreani number. It requires an explicit confirmation."
            },
            {
              "name": "andreani_consultar_orden",
              "description": "Returns the order by its number, with its status. This is the reliable source for saying something was delivered."
            },
            {
              "name": "andreani_obtener_etiqueta",
              "description": "Uploads the label PDF to Meteor private storage and returns a signed seven day link to print it, without pulling the file into the chat."
            },
            {
              "name": "andreani_rastrear_envio",
              "description": "Returns the shipment history: events with date, status and the branch where each one happened."
            },
            {
              "name": "andreani_consultar_envio",
              "description": "The shipment record with status, parcels and delivery details, with personal data trimmed out."
            },
            {
              "name": "andreani_buscar_envios",
              "description": "Finds your shipments by creation date range, recipient document number or product id."
            },
            {
              "name": "andreani_buscar_sucursales",
              "description": "Finds branches by postal code and returns address, opening hours, coordinates and the codes each one serves."
            },
            {
              "name": "andreani_buscar_puntos_de_tercero",
              "description": "Finds third party pickup points, which usually offer wider coverage and longer hours than branches."
            },
            {
              "name": "andreani_consultar_provincias",
              "description": "Lists Argentine provinces with the standard code the order creation call requires in its region field."
            },
            {
              "name": "andreani_validar_direccion",
              "description": "Validates and geolocates an Argentine address against Andreani, returning latitude and longitude."
            }
          ],
          "limitations": [
            "It does not cancel or void a shipment. Andreani does not expose that operation over the API, which is why creating an order demands an explicit confirmation: what gets created by mistake cannot be undone from Meteor, it has to be settled with the carrier.",
            "It does not put the label PDF into the conversation. It uploads it to Meteor private storage and returns a signed link that expires after seven days: good for printing, not for archiving. And because the label carries the name and address of whoever receives the parcel, that link is for whoever ships it, not for forwarding to the customer.",
            "It does not compute the price or the chargeable weight. The figure communicated is the one Andreani returns for your contract, unchanged, because freight computed locally is invented.",
            "It does not infer delivery from silence. The newer tracking version does not emit the delivery event, so claiming something arrived is done by checking the order.",
            "It does not expose the recipient's personal data by default. Document number, email and phone are trimmed from the response unless the case explicitly calls for them."
          ],
          "requirements": [
            {
              "name": "An Andreani API username and password",
              "howToObtain": "Andreani provides them when you sign the contract. The sandbox pair and the production pair are different, and you declare the environment when configuring the integration."
            },
            {
              "name": "Your client code",
              "howToObtain": "The one on your Andreani contract. It is used to quote and to search your own shipments by date or by the recipient's document number."
            },
            {
              "name": "The contract number for each delivery mode",
              "howToObtain": "Andreani issues one for home delivery and another for branch or pickup point. Without the right one you cannot quote that mode, and using the other returns a price that is not yours."
            },
            {
              "name": "Origin branch and environment (optional)",
              "howToObtain": "The branch you ship from is configured once so you do not repeat it on every call; if you leave it out, Andreani uses the one on the contract. The environment starts in sandbox."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/andreani"
        }
      }
    },
    {
      "id": "aveonline",
      "catalogStatus": "published",
      "toolCount": 11,
      "locales": {
        "es": {
          "name": "Aveonline",
          "category": "Operar tienda y pedidos",
          "summary": "La integración de Meteor conecta AveCRM de Aveonline con WhatsApp para consultar el catálogo, crear y confirmar pedidos, gestionar recaudo contra entrega y devolver la guía, la transportadora y el estado del envío. Aveonline sigue administrando el catálogo y genera la guía cuando se confirma el pedido; Meteor aporta el agente de IA que opera esas acciones desde la conversación.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Aveonline es una plataforma colombiana de ecommerce y logística; la confirmación del pedido es la que genera la guía de transporte.",
          "tools": [
            {
              "name": "ave_listar_productos",
              "description": "Lista el catálogo con filtros de nombre, categoría, rango de precio y estado."
            },
            {
              "name": "ave_ver_producto",
              "description": "Trae un producto con sus variantes, imágenes, dimensiones, peso, inventario y costos."
            },
            {
              "name": "ave_listar_pedidos",
              "description": "Lista los pedidos entre dos fechas, o busca uno por número o cliente, y trae de cada uno el número de guía, la transportadora y el estado del envío."
            },
            {
              "name": "ave_generar_pedido",
              "description": "Crea el pedido con su recaudo contra entrega y, si quieres, forzando una transportadora. Es una acción comercial real y pide confirmar productos, totales y cliente."
            },
            {
              "name": "ave_editar_pedido",
              "description": "Edita un pedido existente, con las mismas reglas de productos que la creación."
            },
            {
              "name": "ave_confirmar_pedido",
              "description": "Confirma el pedido y dispara la generación de la guía con la transportadora."
            },
            {
              "name": "ave_confirmar_por_referencia",
              "description": "Confirma buscando el pedido por su referencia externa, espera a que salga la guía y devuelve el número, la transportadora y el mensaje listo para enviarle al cliente."
            },
            {
              "name": "ave_actualizar_estado_pedido",
              "description": "Mueve el estado interno del pedido, con los datos que cada estado exige."
            },
            {
              "name": "ave_anular_pedido",
              "description": "Anula el pedido y devuelve los productos al inventario. Es destructiva e irreversible."
            },
            {
              "name": "ave_anular_por_referencia",
              "description": "Anula buscando el pedido por su referencia externa. Igual de destructiva."
            },
            {
              "name": "ave_listar_agentes",
              "description": "Lista los vendedores de la empresa e indica cuál es el que aplica por defecto."
            }
          ],
          "limitations": [
            "No hace el tracking evento por evento. Devuelve el número de guía, la transportadora y el estado del envío de cada pedido, pero el historial de movimientos vive en la transportadora.",
            "No edita libremente un pedido que ya tiene guía generada. Ciertos cambios los rechaza la plataforma, y anular falla si ya hay número de envío asociado.",
            "No procesa tarjetas ni tiene pasarela propia. Lo que sí hace es dejar armado el recaudo contra entrega: el valor a cobrar viaja en el pedido y lo recauda la transportadora al entregar.",
            "No elige la transportadora por su cuenta a menos que se lo pidas. Si le pasas el operador, lo fuerza; si no, la elección la hace Aveonline, no Meteor.",
            "No administra el catálogo. Lo consulta, pero los productos se cargan en Aveonline."
          ],
          "requirements": [
            {
              "name": "Cuenta de Aveonline con el módulo de API activo",
              "howToObtain": "La cuenta debe tener habilitado el módulo de API de AveCRM, no solo el acceso web. Si el inicio de sesión falla con un error de producto, hay que pedirle la activación a Aveonline."
            },
            {
              "name": "Usuario y contraseña de la cuenta",
              "howToObtain": "Son los mismos del portal. Los tokens se renuevan solos, así que no hay que configurarlos aparte."
            },
            {
              "name": "Vendedor por defecto (opcional)",
              "howToObtain": "Si no lo defines, se usa el que devuelve el inicio de sesión. Sirve para atribuir los pedidos al comercial correcto."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/aveonline"
        },
        "en": {
          "name": "Aveonline",
          "category": "Run stores and orders",
          "summary": "Meteor's integration connects AveCRM by Aveonline to WhatsApp to read the catalog, create and confirm orders, manage cash on delivery, and return the shipping-label number, carrier and shipment status. Aveonline continues to host the catalog and generates the label when the order is confirmed; Meteor provides the AI agent that runs those actions from the conversation.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Aveonline is a Colombian e-commerce and logistics platform. Confirming the order is what generates the shipping label.",
          "tools": [
            {
              "name": "ave_listar_productos",
              "description": "Lists the catalog with filters for name, category, price range and status."
            },
            {
              "name": "ave_ver_producto",
              "description": "Returns a product with its variants, images, dimensions, weight, inventory and costs."
            },
            {
              "name": "ave_listar_pedidos",
              "description": "Lists orders between two dates, or finds one by number or customer, and returns the label number, the carrier and the shipment status of each."
            },
            {
              "name": "ave_generar_pedido",
              "description": "Creates the order with its cash on delivery amount and, if you want, forcing a carrier. This is a real commercial action and it asks you to confirm products, totals and customer."
            },
            {
              "name": "ave_editar_pedido",
              "description": "Edits an existing order, under the same product rules as creating one."
            },
            {
              "name": "ave_confirmar_pedido",
              "description": "Confirms the order and generates the shipping label with the carrier."
            },
            {
              "name": "ave_confirmar_por_referencia",
              "description": "Confirms by looking the order up by your own external reference, waits for the label and returns its number, the carrier and a message ready to send to the customer."
            },
            {
              "name": "ave_actualizar_estado_pedido",
              "description": "Moves the internal status of the order, with the data each status requires."
            },
            {
              "name": "ave_anular_pedido",
              "description": "Voids the order and returns the products to inventory. Destructive and irreversible."
            },
            {
              "name": "ave_anular_por_referencia",
              "description": "Voids by looking the order up by your external reference. Just as destructive."
            },
            {
              "name": "ave_listar_agentes",
              "description": "Lists the company's sales reps and flags which one applies by default."
            }
          ],
          "limitations": [
            "It does not do event by event tracking. It returns the label number, the carrier and the shipment status of every order, but the movement history lives at the carrier.",
            "It does not freely edit an order that already has a label. The platform rejects certain changes, and voiding fails once a shipment number exists.",
            "It does not process cards and it has no checkout of its own. What it does do is set up cash on delivery: the amount to collect travels on the order and the carrier collects it.",
            "It does not pick the carrier on its own unless you ask it to. Pass the operator and it forces that one; leave it out and the choice is made by Aveonline, not by Meteor.",
            "It does not manage the catalog. It reads it, and products are loaded in Aveonline."
          ],
          "requirements": [
            {
              "name": "An Aveonline account with the API module enabled",
              "howToObtain": "The account needs the AveCRM API module turned on, not just web access. If sign in fails with a product error, ask Aveonline to enable it."
            },
            {
              "name": "The account username and password",
              "howToObtain": "The same ones you use in the portal. Tokens refresh on their own, so there is nothing extra to configure."
            },
            {
              "name": "A default sales rep (optional)",
              "howToObtain": "If you do not set one, the rep returned at sign in is used. It is what credits orders to the right person."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/aveonline"
        }
      }
    },
    {
      "id": "calcom",
      "catalogStatus": "published",
      "toolCount": 6,
      "locales": {
        "es": {
          "name": "Cal.com",
          "category": "Vender y atender",
          "summary": "Meteor se conecta con la API v2 de Cal.com para que tu agente de IA consulte los tipos de evento disponibles, devuelva los horarios libres entre dos fechas, cree la reserva con los datos del asistente, la recupere y la cancele. Soporta varias cuentas en un mismo espacio de trabajo, que es lo que necesita un negocio con varias sedes o varios profesionales.",
          "tools": [
            {
              "name": "cal_list_accounts",
              "description": "Lista las cuentas de Cal.com conectadas, con la descripción de para qué es cada una."
            },
            {
              "name": "cal_get_event_types",
              "description": "Lista los tipos de evento del usuario autenticado con su duración y su título."
            },
            {
              "name": "cal_get_slots",
              "description": "Devuelve los horarios disponibles de un tipo de evento entre dos fechas, con zona horaria."
            },
            {
              "name": "cal_create_booking",
              "description": "Crea la reserva usando el horario exacto que devolvió la consulta de disponibilidad."
            },
            {
              "name": "cal_get_booking",
              "description": "Recupera los detalles de una reserva existente por su identificador."
            },
            {
              "name": "cal_cancel_booking",
              "description": "Cancela una reserva, con un motivo opcional."
            }
          ],
          "limitations": [
            "No configura Cal.com. Los tipos de evento, las duraciones y las disponibilidades se definen en Cal.com; el agente los lee y los usa.",
            "No reprograma en un paso. Para mover una reserva hay que cancelarla y crear otra, a diferencia de la agenda nativa de Meteor, que sí reprograma directamente.",
            "No cobra la reserva ni gestiona anticipos.",
            "No convierte horas a UTC dentro de la conversación. Usa el valor exacto del horario que devolvió la disponibilidad, porque reconstruir la hora es como se agenda en el turno equivocado."
          ],
          "requirements": [
            {
              "name": "Una cuenta de Cal.com con acceso a su API v2",
              "howToObtain": "Se conecta desde el panel de Meteor. Si hay varias sedes o profesionales, se pueden conectar varias cuentas y ponerle una etiqueta a cada una."
            },
            {
              "name": "Tipos de evento ya creados en Cal.com",
              "howToObtain": "Se definen en Cal.com con su duración y su disponibilidad. El agente los lee; no los crea."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/calcom"
        },
        "en": {
          "name": "Cal.com",
          "category": "Sell and serve",
          "summary": "Meteor talks to the Cal.com v2 API so your Met can read the event types you offer, return the open times between two dates, create the booking with the attendee details, retrieve it and cancel it. It supports several Cal.com accounts in one workspace, which is what a business with multiple locations or multiple providers actually needs.",
          "tools": [
            {
              "name": "cal_list_accounts",
              "description": "Lists the Cal.com accounts connected, with a description of what each one is for."
            },
            {
              "name": "cal_get_event_types",
              "description": "Lists the event types of the authenticated user, with title and duration."
            },
            {
              "name": "cal_get_slots",
              "description": "Returns the open times for an event type between two dates, with time zone."
            },
            {
              "name": "cal_create_booking",
              "description": "Creates the booking using the exact time returned by the availability call."
            },
            {
              "name": "cal_get_booking",
              "description": "Retrieves the details of an existing booking by its identifier."
            },
            {
              "name": "cal_cancel_booking",
              "description": "Cancels a booking, with an optional reason."
            }
          ],
          "limitations": [
            "It does not configure Cal.com. Event types, durations and availability are defined in Cal.com, and your Met reads and uses them.",
            "It does not reschedule in one step. Moving a booking means canceling it and creating another, unlike Meteor's native scheduling, which reschedules directly.",
            "It does not charge for the booking or handle deposits.",
            "It does not convert times to UTC inside the conversation. It uses the exact value returned by the availability call, because rebuilding a time is how bookings land on the wrong slot."
          ],
          "requirements": [
            {
              "name": "A Cal.com account with access to its v2 API",
              "howToObtain": "You connect it from the Meteor panel. If you run several locations or providers, connect several accounts and label each one."
            },
            {
              "name": "Event types already created in Cal.com",
              "howToObtain": "You define them in Cal.com with their duration and availability. Your Met reads them and does not create them."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/calcom"
        }
      }
    },
    {
      "id": "chilexpress",
      "catalogStatus": "published",
      "toolCount": 8,
      "locales": {
        "es": {
          "name": "Chilexpress",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con la transportadora chilena Chilexpress para que tu Met confirme si llega a una comuna, resuelva el código de esa comuna aunque el cliente lo escriba con tildes, cotice un envío con sus opciones de servicio y rastree una orden de transporte. Son 8 herramientas y ninguna escribe: crear la orden genera una etiqueta y un cobro reales, y quedó fuera a propósito. La cobertura funciona sin ninguna credencial, en pruebas y en producción, así que un Met puede contestar «¿llegan a Puerto Varas?» el primer día. Cotizar y rastrear sí piden cada uno su propia clave del portal de Chilexpress.",
          "markets": [
            "Chile"
          ],
          "marketNote": "El código de comuna de Chilexpress es alfabético de cuatro letras y no es el código oficial del país: el conector lo resuelve a partir del nombre y obliga a desambiguar los homónimos.",
          "tools": [
            {
              "name": "chilexpress_consultar_conexion",
              "description": "Reporta qué está configurado en este espacio de trabajo: ambiente, claves cargadas y comuna de origen."
            },
            {
              "name": "chilexpress_listar_regiones",
              "description": "Lista las dieciséis regiones de Chile con su código de Chilexpress. No necesita credenciales."
            },
            {
              "name": "chilexpress_buscar_comuna",
              "description": "Busca una comuna por nombre y devuelve su código de cuatro letras, encontrándola con tildes o sin ellas."
            },
            {
              "name": "chilexpress_consultar_cobertura",
              "description": "Dice si Chilexpress llega a una comuna y con qué modalidad. Responde sin credenciales."
            },
            {
              "name": "chilexpress_listar_comunas",
              "description": "Lista las comunas y localidades con cobertura de una región, para mostrarle opciones a quien no sabe el nombre exacto."
            },
            {
              "name": "chilexpress_cotizar_envio",
              "description": "Devuelve las opciones de servicio con su precio, su peso final facturado y sus condiciones."
            },
            {
              "name": "chilexpress_rastrear_envio",
              "description": "Rastrea una orden de transporte por su número o por la referencia con la que se creó, con sus eventos."
            },
            {
              "name": "chilexpress_validar_direccion",
              "description": "Parte una dirección chilena en calle, número y complemento, que es como Chilexpress los pide."
            }
          ],
          "limitations": [
            "No genera órdenes de transporte ni etiquetas. La integración es de solo consulta: crear el envío produce una etiqueta y un cobro reales, es irreversible y queda para una fase posterior.",
            "No devuelve tu tarifa negociada. Chilexpress advierte en su propio portal que la cotización no considera descuentos ni tarifas especiales, así que el valor es el de lista. Es lo contrario de lo que ocurre con TCC y con Andreani, donde el precio sale del acuerdo comercial.",
            "No valida direcciones contra un catálogo oficial. Chilexpress no expone esa verificación: el conector solo separa calle, número y complemento, y avisa cuando no encontró número.",
            "No normaliza el estado del envío. Chilexpress entrega los eventos como texto libre, sin códigos estables, así que no hay un estado comparable entre envíos ni entre transportadoras.",
            "No habilita producción por su cuenta. Las claves de prueba salen solas del portal, pero las de producción exigen generar diez órdenes simuladas, enviar sus etiquetas a soporte y esperar la validación de una persona; además la cuenta arranca con un tope mensual de envíos.",
            "No usa una sola credencial para todo. Cotizar y rastrear son dos productos distintos del portal con dos claves distintas, y cargar una en el campo de la otra devuelve un rechazo."
          ],
          "requirements": [
            {
              "name": "Nada, si solo vas a consultar cobertura",
              "howToObtain": "La interfaz de cobertura de Chilexpress es abierta y responde sin credenciales, tanto en pruebas como en producción. Es lo primero que puede contestar un Met, sin trámite previo."
            },
            {
              "name": "Clave del producto Cotizador",
              "howToObtain": "En el portal de desarrolladores de Chilexpress, suscribiéndote al producto de cotización. La clave de pruebas sale sola; la de producción pasa por la certificación manual."
            },
            {
              "name": "Clave del producto de envíos y el RUT de la empresa",
              "howToObtain": "Es la clave del producto de órdenes de transporte, que aquí solo se usa para rastrear, y es distinta de la del cotizador. El RUT se puede pegar con puntos y dígito verificador."
            },
            {
              "name": "Comuna de origen y ambiente (opcionales)",
              "howToObtain": "La comuna desde la que despachas se configura una vez con su código de cuatro letras, para no repetirla en cada cotización. El ambiente arranca en pruebas."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/chilexpress"
        },
        "en": {
          "name": "Chilexpress",
          "category": "Run stores and orders",
          "summary": "Meteor connects to the Chilean carrier Chilexpress so your Met can confirm whether it reaches a district, resolve that district's code even when the customer types it with accents, quote a shipment with its service options and track a transport order. There are 8 tools and none of them writes: creating the order produces a real label and a real charge, so it was left out on purpose. Coverage works with no credentials at all, in test and in production, so a Met can answer \"do you deliver to Puerto Varas?\" on day one. Quoting and tracking each require their own key from the Chilexpress portal.",
          "markets": [
            "Chile"
          ],
          "marketNote": "The Chilexpress district code is four letters and it is not the country's official code: the connector resolves it from the name and forces you to disambiguate identical names.",
          "tools": [
            {
              "name": "chilexpress_consultar_conexion",
              "description": "Reports what is configured in this workspace: environment, which keys are loaded and the default origin."
            },
            {
              "name": "chilexpress_listar_regiones",
              "description": "Lists the sixteen regions of Chile with their Chilexpress code. It needs no credentials."
            },
            {
              "name": "chilexpress_buscar_comuna",
              "description": "Finds a district by name and returns its four letter code, matching it with or without accents."
            },
            {
              "name": "chilexpress_consultar_cobertura",
              "description": "Says whether Chilexpress reaches a district and under what mode. It answers with no credentials."
            },
            {
              "name": "chilexpress_listar_comunas",
              "description": "Lists the districts and localities covered in a region, to show options to someone unsure of the exact name."
            },
            {
              "name": "chilexpress_cotizar_envio",
              "description": "Returns the service options with their price, the final chargeable weight and their conditions."
            },
            {
              "name": "chilexpress_rastrear_envio",
              "description": "Tracks a transport order by its number or by the reference it was created with, with its events."
            },
            {
              "name": "chilexpress_validar_direccion",
              "description": "Splits a Chilean address into street, number and unit, which is how Chilexpress asks for them."
            }
          ],
          "limitations": [
            "It does not create transport orders or labels. This integration is read only: creating a shipment produces a real label and a real charge, it is irreversible, and it belongs to a later phase.",
            "It does not return your negotiated rate. Chilexpress states on its own portal that its quoting service does not take discounts or special rates into account, so the figure is the list price. That is the opposite of TCC and Andreani, where price comes from your contract.",
            "It does not validate addresses against an official catalog. Chilexpress does not expose that check, so the connector only splits street, number and unit, and flags a missing number.",
            "It does not normalize shipment status. Chilexpress returns events as free text with no stable codes, so there is no comparable status across shipments or across carriers.",
            "It does not open production on its own. Test keys come straight from the portal, but production keys require ten simulated orders, their labels emailed to support and a human review, and the account starts with a monthly shipment cap.",
            "It does not use one credential for everything. Quoting and tracking are two separate products in the portal with two separate keys, and loading one into the other is rejected."
          ],
          "requirements": [
            {
              "name": "Nothing, if all you need is coverage",
              "howToObtain": "The Chilexpress coverage interface is open and answers with no credentials, in test and in production. It is the first thing a Met can answer, with no paperwork beforehand."
            },
            {
              "name": "A key for the quoting product",
              "howToObtain": "From the Chilexpress developer portal, by subscribing to the quoting product. The test key comes on its own; the production one goes through the manual certification process."
            },
            {
              "name": "A key for the shipping product and the company tax ID",
              "howToObtain": "The key belongs to the transport orders product, used here only for tracking, and it is a different key from the quoting one. The tax ID can be pasted with dots and check digit."
            },
            {
              "name": "Origin district and environment (optional)",
              "howToObtain": "The district you ship from is configured once with its four letter code, so you do not repeat it on every quote. The environment starts in test."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/chilexpress"
        }
      }
    },
    {
      "id": "contifico",
      "catalogStatus": "published",
      "toolCount": 16,
      "reviewedAt": "2026-08-14",
      "locales": {
        "es": {
          "name": "Contífico",
          "category": "Cobrar y administrar",
          "summary": "Meteor se conecta con Contífico a través de su API y le da a tu Met 16 herramientas para operar el frente comercial ecuatoriano desde una conversación: consultar el catálogo con sus precios y su stock por bodega, identificar a una persona por cédula, RUC o número de celular, armar una cotización con los totales ya cuadrados, revisar la cartera de un cliente y responder si el comprobante ya está autorizado por el SRI, con su RIDE y su XML. Son cinco las herramientas que quedan reservadas al operador por web: facturar, registrar un cobro, mover inventario, listar las cuentas bancarias y consultar la ficha de la empresa. El conector las rechaza cuando quien las pide es un Met de canal, porque un comprobante electrónico autorizado solo se corrige con una nota de crédito; las dos últimas solo leen y aun así están dentro del bloqueo, porque son datos de la contabilidad y no del catálogo.",
          "markets": [
            "Ecuador"
          ],
          "marketNote": "El conector calcula los totales antes de emitir porque Contífico no los calcula: manda el subtotal gravado, la base con tarifa cero, la base no gravable, el ICE y el IVA ya resueltos.",
          "tools": [
            {
              "name": "consultar_producto",
              "description": "Busca un producto o servicio por nombre o código y devuelve su identificador, su PVP, su IVA y su stock total."
            },
            {
              "name": "consultar_stock",
              "description": "Devuelve la disponibilidad de un producto desglosada por bodega, no solo el total."
            },
            {
              "name": "listar_inventario",
              "description": "Lista o busca el catálogo trayendo en un solo llamado nombre, código, las cuatro listas de precios, IVA y stock."
            },
            {
              "name": "listar_bodegas",
              "description": "Lista las bodegas con su identificador y con cuáles sirven para venta, compra y producción."
            },
            {
              "name": "buscar_cliente",
              "description": "Identifica a una persona por razón social, cédula, RUC, correo o celular, con sus últimos documentos."
            },
            {
              "name": "crear_cliente",
              "description": "Crea una persona, cliente o proveedor, deduciendo del RUC si es natural o jurídica."
            },
            {
              "name": "crear_cotizacion",
              "description": "Crea una cotización con los totales calculados a partir del catálogo. No es una factura y no llega al SRI. Exige que la persona ya exista: cotizar no la da de alta, para no dejar fichas duplicadas."
            },
            {
              "name": "crear_factura",
              "description": "Emite una factura de venta y, si se pide electrónica, la firma y la envía al SRI. A diferencia de la cotización, sí da de alta al cliente nuevo. Solo desde el escritorio: el conector la rechaza si quien la pide es un Met de canal."
            },
            {
              "name": "listar_documentos",
              "description": "Filtra facturas, cotizaciones y notas de crédito por tipo, cliente y fechas, con su total y su saldo."
            },
            {
              "name": "consultar_estado_sri",
              "description": "Dice en qué punto va el comprobante electrónico ante el SRI y devuelve el enlace al RIDE y al XML."
            },
            {
              "name": "registrar_cobro",
              "description": "Registra un cobro contra un documento en efectivo, cheque, tarjeta o transferencia. Solo desde el escritorio: el conector la rechaza si quien la pide es un Met de canal."
            },
            {
              "name": "consultar_cobros",
              "description": "Lista los cobros ya aplicados a un documento y las condiciones de pago pactadas."
            },
            {
              "name": "listar_movimientos_inventario",
              "description": "Lista ingresos, egresos, traslados y ajustes de costo por bodega, tipo y rango de fechas."
            },
            {
              "name": "registrar_movimiento_inventario",
              "description": "Registra un ingreso, un egreso, un traslado entre bodegas o un ajuste de costo. Mueve stock real. Solo desde el escritorio: el conector la rechaza si quien la pide es un Met de canal."
            },
            {
              "name": "listar_cuentas_bancarias",
              "description": "Lista las cuentas bancarias configuradas, que es lo que hace falta para cobrar por transferencia. Aunque solo lee, está en el grupo fiscal: solo desde el escritorio."
            },
            {
              "name": "consultar_empresa",
              "description": "Devuelve los parámetros de configuración de la empresa. Sirve para verificar que la credencial funciona. Aunque solo lee, está en el grupo fiscal: solo desde el escritorio."
            }
          ],
          "limitations": [
            "No factura, no registra cobros y no mueve inventario desde un Met de canal. El conector rechaza esas herramientas cuando la petición llega por WhatsApp, Instagram o Messenger: un comprobante electrónico autorizado ante el SRI no se borra, se corrige con nota de crédito.",
            "Tampoco lista cuentas bancarias ni consulta la ficha de la empresa desde un canal. Las dos solo leen, pero están en el mismo grupo fiscal que las escrituras y el bloqueo las alcanza igual. Son cinco herramientas de las dieciséis, no tres.",
            "No da de alta al cliente al cotizar. Facturar sí lo crea, porque ahí el alta es parte del acto comercial; cotizar no, para no dejar fichas duplicadas. Si quien escribe es nuevo, hay que crearlo primero y reintentar la cotización con su identificador.",
            "No emite notas de crédito ni anula comprobantes. Puede listarlas y leerlas, pero la corrección de un documento ya autorizado se hace en Contífico, con criterio contable de por medio.",
            "No confía en los totales que le pasen. Contífico no los calcula, así que los arma el conector y, si no cuadran con el total que el operador ya comunicó, la operación se detiene sin emitir.",
            "No genera el número del documento. Contífico exige el consecutivo con su formato de establecimiento y punto de emisión, y ese dato sale de tu propia numeración autorizada.",
            "No es la integración de Siigo. Siigo compró Contífico, pero son productos distintos con APIs incompatibles: si facturas en Siigo Nube, la ficha que te sirve es la de Siigo.",
            "No hace cierres contables, no genera estados financieros y no presenta declaraciones. Es una ventana operativa sobre Contífico, no un reemplazo de tu contador."
          ],
          "requirements": [
            {
              "name": "API key de Contífico",
              "howToObtain": "Se solicita al soporte de Contífico y su disponibilidad depende del plan que tengas contratado. Viaja tal cual en el encabezado de autorización, sin prefijo, y se guarda cifrada por espacio de trabajo."
            },
            {
              "name": "API Token del POS",
              "howToObtain": "Sale del mismo trámite que la API key. Contífico lo exige para crear documentos y personas; las consultas de catálogo, cartera y SRI funcionan sin él."
            },
            {
              "name": "Tu numeración autorizada",
              "howToObtain": "Es la que ya usas en Contífico, con su establecimiento y su punto de emisión. El conector la recibe como dato del documento, no la inventa ni la reserva."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/contifico"
        },
        "en": {
          "name": "Contífico",
          "category": "Collect and manage",
          "summary": "Meteor connects to Contifico through its API and gives your Met 16 tools to run the Ecuadorian commercial front from a live conversation: check the catalog with its prices and its stock by warehouse, identify a person by national ID, tax ID or mobile number, build a quote with the totals already reconciled, review a customer's receivables, and answer whether the e-invoice is authorized by the SRI, with its RIDE and its XML. Five tools stay with the operator on the web: invoicing, recording a payment, moving inventory, listing the bank accounts and reading the company profile. The connector refuses them when the request comes from a channel Met, because an authorized electronic document is corrected with a credit note and not with a delete. The last two only read and are still inside the block, because that is accounting data, not catalog data.",
          "markets": [
            "Ecuador"
          ],
          "marketNote": "The connector computes the totals before issuing because Contifico does not: it sends the taxed subtotal, the zero rated base, the non taxable base, the excise tax and the VAT already solved.",
          "tools": [
            {
              "name": "consultar_producto",
              "description": "Finds a product or service by name or code and returns its id, its retail price, its VAT and its total stock."
            },
            {
              "name": "consultar_stock",
              "description": "Returns availability for a product broken down by warehouse, not just the total."
            },
            {
              "name": "listar_inventario",
              "description": "Lists or searches the catalog, returning name, code, the four price lists, VAT and stock in one call."
            },
            {
              "name": "listar_bodegas",
              "description": "Lists warehouses with their id and which ones are flagged for sales, purchasing and production."
            },
            {
              "name": "buscar_cliente",
              "description": "Identifies a person by legal name, national ID, tax ID, email or mobile, with their latest documents."
            },
            {
              "name": "crear_cliente",
              "description": "Creates a person, customer or supplier, inferring from the tax ID whether they are an individual or a company."
            },
            {
              "name": "crear_cotizacion",
              "description": "Creates a quote with totals computed from the catalog. It is not an invoice and it never reaches the SRI. It requires the person to exist already; quoting does not create them."
            },
            {
              "name": "crear_factura",
              "description": "Issues a sales invoice and, when asked for an electronic one, signs it and files it with the SRI. Unlike the quote, it does register a new customer. Desk only, the connector refuses it for a channel Met."
            },
            {
              "name": "listar_documentos",
              "description": "Filters invoices, quotes and credit notes by type, customer and dates, with their total and balance."
            },
            {
              "name": "consultar_estado_sri",
              "description": "Says where the electronic document stands with the SRI and returns the link to its RIDE and its XML."
            },
            {
              "name": "registrar_cobro",
              "description": "Records a payment against a document in cash, cheque, card or bank transfer. Desk only, the connector refuses it for a channel Met."
            },
            {
              "name": "consultar_cobros",
              "description": "Lists the payments already applied to a document and the agreed payment terms."
            },
            {
              "name": "listar_movimientos_inventario",
              "description": "Lists inbound, outbound, transfers and cost adjustments by warehouse, type and date range."
            },
            {
              "name": "registrar_movimiento_inventario",
              "description": "Records an inbound, an outbound, a transfer between warehouses or a cost adjustment. It moves real stock. Desk only, the connector refuses it for a channel Met."
            },
            {
              "name": "listar_cuentas_bancarias",
              "description": "Lists the bank accounts configured, which is what a transfer payment needs. It only reads, but it sits in the fiscal group, so it is desk only."
            },
            {
              "name": "consultar_empresa",
              "description": "Returns the company configuration. Useful to verify that the credential works. It only reads, but it sits in the fiscal group, so it is desk only."
            }
          ],
          "limitations": [
            "It does not invoice, record payments or move inventory from a channel Met. The connector refuses those tools over WhatsApp, Instagram and Messenger: an electronic document authorized by the SRI cannot be deleted, it is corrected with a credit note.",
            "It does not list bank accounts or read the company profile from a channel either. Both only read, but they sit in the same fiscal group as the writes and the block reaches them too. That is five tools out of sixteen, not three.",
            "It does not register the customer while quoting. Invoicing does create them, because there the registration is part of the commercial act; quoting does not, so the master does not fill with duplicates. A new customer has to be created first and the quote retried with their id.",
            "It does not issue credit notes and it does not void documents. It can list and read them, but correcting an authorized document happens in Contifico, with accounting judgment involved.",
            "It does not trust totals handed to it. Contifico does not compute them, so the connector does, and if they disagree with the total already quoted the operation stops without issuing.",
            "It does not generate the document number. Contifico requires the sequence with its establishment and issuing point, and that comes from your own authorized numbering.",
            "It is not the Siigo integration. Siigo bought Contifico, but they are separate products with incompatible APIs: if you invoice in Siigo Nube, the sheet you want is the Siigo one.",
            "It does not close the books, produce financial statements or file tax returns. It is an operating window into Contifico, not a replacement for your accountant."
          ],
          "requirements": [
            {
              "name": "A Contifico API key",
              "howToObtain": "You request it from Contifico support and its availability depends on the plan you have contracted. It travels as is in the authorization header, with no prefix, and is stored encrypted per workspace."
            },
            {
              "name": "The POS API token",
              "howToObtain": "It comes from the same request as the API key. Contifico requires it to create documents and people; catalog, receivables and SRI lookups work without it."
            },
            {
              "name": "Your authorized numbering",
              "howToObtain": "The one you already use in Contifico, with its establishment and issuing point. The connector takes it as part of the document. It neither invents nor reserves it."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/contifico"
        }
      }
    },
    {
      "id": "crm",
      "catalogStatus": "published",
      "toolCount": 24,
      "locales": {
        "es": {
          "name": "CRM de Meteor",
          "category": "Vender y atender",
          "summary": "El CRM de Meteor es nativo y no pide credenciales: tu agente de IA opera sobre él con 24 herramientas. Puede crear y actualizar contactos con campos propios de cualquier tipo, buscar por texto o por estado, mover el embudo comercial y responder cuánta plata hay en cada etapa, poner etiquetas y notas internas, agendar recordatorios que salen por WhatsApp y, cuando hace falta, transferir la conversación a un asesor humano retirándose de ella.",
          "tools": [
            {
              "name": "crm_create_contact",
              "description": "Crea un contacto nuevo y devuelve su identificador."
            },
            {
              "name": "crm_get_contact",
              "description": "Trae los datos completos de un contacto, incluidos sus campos propios."
            },
            {
              "name": "crm_update_contact",
              "description": "Actualiza varios campos en una sola llamada, del sistema o propios, de cualquier tipo."
            },
            {
              "name": "crm_delete_contact",
              "description": "Elimina un contacto y sus mensajes. Es irreversible."
            },
            {
              "name": "crm_search_contacts",
              "description": "Busca por texto libre o filtra por estado, canal o asignación."
            },
            {
              "name": "crm_pipeline_summary",
              "description": "Resume el embudo sobre todos los contactos, con cuántos y cuánta plata hay por etapa."
            },
            {
              "name": "crm_change_status",
              "description": "Cambia el estado del contacto entre abierto, pendiente, finalizado y archivado."
            },
            {
              "name": "crm_transfer_to_human",
              "description": "Escala a un asesor humano, deja la nota con el motivo y retira al agente de la conversación."
            },
            {
              "name": "crm_list_users",
              "description": "Lista los asesores del espacio de trabajo, para resolver un nombre a la persona correcta."
            },
            {
              "name": "crm_assign_human",
              "description": "Asigna un asesor humano al contacto."
            },
            {
              "name": "crm_unassign_human",
              "description": "Deja el contacto sin asesor asignado."
            },
            {
              "name": "crm_add_note",
              "description": "Agrega una nota interna al contacto, con su autor y su fecha."
            },
            {
              "name": "crm_get_notes",
              "description": "Devuelve las notas internas del contacto, de la más reciente a la más antigua."
            },
            {
              "name": "crm_add_tag",
              "description": "Agrega una etiqueta al contacto sin duplicarla si ya la tenía."
            },
            {
              "name": "crm_remove_tag",
              "description": "Quita una etiqueta del contacto."
            },
            {
              "name": "crm_get_tags",
              "description": "Devuelve las etiquetas del contacto."
            },
            {
              "name": "crm_list_custom_fields",
              "description": "Lista las definiciones de campos propios del espacio de trabajo."
            },
            {
              "name": "crm_create_custom_field",
              "description": "Crea una definición de campo propio para los contactos."
            },
            {
              "name": "crm_update_custom_field",
              "description": "Actualiza la etiqueta, el tipo o la descripción de un campo propio."
            },
            {
              "name": "crm_delete_custom_field",
              "description": "Elimina la definición de un campo propio sin borrar los datos ya guardados."
            },
            {
              "name": "crm_send_card",
              "description": "Envía tarjetas con imagen, título y descripción al contacto por el canal."
            },
            {
              "name": "crm_schedule_reminder",
              "description": "Agenda un recordatorio que sale a la hora indicada como plantilla aprobada de WhatsApp."
            },
            {
              "name": "crm_list_reminders",
              "description": "En un canal lista solo los recordatorios del contacto actual; sirve para comprobar pendientes y no programar dos veces el mismo aviso."
            },
            {
              "name": "crm_cancel_reminder",
              "description": "Cancela un recordatorio pendiente que todavía no se envió."
            }
          ],
          "limitations": [
            "No escribe en tu CRM corporativo. Si trabajas con Dynamics u otro sistema, la sincronización la hace esa integración; este es el CRM conversacional de Meteor.",
            "No manda mensajes masivos. Los recordatorios son de a uno y salen como plantilla aprobada, porque el canal tiene sus propias reglas.",
            "No borra sin consecuencias: eliminar un contacto se lleva sus mensajes y es irreversible, así que conviene dejar esa herramienta desactivada en agentes de atención.",
            "No decide solo a qué asesor escalar sin listar a las personas del espacio de trabajo primero; un nombre mal resuelto manda la conversación a la persona equivocada."
          ],
          "requirements": [
            {
              "name": "Nada. No pide credenciales",
              "howToObtain": "El CRM es nativo de Meteor y opera sobre los contactos de tu propio espacio de trabajo."
            },
            {
              "name": "Un canal conectado",
              "howToObtain": "Los contactos entran por WhatsApp, Instagram, Messenger o chat web. Sin canal hay CRM, pero no hay conversación que registrar."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/crm"
        },
        "en": {
          "name": "Meteor CRM",
          "category": "Sell and serve",
          "summary": "The Meteor CRM is built in and asks for no credentials. Your Met works on it with 24 tools. It creates and updates contacts with custom fields of any type, searches by text or by status, moves the sales pipeline and answers how much money sits in each stage, applies tags and internal notes, schedules reminders that go out over WhatsApp, and hands the conversation to a human rep when that is the right call, stepping out of it in the same action.",
          "tools": [
            {
              "name": "crm_create_contact",
              "description": "Creates a new contact and returns its identifier."
            },
            {
              "name": "crm_get_contact",
              "description": "Returns the full record of a contact, custom fields included."
            },
            {
              "name": "crm_update_contact",
              "description": "Updates several fields in one call, system or custom, of any type."
            },
            {
              "name": "crm_delete_contact",
              "description": "Deletes a contact and its messages. This cannot be undone."
            },
            {
              "name": "crm_search_contacts",
              "description": "Searches free text or filters by status, channel or assignment."
            },
            {
              "name": "crm_pipeline_summary",
              "description": "Summarizes the pipeline across every contact, with count and value per stage."
            },
            {
              "name": "crm_change_status",
              "description": "Changes contact status between open, pending, closed and archived."
            },
            {
              "name": "crm_transfer_to_human",
              "description": "Escalates to a human rep, leaves the note with the reason and steps the Met out of the conversation."
            },
            {
              "name": "crm_list_users",
              "description": "Lists the reps in the workspace, so a name resolves to the right person."
            },
            {
              "name": "crm_assign_human",
              "description": "Assigns a human rep to the contact."
            },
            {
              "name": "crm_unassign_human",
              "description": "Leaves the contact with no rep assigned."
            },
            {
              "name": "crm_add_note",
              "description": "Adds an internal note to the contact, with author and date."
            },
            {
              "name": "crm_get_notes",
              "description": "Returns the contact's internal notes, newest first."
            },
            {
              "name": "crm_add_tag",
              "description": "Adds a tag to the contact without duplicating one it already had."
            },
            {
              "name": "crm_remove_tag",
              "description": "Removes a tag from the contact."
            },
            {
              "name": "crm_get_tags",
              "description": "Returns the tags on the contact."
            },
            {
              "name": "crm_list_custom_fields",
              "description": "Lists the custom field definitions in the workspace."
            },
            {
              "name": "crm_create_custom_field",
              "description": "Creates a custom field definition for contacts."
            },
            {
              "name": "crm_update_custom_field",
              "description": "Updates the label, type or description of a custom field."
            },
            {
              "name": "crm_delete_custom_field",
              "description": "Deletes a custom field definition without erasing data already stored."
            },
            {
              "name": "crm_send_card",
              "description": "Sends cards with image, title and description to the contact over the channel."
            },
            {
              "name": "crm_schedule_reminder",
              "description": "Schedules a reminder that goes out at the set time as an approved WhatsApp template."
            },
            {
              "name": "crm_list_reminders",
              "description": "In a channel it lists only the current contact's reminders, so pending notices can be checked before scheduling the same message twice."
            },
            {
              "name": "crm_cancel_reminder",
              "description": "Cancels a pending reminder that has not gone out yet."
            }
          ],
          "limitations": [
            "It does not write to your corporate CRM. If you run Dynamics or another system, that sync belongs to that integration. This is Meteor's conversational CRM.",
            "It does not send bulk messages. Reminders go out one at a time and as an approved template, because the channel has its own rules.",
            "It does not delete without consequences. Deleting a contact takes its messages with it and cannot be undone, so it is worth switching that tool off on service Mets.",
            "It does not pick a rep to escalate to without listing the people in the workspace first. A name resolved badly sends the conversation to the wrong person."
          ],
          "requirements": [
            {
              "name": "Nothing. There are no credentials to enter",
              "howToObtain": "The CRM is native to Meteor and works on the contacts in your own workspace."
            },
            {
              "name": "A connected channel",
              "howToObtain": "Contacts arrive over WhatsApp, Instagram, Messenger or web chat. Without a channel you still have a CRM, but no conversation to record."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/crm"
        }
      }
    },
    {
      "id": "dynamics",
      "catalogStatus": "published",
      "toolCount": 8,
      "locales": {
        "es": {
          "name": "Microsoft Dynamics 365",
          "category": "Vender y atender",
          "summary": "Meteor se conecta con Microsoft Dynamics 365 a través de la Web API de Dataverse y le da a tu agente de IA 8 herramientas: buscar leads antes de crear para no duplicar, crear y actualizar leads, y trabajar con cualquier otra entidad (oportunidades, cuentas, contactos, tareas, casos), incluyendo consultas con parámetros de OData y operaciones que crean o actualizan según si el registro ya existe.",
          "tools": [
            {
              "name": "dynamics_search_leads",
              "description": "Busca clientes potenciales por correo exacto o por texto en nombre, empresa o asunto."
            },
            {
              "name": "dynamics_create_lead",
              "description": "Crea un cliente potencial con los campos que le pases, usando nombres lógicos de Dataverse."
            },
            {
              "name": "dynamics_update_lead",
              "description": "Actualiza un lead existente para reflejar cambios de calificación o de estado."
            },
            {
              "name": "dynamics_upsert_lead",
              "description": "Crea o actualiza deduplicando por correo, y si no hay correo, por teléfono."
            },
            {
              "name": "dynamics_create_record",
              "description": "Crea un registro en cualquier entidad de Dataverse, no solo en leads."
            },
            {
              "name": "dynamics_update_record",
              "description": "Actualiza cualquier registro por su identificador, para cambiar etapa, estado o propietario."
            },
            {
              "name": "dynamics_query_records",
              "description": "Consulta cualquier entidad con parámetros de OData para filtrar, ordenar y expandir."
            },
            {
              "name": "dynamics_upsert_record",
              "description": "Crea o actualiza un registro de cualquier entidad deduplicando por el campo que elijas."
            }
          ],
          "limitations": [
            "No configura Dynamics. No crea entidades ni campos: trabaja sobre el modelo de datos que tu organización ya definió, usando nombres lógicos de columna.",
            "No sincroniza en dos direcciones por su cuenta. Escribe y lee cuando una conversación o un flujo lo dispara; no es una réplica continua.",
            "No gestiona licencias, permisos ni seguridad de Dynamics. Opera con los permisos de la app registrada.",
            "No reemplaza los flujos de Power Automate ni las reglas de negocio del propio Dynamics."
          ],
          "requirements": [
            {
              "name": "URL del entorno de Dynamics",
              "howToObtain": "Es la dirección de tu organización, sin barra final."
            },
            {
              "name": "Identificador de directorio y de aplicación en Entra ID",
              "howToObtain": "Se obtienen al registrar una aplicación en Microsoft Entra ID, con permiso sobre la Web API de Dataverse."
            },
            {
              "name": "Secreto de la aplicación registrada",
              "howToObtain": "Se genera en la misma app de Entra ID y se guarda cifrado por espacio de trabajo. Es lo que autentica cada llamada."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/dynamics"
        },
        "en": {
          "name": "Microsoft Dynamics 365",
          "category": "Sell and serve",
          "summary": "Meteor connects to Microsoft Dynamics 365 through the Dataverse Web API and gives your Met 8 tools: search leads before creating so you do not duplicate them, create and update leads, and work with any other entity (opportunities, accounts, contacts, tasks, cases), including OData queries and operations that create or update depending on whether the record already exists.",
          "tools": [
            {
              "name": "dynamics_search_leads",
              "description": "Finds leads by exact email or by text across name, company or topic."
            },
            {
              "name": "dynamics_create_lead",
              "description": "Creates a lead with the fields you pass, using Dataverse logical names."
            },
            {
              "name": "dynamics_update_lead",
              "description": "Updates an existing lead to reflect a change in qualification or status."
            },
            {
              "name": "dynamics_upsert_lead",
              "description": "Creates or updates, deduplicating by email and, when there is no email, by phone."
            },
            {
              "name": "dynamics_create_record",
              "description": "Creates a record in any Dataverse entity, not only leads."
            },
            {
              "name": "dynamics_update_record",
              "description": "Updates any record by its identifier, to change stage, status or owner."
            },
            {
              "name": "dynamics_query_records",
              "description": "Queries any entity with OData parameters to filter, sort and expand."
            },
            {
              "name": "dynamics_upsert_record",
              "description": "Creates or updates a record in any entity, deduplicating by the field you choose."
            }
          ],
          "limitations": [
            "It does not configure Dynamics. It creates no entities and no fields. It works on the data model your organization already defined, using logical column names.",
            "It does not run a two-way sync on its own. It reads and writes when a conversation or an automation triggers it. This is not a continuous replica.",
            "It does not manage Dynamics licensing, permissions or security. It runs with the permissions of the registered app.",
            "It does not replace Power Automate flows or the business rules inside Dynamics itself."
          ],
          "requirements": [
            {
              "name": "Your Dynamics environment URL",
              "howToObtain": "It is your organization address, with no trailing slash."
            },
            {
              "name": "Directory and application IDs in Entra ID",
              "howToObtain": "You get both when you register an application in Microsoft Entra ID with permission on the Dataverse Web API."
            },
            {
              "name": "The client secret of that registered app",
              "howToObtain": "You generate it in the same Entra ID app, and it is stored encrypted per workspace. It is what authenticates every call."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/dynamics"
        }
      }
    },
    {
      "id": "exito",
      "catalogStatus": "published",
      "toolCount": 5,
      "locales": {
        "es": {
          "name": "Éxito",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor conecta tu catálogo de WooCommerce con el marketplace de Éxito, que corre sobre la plataforma Mirakl. El agente busca tu oferta por referencia, la crea o la actualiza con el precio del canal y el stock con colchón de seguridad, consulta los pedidos pendientes y revisa los avisos que el marketplace envía. WooCommerce es la fuente de verdad; la oferta en Éxito es el espejo.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "El marketplace de Éxito opera en Colombia sobre la plataforma Mirakl, así que la integración habla el protocolo de Mirakl y no una API propia del retailer.",
          "tools": [
            {
              "name": "exito_find_offer_by_sku",
              "description": "Busca tu oferta en el marketplace por la referencia que usas en tu tienda."
            },
            {
              "name": "exito_upsert_offer",
              "description": "Crea o actualiza la oferta con el precio del canal y el stock con colchón, por referencia."
            },
            {
              "name": "exito_get_offer",
              "description": "Trae el detalle de una oferta por su identificador o por tu referencia."
            },
            {
              "name": "exito_get_orders",
              "description": "Lista tus pedidos recientes, por defecto los que están pendientes de aceptar."
            },
            {
              "name": "exito_list_recent_events",
              "description": "Muestra los últimos avisos de pedido recibidos con su estado de validación."
            }
          ],
          "limitations": [
            "No crea productos en el catálogo del marketplace. Sincroniza ofertas sobre productos que ya existen ahí; el alta de un producto nuevo sigue el proceso del retailer.",
            "No acepta ni rechaza pedidos desde el conector. Los lista para que la decisión sea de una persona.",
            "No gestiona la logística ni imprime etiquetas del marketplace.",
            "No valida la firma del aviso de pedido si el retailer no entrega un secreto. En ese caso el pedido se registra igual, pero sin verificar su origen."
          ],
          "requirements": [
            {
              "name": "URL de tu instancia de Mirakl en Éxito",
              "howToObtain": "La entrega Éxito al habilitarte la API como vendedor."
            },
            {
              "name": "Clave de API de vendedor",
              "howToObtain": "Se genera desde tu cuenta de vendedor, en la configuración de API. Autentica cada llamada y se guarda cifrada por espacio de trabajo."
            },
            {
              "name": "Una tienda WooCommerce conectada",
              "howToObtain": "Es la fuente de verdad de precio y stock. Sin ella no hay contra qué sincronizar la oferta."
            },
            {
              "name": "Secreto del aviso de pedidos (opcional)",
              "howToObtain": "Si el retailer lo provee, permite validar la firma de los pedidos entrantes. Sin él los pedidos se registran igual, sin verificación de origen."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/exito"
        },
        "en": {
          "name": "Éxito",
          "category": "Run stores and orders",
          "summary": "Meteor connects your WooCommerce catalog to the Éxito marketplace, which runs on the Mirakl platform. Your Met finds your offer by SKU, creates or updates it with the channel price and the stock minus a safety buffer, checks pending orders and reviews the notifications the marketplace sends. WooCommerce stays the source of truth, and the Éxito offer is the mirror.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "The Éxito marketplace operates in Colombia on the Mirakl platform, so the integration speaks the Mirakl protocol rather than a retailer specific API.",
          "tools": [
            {
              "name": "exito_find_offer_by_sku",
              "description": "Finds your marketplace offer by the SKU you use in your own store."
            },
            {
              "name": "exito_upsert_offer",
              "description": "Creates or updates the offer by SKU, with the channel price and the buffered stock."
            },
            {
              "name": "exito_get_offer",
              "description": "Returns the detail of an offer by its identifier or by your SKU."
            },
            {
              "name": "exito_get_orders",
              "description": "Lists your recent orders, by default the ones waiting to be accepted."
            },
            {
              "name": "exito_list_recent_events",
              "description": "Shows the latest order notifications received, with their validation status."
            }
          ],
          "limitations": [
            "It does not create products in the marketplace catalog. It syncs offers on products that already exist there. Listing a new product follows the retailer's own process.",
            "It does not accept or reject orders from the connector. It lists them so a person makes the call.",
            "It does not handle logistics or print marketplace shipping labels.",
            "It does not validate the signature of the order notification when the retailer provides no secret. In that case the order is still recorded, but its origin is unverified."
          ],
          "requirements": [
            {
              "name": "The URL of your Mirakl instance at Éxito",
              "howToObtain": "Éxito provides it when they enable API access for you as a seller."
            },
            {
              "name": "A seller API key",
              "howToObtain": "You generate it in your seller account, under API settings. It authenticates every call and is stored encrypted per workspace."
            },
            {
              "name": "A connected WooCommerce store",
              "howToObtain": "It is the source of truth for price and stock. Without it there is nothing to sync the offer against."
            },
            {
              "name": "The order notification secret (optional)",
              "howToObtain": "When the retailer provides it, incoming orders get their signature validated. Without it orders are still recorded, with no origin check."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/exito"
        }
      }
    },
    {
      "id": "fudo",
      "catalogStatus": "vendor_approval_required",
      "toolCount": 7,
      "reviewedAt": "2026-08-25",
      "locales": {
        "es": {
          "name": "Fudo",
          "category": "Operar tienda y pedidos",
          "summary": "Esta ficha describe un conector técnico de Meteor construido contra el OpenAPI público de Fudo; no es documentación oficial de Fudo, una integración homologada ni una función disponible para contratar. Meteor no aparece en la lista publicada de partners oficiales de Fudo. El código contempla 7 herramientas para leer menú y mesas, crear y ampliar comandas de salón y consultar el estado de cada plato. No cubre domicilio, para llevar, cobros o caja. La API pública general de Fudo está incluida en Plan Pro, pero Fudo limita las conexiones de sitios propios a desarrollos de uso único del restaurante sin intermediarios y advierte que las integraciones ofrecidas que no aparecen en su listado no están homologadas. Por eso no se conectan credenciales ni se promete implementación hasta contar con autorización u homologación de Fudo y validar el contrato contra una cuenta real.",
          "tools": [
            {
              "name": "fudo_listar_categorias",
              "description": "Lista las categorías del menú (entradas, principales, bebidas) con su orden de carta y la cocina a la que se despacha cada una."
            },
            {
              "name": "fudo_buscar_productos",
              "description": "Busca platos y bebidas por nombre o por categoría y devuelve su identificador, su precio y si están activos en la carta. Es de donde sale el identificador que pide la comanda."
            },
            {
              "name": "fudo_listar_mesas",
              "description": "Lista las mesas con su número y su salón, y marca cuáles tienen una venta abierta cuando Fudo devuelve ese dato."
            },
            {
              "name": "fudo_crear_comanda",
              "description": "Crea la comanda de salón sobre una mesa y le carga los platos, que es lo que hace que el pedido llegue a la cocina. Exige la mesa y la cantidad de comensales."
            },
            {
              "name": "fudo_agregar_a_comanda",
              "description": "Agrega platos a una comanda que ya está abierta, cuando el cliente pide algo más."
            },
            {
              "name": "fudo_consultar_pedido",
              "description": "Devuelve el estado de una comanda, su total, su mesa y en qué va cada plato en la cocina: pendiente, preparándose, listo o servido."
            },
            {
              "name": "fudo_listar_pedidos_abiertos",
              "description": "Lista las comandas en curso del local, de la más reciente a la más vieja, para encontrar la de una mesa cuando no tienes su identificador."
            }
          ],
          "limitations": [
            "No es una integración homologada ni disponible para contratar. Meteor no aparece en la lista de partners oficiales de Fudo; Fudo advierte que no brinda soporte ni se responsabiliza por integraciones ofrecidas fuera de ese listado.",
            "No toma pedidos a domicilio ni para llevar. Esta API de Fudo solo acepta crear ventas de salón y exige la mesa; los pedidos que no se consumen en el local viven en otra API distinta de Fudo, que no está integrada.",
            "No cobra la cuenta ni cierra la caja. Ninguna de las siete herramientas toca pagos, propinas, medios de pago ni el cierre del turno: la comanda entra por aquí y la cobranza sigue haciéndose en Fudo.",
            "No inventa el detalle de una comanda. Cuando la respuesta de Fudo no trae las líneas, la herramienta devuelve sus identificadores y avisa que el detalle hay que verlo en el sistema del local, en lugar de rellenar con platos que nadie pidió.",
            "No entrega un estado de cocina del pedido entero. El estado fino vive en cada línea, así que una comanda puede tener un plato servido y otro sin empezar: se responde por línea, no con un único estado que promediaría dos cosas distintas.",
            "No edita el menú. Lee productos, precios y categorías tal como están cargados en Fudo, pero no crea platos, no cambia importes y no activa ni desactiva nada de la carta.",
            "No anula ni corrige una línea ya cargada. Un plato que entró mal se saca desde Fudo, por una persona: el conector no expone la anulación, y una comanda que llega a cocina ya movió trabajo real.",
            "No reserva mesas ni afirma siempre cuáles están ocupadas. Marca la ocupación solo cuando Fudo devuelve las ventas activas junto con las mesas, y cuando no las devuelve lo dice en vez de suponerlo.",
            "No trae respuestas confirmadas contra una cuenta real. El contrato salió del OpenAPI público de Fudo y el transporte está verificado por sondeo, pero Fudo no ofrece ambiente de pruebas, así que la forma exacta de cada respuesta se confirma con el primer local que lo use."
          ],
          "requirements": [
            {
              "name": "Autorización u homologación de Fudo antes de cualquier conexión",
              "howToObtain": "Meteor no aparece hoy en la lista de partners oficiales. Fudo limita la conexión de sitios propios a desarrollos de uso único del restaurante sin intermediarios y advierte sobre las integraciones no homologadas. Hasta que Fudo autorice este caso o homologue a Meteor, la conexión no se ofrece ni se solicitan credenciales de clientes."
            },
            {
              "name": "Plan Pro y credenciales emitidas por Fudo, después de la autorización",
              "howToObtain": "Fudo indica que su API pública de propósito general está incluida en Plan Pro. La cuenta y los permisos siguen bajo las condiciones de Fudo; tener Plan Pro no convierte por sí solo a un intermediario en integración homologada."
            },
            {
              "name": "Un usuario de Fudo dedicado a la API",
              "howToObtain": "Lo creas en tu panel de Fudo, por ejemplo api@turestaurante. Lo que puede hacer tu Met son exactamente los permisos del rol de ese usuario, así que un rol corto se nota como un rechazo al crear la comanda, no al conectar."
            },
            {
              "name": "El salón y el menú cargados en Fudo",
              "howToObtain": "La comanda exige la mesa y el identificador de cada producto, y los dos salen de Fudo. Si las mesas o la carta no están cargadas, no hay nada que el conector pueda inventar en su lugar."
            }
          ],
          "statusNotice": "Meteor no figura en la lista publicada de partners homologados de Fudo. Fudo indica que la API pública general está incluida en Plan Pro, limita las conexiones de sitios propios a desarrollos de uso único del restaurante sin intermediarios y advierte que no soporta integraciones ofrecidas fuera de su lista. Este conector documenta alcance técnico y no está disponible para contratar ni conectar hasta contar con autorización u homologación. Fuente: «Alternativas para conectar sistemas externos», Centro de Ayuda de Fudo, https://soporte.fu.do/es/articles/11732033-alternativas-para-conectar-sistemas-externos.",
          "sourceUrl": "https://meteor.com.co/integraciones/fudo"
        },
        "en": {
          "name": "Fudo",
          "category": "Run stores and orders",
          "summary": "This page describes a technical Meteor connector built against Fudo's public OpenAPI. It is not official Fudo documentation, an approved integration or a feature available for purchase. Meteor does not appear on Fudo's published official partner list. The code covers 7 tools that read the menu and tables, create and extend dine in orders and return the status of every dish. It does not cover delivery, takeaway, payments or till operations. Fudo says its general public API is included with the Pro plan, but limits own-site connections to the restaurant's single-use development with no intermediaries and warns that integrations offered outside its list are not approved. No credentials will be connected and no implementation is promised until Fudo authorizes or approves it and the contract is validated with a real account.",
          "tools": [
            {
              "name": "fudo_listar_categorias",
              "description": "Lists the menu categories, such as starters, mains and drinks, with their order on the card and the kitchen each one is sent to."
            },
            {
              "name": "fudo_buscar_productos",
              "description": "Searches dishes and drinks by name or by category and returns their id, their price and whether they are active on the card. It is where the id the order needs comes from."
            },
            {
              "name": "fudo_listar_mesas",
              "description": "Lists the tables with their number and their room, and flags which ones have an open sale whenever Fudo returns that detail."
            },
            {
              "name": "fudo_crear_comanda",
              "description": "Opens the dine in order on a table and loads the dishes onto it, which is what makes the food reach the kitchen. It requires the table and the number of guests."
            },
            {
              "name": "fudo_agregar_a_comanda",
              "description": "Adds dishes to an order that is already open, for when the customer asks for something else."
            },
            {
              "name": "fudo_consultar_pedido",
              "description": "Returns the status of an order, its total, its table and how each dish is doing in the kitchen: pending, being prepared, ready or served."
            },
            {
              "name": "fudo_listar_pedidos_abiertos",
              "description": "Lists the orders currently in progress, newest first, to find the one for a table when you do not have its id."
            }
          ],
          "limitations": [
            "It is not an approved integration or available for purchase. Meteor does not appear on Fudo's official partner list; Fudo warns that it does not support or take responsibility for integrations offered outside that list.",
            "It does not take delivery or takeaway orders. This Fudo API only accepts dine in sales and requires a table; orders that leave the venue live in a different Fudo API that is not integrated.",
            "It does not settle the bill or close the till. None of the seven tools touches payments, tips, payment methods or the end of shift: the order comes in through here and the money is still handled in Fudo.",
            "It does not invent the detail of an order. When the Fudo response does not carry the lines, the tool returns their ids and says the detail has to be checked in the local system, instead of filling in with dishes nobody ordered.",
            "It does not give a kitchen status for the whole order. The fine grained status lives on each line, so one order can have a dish already served and another not started: it is answered line by line, not with a single status that would average two different things.",
            "It does not edit the menu. It reads products, prices and categories exactly as they are loaded in Fudo, but it does not create dishes, does not change amounts and does not switch anything on the card on or off.",
            "It does not void or fix a line that is already loaded. A dish that went in wrong is removed from Fudo by a person: the connector does not expose the void, and an order that reached the kitchen has already moved real work.",
            "It does not book tables or always claim which ones are busy. It flags occupancy only when Fudo returns the active sales along with the tables, and when it does not return them it says so instead of guessing.",
            "It does not bring responses confirmed against a real account. The contract came from the public Fudo OpenAPI document and the transport is verified by probing, but Fudo offers no test environment, so the exact shape of each response is confirmed with the first venue that uses it."
          ],
          "requirements": [
            {
              "name": "Fudo authorization or approval before any connection",
              "howToObtain": "Meteor does not currently appear on the official partner list. Fudo limits own-site connections to a restaurant's single-use development with no intermediaries and warns about unapproved integrations. Until Fudo authorizes this case or approves Meteor, the connection is not offered and customer credentials are not requested."
            },
            {
              "name": "Pro plan and credentials issued by Fudo, after authorization",
              "howToObtain": "Fudo says its general-purpose public API is included with the Pro plan. The account and its permissions remain subject to Fudo's conditions; having the Pro plan does not by itself make an intermediary an approved integration."
            },
            {
              "name": "A Fudo user dedicated to the API",
              "howToObtain": "You create it in your Fudo panel, for example api@yourrestaurant. What your Met can do is exactly the permissions of that user role, so a narrow role shows up as a refusal when the order is created, not when the connection is made."
            },
            {
              "name": "The dining room and the menu loaded in Fudo",
              "howToObtain": "The order requires the table and the id of every product, and both come from Fudo. If the tables or the card are not loaded, there is nothing the connector can make up in their place."
            }
          ],
          "statusNotice": "Meteor is not on Fudo's published approved-partner list. Fudo says its general public API is included with the Pro plan, limits own-site connections to a restaurant's single-use development with no intermediaries, and warns that it does not support integrations offered outside its list. This connector documents technical scope and is not available for purchase or connection until Fudo authorizes or approves it. Source: “Alternatives for connecting external systems,” Fudo Help Center, https://soporte.fu.do/es/articles/11732033-alternativas-para-conectar-sistemas-externos.",
          "sourceUrl": "https://meteor.com.co/en/integraciones/fudo"
        }
      }
    },
    {
      "id": "google-ads",
      "catalogStatus": "published",
      "toolCount": 14,
      "locales": {
        "es": {
          "name": "Google Ads",
          "category": "Crear y promocionar",
          "summary": "Meteor se conecta con la API de Google Ads y le da a tu Met 14 herramientas para administrar la cuenta desde una conversación: listar lo que está corriendo, leer costo, clics y conversiones, cambiar presupuestos, pausar y reactivar campañas, y armar una campaña de búsqueda completa, con su grupo de anuncios, los textos del anuncio y las palabras clave. Además consulta cualquier dato de la cuenta que las otras herramientas no cubran, como públicos o términos de búsqueda. Todo lo que crea nace pausado: nada empieza a gastar hasta que tú lo actives.",
          "tools": [
            {
              "name": "listar_cuentas",
              "description": "Lista las cuentas de Google Ads a las que tienes acceso."
            },
            {
              "name": "listar_campanas",
              "description": "Lista las campañas de una cuenta con su tipo, su estado y su presupuesto diario."
            },
            {
              "name": "ver_rendimiento",
              "description": "Devuelve costo, impresiones, clics, porcentaje de clics, costo por clic promedio y conversiones, de toda la cuenta o de una campaña."
            },
            {
              "name": "consultar",
              "description": "Responde cualquier pregunta sobre la cuenta que las otras herramientas no cubran: palabras clave, anuncios, públicos o términos de búsqueda. Solo lectura; pagina hasta tres bloques por llamada y avisa cuando hay que continuar con el token devuelto."
            },
            {
              "name": "crear_campana_busqueda",
              "description": "Crea una campaña de búsqueda con su presupuesto diario. Nace pausada."
            },
            {
              "name": "crear_grupo_de_anuncios",
              "description": "Crea un grupo de anuncios dentro de una campaña, con su puja por clic."
            },
            {
              "name": "crear_anuncio_de_busqueda",
              "description": "Escribe el anuncio de búsqueda dentro de un grupo, con sus títulos, sus descripciones y la dirección a la que lleva."
            },
            {
              "name": "agregar_palabras_clave",
              "description": "Carga las palabras clave de un grupo de anuncios, con su tipo de concordancia, que es lo que decide qué búsquedas activan el anuncio."
            },
            {
              "name": "actualizar_presupuesto",
              "description": "Cambia el presupuesto diario de una campaña."
            },
            {
              "name": "pausar",
              "description": "Pausa una campaña. Deja de gastar de inmediato."
            },
            {
              "name": "activar",
              "description": "Reactiva una campaña pausada. Es el único paso que pone dinero a correr."
            },
            {
              "name": "buscar_ubicaciones",
              "description": "Traduce el nombre de un lugar al identificador que Google Ads necesita para segmentar, y devuelve el alcance estimado del área. La API no entiende nombres de ciudad."
            },
            {
              "name": "segmentar_campana",
              "description": "Define dónde, en qué idioma y a qué horas se muestra una campaña. Sin ubicación, una campaña se muestra en todo el mundo y el presupuesto se va en clics de otro continente."
            },
            {
              "name": "ver_calidad_del_anuncio",
              "description": "Consulta la eficacia que Google le calcula al anuncio y qué recomienda mejorar, con los consejos ya redactados. Es de solo lectura y responde antes de gastar."
            }
          ],
          "limitations": [
            "No activa nada por su cuenta. Lo que crea nace pausado y activarlo es una decisión tuya, dicha explícitamente.",
            "No decide la estrategia de puja ni reparte el presupuesto entre campañas. Ejecuta lo que le pides y te muestra el resultado, no reemplaza a quien sabe de pauta.",
            "No hace campañas de Shopping, Display, Video ni Performance Max. La creación que sí hace es de campañas de búsqueda.",
            "No mide conversiones ni las configura. Lee las que la cuenta ya tenga configuradas, y no interviene en cómo se cuentan."
          ],
          "requirements": [
            {
              "name": "Una cuenta de Google Ads",
              "howToObtain": "Es la cuenta desde la que ya pautas. Meteor trabaja sobre la tuya, no crea ni cobra en una propia."
            },
            {
              "name": "Un permiso de Google para tu cuenta",
              "howToObtain": "Se autoriza una vez para que tu Met pueda leer y administrar la cuenta en tu nombre."
            },
            {
              "name": "Un token de desarrollador de Google Ads",
              "howToObtain": "Se pide desde una cuenta de administrador en Google Ads. Es un trámite propio de Google y sin él la interfaz de programación no responde, aunque el permiso ya esté dado."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/google-ads"
        },
        "en": {
          "name": "Google Ads",
          "category": "Create and promote",
          "summary": "Meteor connects to the Google Ads API and gives your Met 14 tools to run the account from a chat: list what is live, read cost, clicks and conversions, change budgets, pause and resume campaigns, and build a complete search campaign with its ad group, the ad copy and the keywords. It also answers any question about the account the other tools do not cover, such as audiences or search terms. Everything it creates is born paused: nothing starts spending until you turn it on.",
          "tools": [
            {
              "name": "listar_cuentas",
              "description": "Lists the Google Ads accounts you can reach."
            },
            {
              "name": "listar_campanas",
              "description": "Lists the campaigns on an account with their type, status and daily budget."
            },
            {
              "name": "ver_rendimiento",
              "description": "Returns cost, impressions, clicks, click-through rate, average cost per click and conversions, for the whole account or for one campaign."
            },
            {
              "name": "consultar",
              "description": "Answers any question about the account the other tools do not cover: keywords, ads, audiences or search terms. Read only; it fetches up to three pages per call and says when the returned token must be used to continue."
            },
            {
              "name": "crear_campana_busqueda",
              "description": "Creates a search campaign with its daily budget. It is born paused."
            },
            {
              "name": "crear_grupo_de_anuncios",
              "description": "Creates an ad group inside a campaign, with its cost-per-click bid."
            },
            {
              "name": "crear_anuncio_de_busqueda",
              "description": "Writes the search ad inside a group, with its headlines, its descriptions and the address it sends people to."
            },
            {
              "name": "agregar_palabras_clave",
              "description": "Loads the keywords for an ad group, with their match type, which is what decides the searches that trigger the ad."
            },
            {
              "name": "actualizar_presupuesto",
              "description": "Changes the daily budget of a campaign."
            },
            {
              "name": "pausar",
              "description": "Pauses a campaign. It stops spending immediately."
            },
            {
              "name": "activar",
              "description": "Resumes a paused campaign. It is the only step that puts money in motion."
            },
            {
              "name": "buscar_ubicaciones",
              "description": "Turns the name of a place into the id Google Ads needs for targeting, and returns the estimated reach of that area. The API does not understand city names."
            },
            {
              "name": "segmentar_campana",
              "description": "Sets where a campaign runs, in which language and at which hours. With no location a campaign runs worldwide, and the budget goes on clicks from another continent."
            },
            {
              "name": "ver_calidad_del_anuncio",
              "description": "Reads the ad strength Google calculates and what it recommends improving, with the advice already written out. It is read only and it answers before you spend."
            }
          ],
          "limitations": [
            "It does not turn anything on by itself. What it creates is born paused and activating is your call, said out loud.",
            "It does not decide the bidding strategy or split budget across campaigns. It runs what you ask and shows you the result; it does not replace someone who knows the account.",
            "It does not build Shopping, Display, Video or Performance Max campaigns. What it does create is search campaigns.",
            "It does not measure conversions or set them up. It reads the ones the account already tracks, and does not touch how they are counted."
          ],
          "requirements": [
            {
              "name": "A Google Ads account",
              "howToObtain": "The account you already advertise from. Meteor works on yours; it does not create or bill through one of its own."
            },
            {
              "name": "A Google permission for your account",
              "howToObtain": "Authorized once so your Met can read and manage the account on your behalf."
            },
            {
              "name": "A Google Ads developer token",
              "howToObtain": "Requested from a manager account in Google Ads. It is a Google process of its own, and without it the programming interface does not answer even when the permission is granted."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/google-ads"
        }
      }
    },
    {
      "id": "google-business-profile",
      "catalogStatus": "published",
      "toolCount": 7,
      "reviewedAt": "2026-08-14",
      "locales": {
        "es": {
          "name": "Google Business Profile",
          "category": "Crear y promocionar",
          "summary": "Meteor se conecta con Google Business Profile para que tu agente de IA lea las reseñas de cada sede, redacte la respuesta y la publique solo después de que tú apruebes ese texto, y mantenga al día el horario, el teléfono, el sitio web y la descripción que se ven en Búsqueda y en Maps. Son 7 herramientas. Hay una condición y conviene saberla antes de contratarla: Google no habilita estas APIs por auto-servicio. El acceso se aprueba por solicitud, una sola vez por aplicación, y mientras esa aprobación no exista el conector avisa que no puede leer la ficha en lugar de responder con datos inventados. Además necesitas conectar por OAuth la cuenta de Google que sea propietaria o administradora de la ficha del negocio.",
          "tools": [
            {
              "name": "gbp_listar_cuentas",
              "description": "Lista las cuentas de Google Business Profile que administra la cuenta conectada. Es el punto de partida: el resto de las herramientas necesitan el nombre de cuenta que devuelve."
            },
            {
              "name": "gbp_listar_sedes",
              "description": "Lista las sedes de una cuenta con su nombre, dirección, teléfono, categoría, horario y enlace en Maps. Cada sede es una ficha distinta, con sus propias reseñas."
            },
            {
              "name": "gbp_obtener_sede",
              "description": "Devuelve el detalle completo de una sede: datos de contacto, descripción, horario regular, horario especial y si la ficha figura abierta o cerrada."
            },
            {
              "name": "gbp_listar_resenas",
              "description": "Lista las reseñas de una sede con el autor, las estrellas, el comentario y si ya tienen respuesta, y puede devolver solo las que siguen sin contestar."
            },
            {
              "name": "gbp_responder_resena",
              "description": "Publica la respuesta del negocio a una reseña, visible para cualquiera en Búsqueda y en Maps. Exige una confirmación explícita en cada llamada."
            },
            {
              "name": "gbp_actualizar_horario",
              "description": "Reemplaza el horario regular de atención de una sede. Se envía la semana completa, así que el día que no venga en la lista queda publicado como cerrado."
            },
            {
              "name": "gbp_actualizar_datos",
              "description": "Actualiza el teléfono, el sitio web o la descripción de una sede, solo en los campos que envíes."
            }
          ],
          "limitations": [
            "No se enciende desde tu cuenta. El acceso a estas APIs lo aprueba Google por solicitud, una sola vez y por aplicación, así que la habilitación no depende de una credencial que puedas cargar: depende de ese trámite.",
            "No responde una reseña por su cuenta. Publicar exige una confirmación explícita en cada llamada, porque el texto queda firmado con tu marca y a la vista de cualquiera.",
            "No abre un hilo con el cliente. Una reseña admite una sola respuesta del negocio: publicar encima de una que ya tenía respuesta reemplaza la anterior y no queda historial.",
            "No borra, oculta ni reporta una reseña, ni siquiera una falsa. Eso se solicita desde el panel de Google, lo hace una persona y lo decide Google.",
            "No publica entradas, fotos ni ofertas en la ficha, y no responde las preguntas de la sección de preguntas y respuestas.",
            "No crea una ficha nueva ni verifica un negocio, y no trae estadísticas de vistas, llamadas ni búsquedas."
          ],
          "requirements": [
            {
              "name": "Aprobación de Google al acceso a las APIs de Business Profile",
              "howToObtain": "No la tramitas tú: Google la aprueba por solicitud, una sola vez y por aplicación, con requisitos previos como la justificación comercial, el proyecto en Google Cloud y el sitio web de empresa. Mientras esté pendiente, todas las herramientas responden avisando que la ficha todavía no se puede leer."
            },
            {
              "name": "Cuenta de Google propietaria o administradora de la ficha",
              "howToObtain": "Se conecta por OAuth desde Integraciones, y tiene que ser la misma cuenta que administra el negocio en Google Business Profile. Si conectas una cuenta que no administra esa ficha, Google responde que no tiene permiso sobre ella."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/google-business-profile"
        },
        "en": {
          "name": "Google Business Profile",
          "category": "Create and promote",
          "summary": "Meteor connects to Google Business Profile so your Met can read the reviews of every location, draft the reply and publish it only after you approve that text, and keep the opening hours, phone number, website and description that show up in Search and Maps up to date. That is 7 tools. One condition is worth knowing before you buy it: Google does not enable these APIs on a self serve basis. Access is granted through an application, once per app, and until that approval exists the connector says it cannot read the profile instead of answering with invented data. You also need to connect, over OAuth, the Google account that owns or manages the business profile.",
          "tools": [
            {
              "name": "gbp_listar_cuentas",
              "description": "Lists the Google Business Profile accounts the connected user manages. It is the starting point: every other tool needs the account name it returns."
            },
            {
              "name": "gbp_listar_sedes",
              "description": "Lists the locations of an account with their name, address, phone, category, opening hours and Maps link. Every location is a separate profile, with its own reviews."
            },
            {
              "name": "gbp_obtener_sede",
              "description": "Returns the full detail of one location: contact details, description, regular hours, special hours and whether the profile shows as open or closed."
            },
            {
              "name": "gbp_listar_resenas",
              "description": "Lists the reviews of a location with the author, the star rating, the comment and whether they already have a reply, and can return only the ones still unanswered."
            },
            {
              "name": "gbp_responder_resena",
              "description": "Publishes the business reply to a review, visible to anyone in Search and Maps. It requires an explicit confirmation on every call."
            },
            {
              "name": "gbp_actualizar_horario",
              "description": "Replaces the regular opening hours of a location. The whole week is sent, so any day left out of the list is published as closed."
            },
            {
              "name": "gbp_actualizar_datos",
              "description": "Updates the phone number, the website or the description of a location, only on the fields you send."
            }
          ],
          "limitations": [
            "It cannot be switched on from your account. Access to these APIs is granted by Google through an application, once and per app, so enabling it does not depend on a credential you can paste: it depends on that process.",
            "It does not reply to a review on its own. Publishing requires an explicit confirmation on every call, because the text is signed with your brand and visible to anyone.",
            "It does not open a thread with the customer. A review takes a single business reply: publishing over one that already had a reply replaces it, and no history is kept.",
            "It does not delete, hide or report a review, not even a fake one. That is requested from the Google dashboard, done by a person and decided by Google.",
            "It does not publish posts, photos or offers on the profile, and it does not answer the questions in the questions and answers section.",
            "It does not create a new profile or verify a business, and it does not bring statistics on views, calls or searches."
          ],
          "requirements": [
            {
              "name": "Google approval for access to the Business Profile APIs",
              "howToObtain": "You do not apply for it yourself: Google approves it through an application, once and per app, with prerequisites such as a business justification, a Google Cloud project and a company website. While it is pending, every tool answers saying the profile cannot be read yet."
            },
            {
              "name": "A Google account that owns or manages the profile",
              "howToObtain": "It is connected over OAuth from Integrations, and it has to be the same account that manages the business on Google Business Profile. Connect an account that does not manage that profile and Google answers that it has no permission over it."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/google-business-profile"
        }
      }
    },
    {
      "id": "google-search",
      "catalogStatus": "published",
      "toolCount": 4,
      "locales": {
        "es": {
          "name": "Google Search",
          "category": "Investigar y analizar",
          "summary": "Meteor le da a tu agente de IA acceso a la búsqueda de Google en cuatro superficies: resultados web con su panel de conocimiento y sus preguntas relacionadas, noticias con titular, fuente y fecha, imágenes con su origen, y resultados locales de Maps con dirección, teléfono, calificación y horarios. La clave del servicio la pone la plataforma, así que no hay que configurar nada por espacio de trabajo.",
          "tools": [
            {
              "name": "search_web",
              "description": "Búsqueda web con resultados orgánicos, panel de conocimiento, respuesta destacada y preguntas relacionadas."
            },
            {
              "name": "search_news",
              "description": "Búsqueda de noticias con titular, fuente, fecha y resumen."
            },
            {
              "name": "search_images",
              "description": "Búsqueda de imágenes con su dirección, su miniatura y la fuente de origen."
            },
            {
              "name": "search_local",
              "description": "Búsqueda local en Maps con dirección, teléfono, calificación y horarios de negocios cercanos."
            }
          ],
          "limitations": [
            "No navega ni extrae el contenido completo de una página. Devuelve resultados de búsqueda; leer una página es otra herramienta de la plataforma.",
            "No garantiza que el resultado sea correcto. Es lo que devuelve el buscador, con el sesgo y la frescura del buscador.",
            "No hace seguimiento de posiciones de tu sitio. Para eso está Search Console dentro de la integración de Google Workspace.",
            "No descarga imágenes ni resuelve derechos de uso. Devuelve la dirección y la fuente, nada más."
          ],
          "requirements": [
            {
              "name": "Nada por tu parte",
              "howToObtain": "La clave del servicio de búsqueda es de la plataforma y vive en el servidor de Meteor. La herramienta queda disponible sin configuración por espacio de trabajo."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/google-search"
        },
        "en": {
          "name": "Google Search",
          "category": "Research and analyze",
          "summary": "Meteor gives your Met access to Google Search across four surfaces: web results with the knowledge panel and related questions, news with headline, source and date, images with their origin, and local Maps results with address, phone, rating and opening hours. The service key belongs to the platform, so there is nothing to configure per workspace.",
          "tools": [
            {
              "name": "search_web",
              "description": "Web search with organic results, knowledge panel, featured answer and related questions."
            },
            {
              "name": "search_news",
              "description": "News search with headline, source, date and summary."
            },
            {
              "name": "search_images",
              "description": "Image search with the image URL, its thumbnail and the source page."
            },
            {
              "name": "search_local",
              "description": "Local Maps search with address, phone, rating and opening hours of nearby businesses."
            }
          ],
          "limitations": [
            "It does not browse or extract the full content of a page. It returns search results. Reading a page is a different tool on the platform.",
            "It does not guarantee that a result is correct. It returns what the search engine returns, with the search engine's bias and freshness.",
            "It does not track your site rankings. Search Console handles that, inside the Google Workspace integration.",
            "It does not download images or clear usage rights. It returns the URL and the source, and nothing else."
          ],
          "requirements": [
            {
              "name": "Nothing on your side",
              "howToObtain": "The search service key belongs to the platform and lives on the Meteor server. The tool is available with no per workspace setup."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/google-search"
        }
      }
    },
    {
      "id": "google-trends",
      "catalogStatus": "published",
      "toolCount": 7,
      "locales": {
        "es": {
          "name": "Google Trends",
          "category": "Investigar y analizar",
          "summary": "Meteor consulta Google Trends para que tu agente de IA responda con datos en vez de intuición: la popularidad de hasta cinco términos comparados en el tiempo, su interés por país, región o ciudad, las búsquedas y los temas relacionados (incluidos los que están subiendo), las tendencias del día y las de las últimas horas. Son 7 herramientas y no hay que configurar ninguna cuenta.",
          "tools": [
            {
              "name": "trends_interest_over_time",
              "description": "Compara la popularidad de hasta cinco términos a lo largo del tiempo."
            },
            {
              "name": "trends_interest_by_region",
              "description": "Desglosa el interés por país, región, ciudad o zona."
            },
            {
              "name": "trends_related_queries",
              "description": "Devuelve las búsquedas relacionadas, separando las más populares de las que están subiendo."
            },
            {
              "name": "trends_related_topics",
              "description": "Devuelve los temas relacionados con su tipo y su puntaje."
            },
            {
              "name": "trends_daily",
              "description": "Devuelve las búsquedas en tendencia del día por país, con categorías opcionales."
            },
            {
              "name": "trends_realtime",
              "description": "Devuelve las historias en tendencia de las últimas veinticuatro horas."
            },
            {
              "name": "trends_autocomplete",
              "description": "Sugiere términos de autocompletado, útiles para descubrir temas y afinar la búsqueda."
            }
          ],
          "limitations": [
            "No da volumen de búsqueda absoluto. Google Trends entrega un índice relativo de cero a cien, no cuántas personas buscaron algo.",
            "No hace investigación de palabras clave con dificultad ni costo por clic. Para eso están las herramientas especializadas de SEO.",
            "No publica ni ejecuta nada. Es una fuente de consulta para decidir.",
            "No usa datos de tu sitio. Para eso está Search Console dentro de la integración de Google Workspace."
          ],
          "requirements": [
            {
              "name": "Nada por tu parte",
              "howToObtain": "La consulta pasa por una clave de la plataforma que vive en el servidor de Meteor. No hay que crear cuenta ni configurar credenciales por espacio de trabajo."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/google-trends"
        },
        "en": {
          "name": "Google Trends",
          "category": "Research and analyze",
          "summary": "Meteor queries Google Trends so your Met answers with data instead of instinct: the popularity of up to five terms compared over time, their interest by country, region or city, related searches and topics including the ones on the way up, what is trending today and what is trending in the last few hours. That is 7 tools, with no account to configure.",
          "tools": [
            {
              "name": "trends_interest_over_time",
              "description": "Compares the popularity of up to five terms over time."
            },
            {
              "name": "trends_interest_by_region",
              "description": "Breaks interest down by country, region, city or area."
            },
            {
              "name": "trends_related_queries",
              "description": "Returns related searches, separating the most popular from the ones on the rise."
            },
            {
              "name": "trends_related_topics",
              "description": "Returns related topics with their type and their score."
            },
            {
              "name": "trends_daily",
              "description": "Returns the searches trending today by country, with optional categories."
            },
            {
              "name": "trends_realtime",
              "description": "Returns the stories trending in the last twenty-four hours."
            },
            {
              "name": "trends_autocomplete",
              "description": "Suggests autocomplete terms, useful to discover topics and sharpen a query."
            }
          ],
          "limitations": [
            "It does not give absolute search volume. Google Trends returns a relative index from zero to one hundred, not how many people searched for something.",
            "It does not do keyword research with difficulty and cost per click. Dedicated SEO tools cover that ground.",
            "It does not publish or execute anything. It is a source you consult in order to decide.",
            "It does not use data from your own site. Search Console covers that, inside the Google Workspace integration."
          ],
          "requirements": [
            {
              "name": "Nothing on your side",
              "howToObtain": "The query runs through a platform key that lives on the Meteor server. There is no account to create and no credential to configure per workspace."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/google-trends"
        }
      }
    },
    {
      "id": "google-workspace",
      "catalogStatus": "published",
      "toolCount": 32,
      "locales": {
        "es": {
          "name": "Google Workspace",
          "category": "Automatizar y colaborar",
          "summary": "Meteor se conecta con tu cuenta de Google por OAuth y le da a tu agente de IA 32 herramientas en un solo catálogo: buscar y enviar correo en Gmail, leer la agenda con sus asistentes y su enlace de videollamada, traer la transcripción de una reunión de Meet, buscar en Drive, leer y escribir en Sheets, exportar y leer Docs, consultar Search Console, PageSpeed y los datos reales de experiencia de usuario de tu sitio, y leer Google Classroom: cursos, listas, tareas, entregas y anuncios, incluido quién no ha entregado. Las ocho de Classroom son de solo lectura.",
          "tools": [
            {
              "name": "gmail_search",
              "description": "Busca correos con la misma sintaxis de Gmail."
            },
            {
              "name": "gmail_send",
              "description": "Envía un correo desde la cuenta autenticada."
            },
            {
              "name": "calendar_list_events",
              "description": "Lista eventos entre dos fechas con sus asistentes, su organizador y su enlace de videollamada."
            },
            {
              "name": "meet_transcripts",
              "description": "Devuelve la transcripción de una reunión de Meet ya terminada, si se grabó con transcripción."
            },
            {
              "name": "drive_search",
              "description": "Busca archivos en Drive por nombre o, si lo pides, por contenido."
            },
            {
              "name": "contacts_list",
              "description": "Lista los contactos de la cuenta autenticada."
            },
            {
              "name": "sheets_get",
              "description": "Lee valores visibles o valores numéricos sin formato; el modo de cálculo acepta hasta 5.000 filas, 100 columnas y 50.000 celdas por rango A1 finito."
            },
            {
              "name": "sheets_update",
              "description": "Sobrescribe celdas en un rango concreto, interpretando fórmulas."
            },
            {
              "name": "sheets_append",
              "description": "Agrega filas al final de un rango sin sobrescribir lo que ya estaba."
            },
            {
              "name": "sheets_write_weekly_report",
              "description": "Escribe una fila semanal aprobada de Mercado Libre solo tras comprobar los 13 encabezados y el rango vacío, con clave opaca, hash, una escritura RAW con retry:false y relectura."
            },
            {
              "name": "sheets_clear",
              "description": "Limpia el contenido de un rango sin borrar su formato."
            },
            {
              "name": "sheets_metadata",
              "description": "Devuelve las hojas, los rangos con nombre y las propiedades del documento."
            },
            {
              "name": "sheets_add_tab",
              "description": "Crea una pestaña nueva. Si ya existe una con ese título, no falla ni la duplica."
            },
            {
              "name": "docs_export",
              "description": "Exporta un documento a texto, PDF, Word, HTML o Markdown."
            },
            {
              "name": "docs_cat",
              "description": "Devuelve el texto de un documento y avisa cuando lo corta por longitud."
            },
            {
              "name": "gsc_list_sites",
              "description": "Lista los sitios verificados en Search Console con tu nivel de permiso."
            },
            {
              "name": "gsc_top_queries",
              "description": "Devuelve las búsquedas con más clics, impresiones o mejor posición en un período."
            },
            {
              "name": "gsc_pages_with_queries",
              "description": "Devuelve las páginas principales con las búsquedas que las traen."
            },
            {
              "name": "gsc_inspect_url",
              "description": "Diagnostica una dirección concreta y dice si está indexada y qué canónica eligió Google."
            },
            {
              "name": "gsc_list_sitemaps",
              "description": "Lista los mapas de sitio registrados con sus errores y advertencias."
            },
            {
              "name": "gsc_submit_sitemap",
              "description": "Envía o reenvía un mapa de sitio a Search Console."
            },
            {
              "name": "gsc_indexing_api_submit",
              "description": "Avisa a Google que una dirección se creó, se actualizó o se eliminó, para acelerar el rastreo."
            },
            {
              "name": "psi_audit",
              "description": "Audita rendimiento y métricas web esenciales de una dirección, en móvil y escritorio."
            },
            {
              "name": "crux_history",
              "description": "Serie histórica de las métricas reales de usuarios de una dirección o de un dominio."
            },
            {
              "name": "classroom_listar_cursos",
              "description": "Lista los cursos de Classroom que ve la cuenta conectada, activos por defecto, con el identificador que usan las demás."
            },
            {
              "name": "classroom_obtener_curso",
              "description": "Detalle de un curso: nombre, sección, materia, salón, estado, código de inscripción y su enlace en Classroom."
            },
            {
              "name": "classroom_listar_estudiantes",
              "description": "Lista los estudiantes matriculados en un curso, con su nombre y su identificador interno. El correo viene vacío a propósito."
            },
            {
              "name": "classroom_listar_docentes",
              "description": "Lista los docentes de un curso, con su nombre y su identificador interno."
            },
            {
              "name": "classroom_listar_tareas",
              "description": "Lista las tareas de un curso con su fecha de entrega, sus puntos máximos y su enlace."
            },
            {
              "name": "classroom_listar_entregas",
              "description": "Lista las entregas de una tarea con su estado, si llegó tarde y qué calificación tiene, la asignada y el borrador."
            },
            {
              "name": "classroom_resumen_entregas",
              "description": "Para una tarea, cruza la lista del curso con las entregas y responde de una cuántos entregaron, cuántos entregaron tarde, cuántos tienen nota y quiénes no entregaron."
            },
            {
              "name": "classroom_listar_anuncios",
              "description": "Lista los anuncios del tablón de un curso, del más reciente al más viejo, con su texto, su autor y su enlace."
            }
          ],
          "limitations": [
            "No accede a las cuentas de otras personas de la organización. Opera con la cuenta que autorizó, y solo con los permisos que se le concedieron.",
            "No trae la transcripción de una reunión que no se grabó con transcripción activada. Esa parte depende de cómo se configuró la reunión, no de la integración.",
            "No administra usuarios, licencias ni políticas de Google Workspace.",
            "No borra correos ni archivos. Busca, lee, envía y escribe en hojas y pestañas, pero no elimina.",
            "La prelectura y la escritura de una fila son llamadas separadas, no una operación atómica. La herramienta semanal detecta una fila ocupada y reconcilia el resultado, pero otro escritor concurrente todavía podría sobrescribirla.",
            "No escribe en Classroom. Las ocho herramientas del aula son de solo lectura: no califica, no matricula, no publica anuncios ni crea tareas. Calificar exigiría pedirle permiso de escritura sobre las notas a cada cuenta que conecta Google, incluidas las que no tienen Classroom.",
            "No devuelve el correo de un estudiante. Meteor no pide ese permiso, así que la lista de un curso llega con nombre e identificador y el correo vacío. Alcanza para saber quién no entregó y no alcanza para armar una base de contacto de menores, que es justo lo que no queremos que salga solo. Y una lista de curso en básica y media son datos de menores: publicarla en un canal es una decisión de tratamiento de datos que toma quien la publica."
          ],
          "requirements": [
            {
              "name": "Autorización de la cuenta de Google",
              "howToObtain": "Se hace una vez desde el panel de Meteor con el inicio de sesión de Google. No se guarda ni se pide la contraseña."
            },
            {
              "name": "Permisos sobre lo que vas a usar",
              "howToObtain": "Al autorizar se conceden los accesos a Gmail, Calendar, Drive, Sheets y Docs. Search Console y las métricas del sitio exigen además que el sitio esté verificado en tu cuenta."
            },
            {
              "name": "Volver a conectar la cuenta, si ya tenías Google en Meteor",
              "howToObtain": "Los cinco permisos de Classroom son nuevos, y un permiso nuevo no se otorga solo: quien conectó Google antes sigue trabajando con lo que autorizó, pero las herramientas del aula le van a responder con un error de permisos hasta que vuelva a conectar la cuenta desde Integraciones. La cuenta además tiene que ser de un dominio educativo con Classroom activo."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/google-workspace"
        },
        "en": {
          "name": "Google Workspace",
          "category": "Automate and collaborate",
          "summary": "Meteor connects to your Google account through OAuth and gives your Met 32 tools in one catalog: search and send email in Gmail, read the calendar with its attendees and its video link, pull the transcript of a Meet call, search Drive, read and write Sheets, export and read Docs, query Search Console, PageSpeed and the real user experience data for your site, and read Google Classroom: courses, rosters, assignments, submissions and announcements, including who has not turned work in. The eight Classroom tools are read only.",
          "tools": [
            {
              "name": "gmail_search",
              "description": "Searches email using the same Gmail syntax you already use."
            },
            {
              "name": "gmail_send",
              "description": "Sends an email from the authenticated account."
            },
            {
              "name": "calendar_list_events",
              "description": "Lists events between two dates with attendees, organizer and video link."
            },
            {
              "name": "meet_transcripts",
              "description": "Returns the transcript of a finished Meet call, when it was recorded with transcription on."
            },
            {
              "name": "drive_search",
              "description": "Searches files in Drive by name or, when you ask for it, by content."
            },
            {
              "name": "contacts_list",
              "description": "Lists the contacts of the authenticated account."
            },
            {
              "name": "sheets_get",
              "description": "Reads visible or unformatted numeric values; calculation ranges are capped at 5,000 rows, 100 columns and 50,000 cells."
            },
            {
              "name": "sheets_update",
              "description": "Overwrites cells in a specific range, evaluating formulas."
            },
            {
              "name": "sheets_append",
              "description": "Adds rows at the end of a range without overwriting what was already there."
            },
            {
              "name": "sheets_write_weekly_report",
              "description": "Writes one approved Mercado Libre weekly row after checking the 13 exact headers and empty dedicated range, with an opaque key, hash, one RAW update using retry:false and a read-back; it never retries blindly."
            },
            {
              "name": "sheets_clear",
              "description": "Clears the contents of a range without removing its formatting."
            },
            {
              "name": "sheets_metadata",
              "description": "Returns the tabs, the named ranges and the document properties."
            },
            {
              "name": "sheets_add_tab",
              "description": "Creates a new tab. If one with that title exists, it neither fails nor duplicates it."
            },
            {
              "name": "docs_export",
              "description": "Exports a document to text, PDF, Word, HTML or Markdown."
            },
            {
              "name": "docs_cat",
              "description": "Returns the text of a document and says so when it truncates for length."
            },
            {
              "name": "gsc_list_sites",
              "description": "Lists the sites verified in Search Console with your permission level."
            },
            {
              "name": "gsc_top_queries",
              "description": "Returns the queries with the most clicks, impressions or the best position in a period."
            },
            {
              "name": "gsc_pages_with_queries",
              "description": "Returns the top pages together with the queries that bring them traffic."
            },
            {
              "name": "gsc_inspect_url",
              "description": "Diagnoses a specific URL and reports whether it is indexed and which canonical Google chose."
            },
            {
              "name": "gsc_list_sitemaps",
              "description": "Lists the sitemaps registered, with their errors and warnings."
            },
            {
              "name": "gsc_submit_sitemap",
              "description": "Submits or resubmits a sitemap to Search Console."
            },
            {
              "name": "gsc_indexing_api_submit",
              "description": "Tells Google a URL was created, updated or removed, to speed up crawling."
            },
            {
              "name": "psi_audit",
              "description": "Audits performance and core web vitals for a URL, on mobile and desktop."
            },
            {
              "name": "crux_history",
              "description": "Historical series of the real user metrics for a URL or a whole domain."
            },
            {
              "name": "classroom_listar_cursos",
              "description": "Lists the Classroom courses the connected account can see, active ones by default, with the id the other tools need."
            },
            {
              "name": "classroom_obtener_curso",
              "description": "Detail of one course: name, section, subject, room, state, enrolment code and its link in Classroom."
            },
            {
              "name": "classroom_listar_estudiantes",
              "description": "Lists the students enrolled in a course, with their name and internal id. The email comes back empty on purpose."
            },
            {
              "name": "classroom_listar_docentes",
              "description": "Lists the teachers of a course, with their name and internal id."
            },
            {
              "name": "classroom_listar_tareas",
              "description": "Lists the coursework of a course with its due date, its maximum points and its link."
            },
            {
              "name": "classroom_listar_entregas",
              "description": "Lists the submissions of one assignment with their state, whether they were late and what grade they carry, both assigned and draft."
            },
            {
              "name": "classroom_resumen_entregas",
              "description": "For one assignment, it crosses the course roster with the submissions and answers in one go how many turned it in, how many were late, how many are graded and who has not turned it in."
            },
            {
              "name": "classroom_listar_anuncios",
              "description": "Lists the announcements on a course stream, newest first, with their text, their author and their link."
            }
          ],
          "limitations": [
            "It does not reach into other people's accounts in your organization. It runs as the account that authorized it, and only with the permissions granted.",
            "It does not return the transcript of a meeting that was not recorded with transcription on. That part depends on how the meeting was set up, not on the integration.",
            "It does not administer Google Workspace users, licenses or policies.",
            "It does not delete email or files. It searches, reads, sends and writes to sheets and tabs, but it removes nothing.",
            "Reading a row and writing it are separate calls, not an atomic operation. The weekly tool rejects an occupied row and reconciles the response, but another concurrent writer could still overwrite it.",
            "It does not write to Classroom. The eight classroom tools are read only: no grading, no enrolling, no posting announcements and no creating assignments. Grading would mean asking every account that connects Google for write access to grades, including the ones with no Classroom at all.",
            "It does not return a student email address. Meteor never asks for that permission, so a course roster arrives with a name and an id and an empty email field. That is enough to know who has not turned work in and not enough to build a contact list of minors, which is exactly what should not fall out of this by default. A roster in primary or secondary school is children's data: publishing it to a channel is a decision the person publishing it makes."
          ],
          "requirements": [
            {
              "name": "Authorization from your Google account",
              "howToObtain": "Done once from the Meteor panel through Google sign in. Your password is never requested and never stored."
            },
            {
              "name": "Permissions for what you plan to use",
              "howToObtain": "Authorizing grants access to Gmail, Calendar, Drive, Sheets and Docs. Search Console and the site metrics also require the site to be verified in your account."
            },
            {
              "name": "Reconnecting the account, if you already had Google in Meteor",
              "howToObtain": "The five Classroom permissions are new, and a new permission is never granted by itself. Anyone who connected Google earlier keeps working with what they authorized, but the classroom tools will answer with a permissions error until they reconnect the account from Integrations. The account also has to belong to an education domain with Classroom on."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/google-workspace"
        }
      }
    },
    {
      "id": "homecenter",
      "catalogStatus": "published",
      "toolCount": 4,
      "locales": {
        "es": {
          "name": "Homecenter",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor conecta tu catálogo de WooCommerce con el marketplace de Homecenter, que corre sobre el Seller Center de Falabella. El agente busca tu producto por referencia, sincroniza precio con el margen del canal y stock con colchón de seguridad, consulta los pedidos pendientes y revisa los avisos que el marketplace envía. WooCommerce es la fuente de verdad.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Homecenter opera en Colombia sobre el Seller Center de Falabella, así que la integración firma cada llamada con el protocolo de esa plataforma.",
          "tools": [
            {
              "name": "homecenter_get_product_by_sku",
              "description": "Busca tu producto en el marketplace por la misma referencia que usas en tu tienda."
            },
            {
              "name": "homecenter_update_price_stock",
              "description": "Sincroniza precio y stock de un producto existente, por referencia."
            },
            {
              "name": "homecenter_get_orders",
              "description": "Lista tus pedidos recientes, por defecto los pendientes."
            },
            {
              "name": "homecenter_list_recent_events",
              "description": "Muestra los últimos avisos de pedido que el marketplace envió, para diagnosticar."
            }
          ],
          "limitations": [
            "No crea productos nuevos en el catálogo del marketplace. Sincroniza precio y stock sobre productos que ya existen ahí.",
            "No acepta, rechaza ni despacha pedidos. Los lista para que la decisión sea de una persona.",
            "No gestiona la logística del marketplace ni genera etiquetas de envío.",
            "No valida la firma de los avisos de pedido si el marketplace no entrega un secreto; en ese caso el pedido se registra sin verificar su origen."
          ],
          "requirements": [
            {
              "name": "Host de la API de Seller Center asignado para Colombia",
              "howToObtain": "Lo asigna Homecenter al habilitarte como vendedor con acceso a la API."
            },
            {
              "name": "Identificador de vendedor",
              "howToObtain": "Normalmente es el correo de tu cuenta de vendedor en el Seller Center. Va en cada llamada junto con la firma."
            },
            {
              "name": "Clave de API de tu cuenta de vendedor",
              "howToObtain": "Se obtiene en la configuración de la cuenta del Seller Center. Se usa como secreto para firmar cada llamada y se guarda cifrada por espacio de trabajo."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/homecenter"
        },
        "en": {
          "name": "Homecenter",
          "category": "Run stores and orders",
          "summary": "Meteor connects your WooCommerce catalog to the Homecenter marketplace, which runs on the Falabella Seller Center. Your Met finds your product by SKU, syncs price with the channel margin and stock with a safety buffer, checks pending orders and reviews the notifications the marketplace sends. WooCommerce stays the source of truth.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Homecenter operates in Colombia on the Falabella Seller Center, so the integration signs every call with that platform's protocol.",
          "tools": [
            {
              "name": "homecenter_get_product_by_sku",
              "description": "Finds your marketplace product by the same SKU you use in your store."
            },
            {
              "name": "homecenter_update_price_stock",
              "description": "Syncs price and stock for an existing product, by SKU."
            },
            {
              "name": "homecenter_get_orders",
              "description": "Lists your recent orders, pending ones by default."
            },
            {
              "name": "homecenter_list_recent_events",
              "description": "Shows the latest order notifications the marketplace sent, for diagnosis."
            }
          ],
          "limitations": [
            "It does not create new products in the marketplace catalog. It syncs price and stock on products that already exist there.",
            "It does not accept, reject or ship orders. It lists them so the decision stays with a person.",
            "It does not handle marketplace logistics and it does not generate shipping labels.",
            "It does not validate the signature of order notifications when the marketplace provides no secret. In that case the order is recorded with its origin unverified."
          ],
          "requirements": [
            {
              "name": "The Seller Center API host assigned for Colombia",
              "howToObtain": "Homecenter assigns it when they enable you as a seller with API access."
            },
            {
              "name": "Your seller identifier",
              "howToObtain": "Usually the email of your Seller Center account. It travels on every call alongside the signature."
            },
            {
              "name": "The API key of your seller account",
              "howToObtain": "You get it in the Seller Center account settings. It is used as the secret that signs every call and is stored encrypted per workspace."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/homecenter"
        }
      }
    },
    {
      "id": "hqrental",
      "catalogStatus": "published",
      "toolCount": 8,
      "locales": {
        "es": {
          "name": "HQ Rental Software",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con HQ Rental Software y le da a tu agente de IA 8 herramientas para atender una renta de vehículos: consultar los autos disponibles por fechas y ubicación, ver el detalle de un vehículo, listar y consultar reservas, crear una reserva para un cliente existente con una clase ya verificada, listar los extras disponibles y revisar el manifiesto del día. El endpoint OTA no publica campos de clase o precio y el conector no crea ni actualiza clientes.",
          "tools": [
            {
              "name": "hq_search_availability",
              "description": "Consulta los autos disponibles por rango de fechas y ubicación sin suponer campos que HQ no publica."
            },
            {
              "name": "hq_get_vehicle_details",
              "description": "Trae el detalle de un vehículo: placa, número de chasis, modelo, kilometraje, estado y clase."
            },
            {
              "name": "hq_list_reservations",
              "description": "Lista reservas con filtros de estado o saldo, para ver lo activo y lo pendiente."
            },
            {
              "name": "hq_get_reservation",
              "description": "Trae una reserva completa con su vehículo, su cliente, sus precios y sus fechas."
            },
            {
              "name": "hq_create_reservation",
              "description": "Crea la reserva con fechas, ubicaciones, clase, customer_id existente y cargos adicionales solo con el guard local booleano `confirmar: true`; el guard no se envía a HQ."
            },
            {
              "name": "hq_get_customer",
              "description": "Trae un contacto por category_id y contact_id para verificar al cliente existente."
            },
            {
              "name": "hq_get_daily_manifest",
              "description": "Devuelve el manifiesto del día con las entregas, las devoluciones y el estado de la flota."
            },
            {
              "name": "hq_list_additional_charges",
              "description": "Lista los extras disponibles como seguros, GPS, sillas para bebé o conductor adicional."
            }
          ],
          "limitations": [
            "No cobra ni procesa pagos. Crea la reserva con sus cargos; el cobro pasa por la pasarela que ya use la operación.",
            "No firma contratos de renta ni gestiona documentos legales del alquiler.",
            "No cancela ni modifica una reserva ya creada. Las herramientas disponibles consultan y crean; los cambios se hacen en la plataforma.",
            "No crea ni actualiza clientes. La reserva requiere un customer_id existente; un alta o una corrección se completa primero dentro de HQ Rental.",
            "No administra el mantenimiento de la flota más allá de leer el estado y el kilometraje del vehículo."
          ],
          "requirements": [
            {
              "name": "Token de la empresa",
              "howToObtain": "Se obtiene en HQ Rental, en Configuración → Integraciones → Token de API."
            },
            {
              "name": "Token de usuario",
              "howToObtain": "Se obtiene en HQ Rental, en Configuración → Usuarios, para el usuario que va a operar."
            },
            {
              "name": "Región del servidor",
              "howToObtain": "HQ Rental aloja las cuentas en distintas regiones. Hay que indicar la que corresponde a tu cuenta para que las llamadas lleguen al servidor correcto."
            },
            {
              "name": "Cliente y selección verificados",
              "howToObtain": "La operación preconfigura category_id, customer_id, brand_id, sedes, vehicle_class_id, nombre de clase, precio y moneda. La disponibilidad OTA no publica una estructura para descubrirlos."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/hqrental"
        },
        "en": {
          "name": "HQ Rental Software",
          "category": "Run stores and orders",
          "summary": "Meteor connects to HQ Rental Software and gives your Met 8 tools to run a car rental desk: check available cars by date and location, open vehicle details, list and look up reservations, create a reservation for an existing customer with a verified class, list available extras, and review the daily manifest. The OTA endpoint publishes no class or price fields, and the connector does not create or update customers.",
          "tools": [
            {
              "name": "hq_search_availability",
              "description": "Checks available cars by date range and location without assuming unpublished fields."
            },
            {
              "name": "hq_get_vehicle_details",
              "description": "Returns the detail of a vehicle: plate, VIN, model, mileage, status and class."
            },
            {
              "name": "hq_list_reservations",
              "description": "Lists reservations filtered by status or balance, to see what is active and what is open."
            },
            {
              "name": "hq_get_reservation",
              "description": "Returns a full reservation with its vehicle, customer, pricing and dates."
            },
            {
              "name": "hq_create_reservation",
              "description": "Creates the reservation with dates, locations, class, an existing customer_id, and extra charges only with the local boolean guard `confirmar: true`; the guard is not sent to HQ."
            },
            {
              "name": "hq_get_customer",
              "description": "Returns a contact by category_id and contact_id to verify the existing customer."
            },
            {
              "name": "hq_get_daily_manifest",
              "description": "Returns the daily manifest with pickups, returns and the state of the fleet."
            },
            {
              "name": "hq_list_additional_charges",
              "description": "Lists the extras on offer such as insurance, GPS, child seats or an extra driver."
            }
          ],
          "limitations": [
            "It does not charge or process payments. It creates the reservation with its charges, and collection runs through whichever gateway the operation already uses.",
            "It does not sign rental agreements or handle the legal paperwork of the rental.",
            "It does not cancel or modify a reservation once created. The available tools read and create. Changes are made in the platform.",
            "It does not create or update customers. A reservation requires an existing customer_id; a new record or correction is completed inside HQ Rental first.",
            "It does not manage fleet maintenance beyond reading the status and mileage of a vehicle."
          ],
          "requirements": [
            {
              "name": "The company token",
              "howToObtain": "In HQ Rental, under Settings, Integrations, API Token."
            },
            {
              "name": "The user token",
              "howToObtain": "In HQ Rental, under Settings, Users, for the user who will operate."
            },
            {
              "name": "The server region",
              "howToObtain": "HQ Rental hosts accounts in different regions. You state the one your account belongs to so calls reach the right server."
            },
            {
              "name": "A verified customer and selection",
              "howToObtain": "The operation preconfigures category_id, customer_id, brand_id, locations, vehicle_class_id, class name, price and currency. OTA availability publishes no response structure to discover them."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/hqrental"
        }
      }
    },
    {
      "id": "lobbypms",
      "catalogStatus": "published",
      "toolCount": 5,
      "locales": {
        "es": {
          "name": "LobbyPMS",
          "category": "Vender y atender",
          "summary": "Meteor se conecta con LobbyPMS, el PMS hotelero colombiano, y le da a tu Met 5 herramientas de solo lectura: habitaciones, reservas, facturas de cuenta, canales de venta y productos de consumo. Es el primer conector de hotelería del catálogo y está EN VERIFICACIÓN: las rutas del PMS están confirmadas, pero la forma exacta de sus respuestas se está terminando de mapear contra cuentas de hoteles reales. Hasta que ese mapeo cierre, las herramientas no devuelven datos: responden con el detalle de lo que falta, y el Met tiene instrucciones de decir que la integración se está terminando de conectar en vez de inventar lo que el PMS no devolvió.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "LobbyPMS es un PMS colombiano, usado sobre todo por hoteles, hostales y glampings del país. El token es por propiedad, así que cada hotel conecta el suyo.",
          "tools": [
            {
              "name": "lobbypms_listar_habitaciones",
              "description": "Lista las habitaciones que el hotel tiene registradas en su PMS."
            },
            {
              "name": "lobbypms_listar_reservas",
              "description": "Lista las reservas registradas en el PMS del hotel."
            },
            {
              "name": "lobbypms_listar_facturas",
              "description": "Lista las facturas y cuentas de huésped tal como las guarda el PMS."
            },
            {
              "name": "lobbypms_listar_canales",
              "description": "Lista los canales de venta que el hotel tiene configurados en LobbyPMS."
            },
            {
              "name": "lobbypms_listar_productos",
              "description": "Lista el catálogo de consumos del hotel: restaurante, minibar y servicios."
            }
          ],
          "limitations": [
            "No devuelve datos mientras el contrato esté en verificación. Las herramientas responden con el detalle de lo que falta mapear, y el Met tiene instrucciones de decirlo tal cual en vez de completar el dato por su cuenta.",
            "No crea, modifica ni cancela reservas. Las cinco herramientas leen y nada más: reservar, cambiar fechas o cancelar se hace en LobbyPMS.",
            "No hace check-in ni check-out, no asigna habitaciones y no entrega llaves.",
            "No cobra. No genera enlaces de pago, no registra pagos y no cierra la cuenta de un huésped: eso sigue pasando por el medio de cobro que ya use el hotel.",
            "No confirma disponibilidad todavía. Responder «¿hay cupo del 12 al 15?» exige filtrar reservas por rango de fechas, y ese filtro es justamente una de las piezas que se están verificando."
          ],
          "requirements": [
            {
              "name": "Cuenta de LobbyPMS operando",
              "howToObtain": "El hotel ya tiene que estar trabajando en LobbyPMS. El conector lee lo que hay en su sistema; no crea la cuenta ni carga el inventario de habitaciones."
            },
            {
              "name": "Token de API del hotel",
              "howToObtain": "Lo genera el propio hotel, con un usuario administrador, en Configuración → Usuarios, permisos y API → Ver Token. Es por propiedad, y Meteor no puede generarlo por ti."
            },
            {
              "name": "La IP de Meteor autorizada, si usas restricción por IP",
              "howToObtain": "LobbyPMS permite limitar el token a ciertas direcciones. Si tu hotel activó esa restricción, hay que registrar la IP de salida de Meteor en ese mismo panel o todo responde con un error de autenticación."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/lobbypms"
        },
        "en": {
          "name": "LobbyPMS",
          "category": "Sell and serve",
          "summary": "Meteor connects to LobbyPMS, the Colombian hotel PMS, and gives your Met 5 tools, all read only: rooms, bookings, guest invoices, sales channels and the catalogue of extras. It is the first hospitality connector in the catalogue and it is IN VERIFICATION. The routes of the PMS are confirmed, but the exact shape of their responses is still being mapped against real hotel accounts. Until that mapping is finished the tools return no data. They answer with the detail of what is still missing, and the Met is instructed to say that the integration is still being wired up rather than invent what the PMS did not return.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "LobbyPMS is a Colombian PMS, used mostly by hotels, hostels and glampings in the country. The token is per property, so each hotel connects its own.",
          "tools": [
            {
              "name": "lobbypms_listar_habitaciones",
              "description": "Lists the rooms the hotel has registered in its PMS."
            },
            {
              "name": "lobbypms_listar_reservas",
              "description": "Lists the bookings recorded in the hotel PMS."
            },
            {
              "name": "lobbypms_listar_facturas",
              "description": "Lists guest invoices and folios exactly as the PMS stores them."
            },
            {
              "name": "lobbypms_listar_canales",
              "description": "Lists the sales channels the hotel has set up in LobbyPMS."
            },
            {
              "name": "lobbypms_listar_productos",
              "description": "Lists the hotel catalogue of extras: restaurant, minibar and services."
            }
          ],
          "limitations": [
            "It returns no data while the contract is in verification. The tools answer with the detail of what is still to be mapped, and the Met is instructed to say so rather than fill the gap on its own.",
            "It does not create, change or cancel bookings. The five tools read and nothing else. Booking, moving dates or cancelling is done in LobbyPMS.",
            "It does not run check in or check out, assign rooms or hand over keys.",
            "It does not charge. No payment links, no payment records and no closing of a guest account. That still goes through whichever payment method the hotel already uses.",
            "It does not confirm availability yet. Answering \"is there a room from the 12th to the 15th?\" requires filtering bookings by date range, and that filter is one of the pieces still being verified."
          ],
          "requirements": [
            {
              "name": "A working LobbyPMS account",
              "howToObtain": "The hotel has to be running on LobbyPMS already. The connector reads what is in that system. It does not create the account or load the room inventory."
            },
            {
              "name": "The hotel API token",
              "howToObtain": "The hotel generates it itself, with an administrator user, under Settings, Users, permissions and API, View Token. It is per property, and Meteor cannot generate it for you."
            },
            {
              "name": "The Meteor IP allowed, if you use IP restriction",
              "howToObtain": "LobbyPMS can limit a token to certain addresses. If your hotel switched that on, the outbound IP of Meteor has to be registered in that same panel or everything answers with an authentication error."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/lobbypms"
        }
      }
    },
    {
      "id": "mercadolibre",
      "catalogStatus": "published",
      "toolCount": 24,
      "locales": {
        "es": {
          "name": "Mercado Libre",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor conecta tu catálogo de WooCommerce con Mercado Libre y le da a tu agente de IA 24 herramientas para publicar y mantener las publicaciones al día: predice la categoría, consulta los atributos obligatorios, publica, recalcula el precio de venta para que recibas neto lo que vale en tu tienda, espeja el stock con colchón de seguridad, revisa cumplimiento antes de publicar y audita después. WooCommerce es la fuente de verdad; Mercado Libre es el espejo.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "El conector opera sobre el sitio colombiano de Mercado Libre y cruza los productos veterinarios contra el registro oficial del ICA antes de publicarlos.",
          "tools": [
            {
              "name": "meli_find_item_by_sku",
              "description": "Busca en tus publicaciones cuál corresponde a una referencia de tu tienda."
            },
            {
              "name": "meli_get_item",
              "description": "Trae el detalle de una publicación con su precio, stock, estado y atributos."
            },
            {
              "name": "meli_predict_category",
              "description": "Sugiere la categoría a partir del título, que es obligatoria para publicar."
            },
            {
              "name": "meli_get_category_attributes",
              "description": "Devuelve los atributos de una categoría marcando cuáles son obligatorios."
            },
            {
              "name": "meli_publish_item",
              "description": "Publica un producto nuevo a partir de los datos de tu tienda."
            },
            {
              "name": "meli_update_item",
              "description": "Actualiza precio, stock o estado de una publicación existente."
            },
            {
              "name": "meli_sync_price",
              "description": "Recalcula el precio de venta con la comisión real de la categoría, impuestos y envío."
            },
            {
              "name": "meli_sync_stock",
              "description": "Espeja el stock de tu tienda y solo toca las publicaciones que administras."
            },
            {
              "name": "meli_sync_all",
              "description": "Reconcilia precio y stock de todas las publicaciones administradas en una sola pasada."
            },
            {
              "name": "meli_sync_gap",
              "description": "Responde cuántos productos están sincronizados y cuántos faltan, cruzando del lado del servidor."
            },
            {
              "name": "meli_prepare_publish",
              "description": "Encadena categoría, cumplimiento y atributos y devuelve la publicación lista, o la sube en pausa."
            },
            {
              "name": "meli_publishability_report",
              "description": "Clasifica todo el catálogo entre lo que se puede publicar hoy y lo que no, con el motivo."
            },
            {
              "name": "marketplace_compliance_check",
              "description": "Revisa que un producto cumpla los requisitos del marketplace antes de publicar."
            },
            {
              "name": "ica_lookup",
              "description": "Cruza un producto veterinario contra el registro del ICA y bloquea los cancelados."
            },
            {
              "name": "meli_catalog_search",
              "description": "Busca en el catálogo del marketplace por código de barras o texto para verificar una ficha."
            },
            {
              "name": "meli_post_publish_audit",
              "description": "Recorre lo ya publicado y detecta lo que quedó con problema después de subirlo."
            },
            {
              "name": "meli_activate_in_stock",
              "description": "Activa las publicaciones pausadas que tienen stock y pasan el filtro de cumplimiento."
            },
            {
              "name": "meli_account_census",
              "description": "Censo de solo lectura de la cuenta, separando lo que administras de lo preexistente."
            },
            {
              "name": "meli_get_order",
              "description": "Trae el detalle completo de una venta por su número."
            },
            {
              "name": "meli_search_orders",
              "description": "Busca las ventas recientes de tu cuenta de vendedor."
            },
            {
              "name": "meli_weekly_orders_report",
              "description": "Recorre hasta 1.000 órdenes visibles de una semana colombiana ya cerrada, valida cada ventana de paginación y devuelve solo conteos e importes por estado, sin datos del comprador."
            },
            {
              "name": "meli_reflect_ml_sale",
              "description": "Descuenta en tu tienda el stock de lo que se vendió en el marketplace."
            },
            {
              "name": "meli_list_recent_events",
              "description": "Muestra los últimos avisos de pedido que el marketplace envió, con su validación."
            },
            {
              "name": "meli_get_account_info",
              "description": "Confirma la cuenta autenticada con solo id, nickname, país y sitio técnicos."
            }
          ],
          "limitations": [
            "No toca las publicaciones que no administras. Solo opera sobre las que llevan tu referencia; lo preexistente de la cuenta queda intacto a propósito.",
            "No garantiza que el marketplace apruebe la publicación. El filtro previo reduce el riesgo y la auditoría posterior lo detecta, pero la decisión final es del marketplace.",
            "No gestiona la logística del marketplace ni imprime etiquetas de envío. Lee las ventas; el despacho sigue donde ya está.",
            "No responde preguntas ni mensajes de compradores dentro de Mercado Libre. Las conversaciones de Meteor viven en WhatsApp y los demás canales conectados.",
            "El reporte semanal no es un estado de resultados ni una conciliación de Mercado Pago. Suma total_amount de las órdenes visibles por su estado actual; no descuenta comisiones, retenciones, envíos o devoluciones, y la vista del vendedor no expone todas las cancelaciones."
          ],
          "requirements": [
            {
              "name": "Aplicación propia en Mercado Libre",
              "howToObtain": "Se crea en el portal de desarrolladores del marketplace y entrega el identificador y el secreto de la app."
            },
            {
              "name": "Token de acceso y token de renovación",
              "howToObtain": "Se generan una sola vez al autorizar la app con tu cuenta de vendedor. El token de acceso se renueva solo cada seis horas."
            },
            {
              "name": "Una tienda WooCommerce conectada",
              "howToObtain": "Es la fuente de verdad de precio y stock para publicar y sincronizar. El reporte manual de órdenes no la usa: requiere la cuenta MCO y la hoja de destino de su propia receta."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/mercadolibre"
        },
        "en": {
          "name": "Mercado Libre",
          "category": "Run stores and orders",
          "summary": "Meteor connects your WooCommerce catalog to Mercado Libre and gives your Met 24 tools to list products and keep those listings current: predict the category, read the required attributes, publish, recalculate the sale price so you net what the product is worth in your own store, mirror stock with a safety buffer, run a compliance check before listing and audit after. WooCommerce stays the source of truth, and Mercado Libre is the mirror.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "The connector works on the Colombian Mercado Libre site and checks veterinary products against the official ICA registry before listing them.",
          "tools": [
            {
              "name": "meli_find_item_by_sku",
              "description": "Finds which of your listings matches a SKU from your store."
            },
            {
              "name": "meli_get_item",
              "description": "Returns the detail of a listing with its price, stock, status and attributes."
            },
            {
              "name": "meli_predict_category",
              "description": "Suggests the category from the title, which is required to list."
            },
            {
              "name": "meli_get_category_attributes",
              "description": "Returns the attributes of a category, flagging which ones are required."
            },
            {
              "name": "meli_publish_item",
              "description": "Lists a new product from the data in your store."
            },
            {
              "name": "meli_update_item",
              "description": "Updates price, stock or status on an existing listing."
            },
            {
              "name": "meli_sync_price",
              "description": "Recalculates the sale price with the real category fee, taxes and shipping."
            },
            {
              "name": "meli_sync_stock",
              "description": "Mirrors stock from your store and only touches the listings you manage."
            },
            {
              "name": "meli_sync_all",
              "description": "Reconciles price and stock across every managed listing in a single pass."
            },
            {
              "name": "meli_sync_gap",
              "description": "Answers how many products are in sync and how many are missing, crossing them server side."
            },
            {
              "name": "meli_prepare_publish",
              "description": "Chains category, compliance and attributes and returns the listing ready, or uploads it paused."
            },
            {
              "name": "meli_publishability_report",
              "description": "Sorts your whole catalog into what can be listed today and what cannot, with the reason."
            },
            {
              "name": "marketplace_compliance_check",
              "description": "Checks that a product meets the marketplace requirements before listing."
            },
            {
              "name": "ica_lookup",
              "description": "Checks a veterinary product against the ICA registry and blocks the canceled ones."
            },
            {
              "name": "meli_catalog_search",
              "description": "Searches the marketplace catalog by barcode or text to verify a listing."
            },
            {
              "name": "meli_post_publish_audit",
              "description": "Walks through what is already listed and finds what ended up broken after upload."
            },
            {
              "name": "meli_activate_in_stock",
              "description": "Activates paused listings that have stock and pass the compliance filter."
            },
            {
              "name": "meli_account_census",
              "description": "Read-only census of the account, separating what you manage from what was already there."
            },
            {
              "name": "meli_get_order",
              "description": "Returns the full detail of a sale by its number."
            },
            {
              "name": "meli_search_orders",
              "description": "Searches recent sales on your seller account."
            },
            {
              "name": "meli_weekly_orders_report",
              "description": "Walks up to 1,000 visible orders in one closed Colombian week, validates each paging window and returns buyer-free counts and order amounts by status."
            },
            {
              "name": "meli_reflect_ml_sale",
              "description": "Deducts stock in your store for what sold on the marketplace."
            },
            {
              "name": "meli_list_recent_events",
              "description": "Shows the latest order notifications the marketplace sent, with their validation."
            },
            {
              "name": "meli_get_account_info",
              "description": "Confirms the authenticated account with only its technical id, nickname, country and site."
            }
          ],
          "limitations": [
            "It does not touch listings you do not manage. It works only on the ones carrying your SKU, and whatever was already on the account is left alone on purpose.",
            "It does not guarantee the marketplace will approve a listing. The pre-check lowers the risk and the audit catches the rest, but the final call belongs to the marketplace.",
            "It does not handle marketplace logistics or print shipping labels. It reads sales, and fulfillment stays where it already is.",
            "It does not answer buyer questions or messages inside Mercado Libre. Meteor conversations live on WhatsApp and the other connected channels.",
            "The weekly report is not a profit and loss statement or a Mercado Pago reconciliation. It adds total_amount from visible orders by current status; it does not subtract fees, withholding, shipping or returns, and the seller view does not expose every cancellation."
          ],
          "requirements": [
            {
              "name": "Your own application in Mercado Libre",
              "howToObtain": "You create it in the marketplace developer portal, and it gives you the app id and the app secret."
            },
            {
              "name": "An access token and a refresh token",
              "howToObtain": "Generated once when you authorize the app with your seller account. The access token refreshes itself every six hours."
            },
            {
              "name": "A connected WooCommerce store",
              "howToObtain": "It is the source of truth for price and stock when listing and syncing. The manual order report does not use it: that recipe needs the MCO account and its destination sheet."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/mercadolibre"
        }
      }
    },
    {
      "id": "mercadopago",
      "catalogStatus": "published",
      "toolCount": 11,
      "locales": {
        "es": {
          "name": "Mercado Pago",
          "category": "Cobrar y administrar",
          "summary": "Meteor se conecta con Mercado Pago para que tu agente de IA genere un enlace de cobro dentro de la conversación, consulte el estado de un pago antes de despachar, busque los cobros de un período, cancele un cobro pendiente que quedó vivo por error, reembolse con confirmación de una persona, revise los reembolsos ya hechos sobre un pago, cree suscripciones de cobro recurrente y consulte cuándo cae el próximo cobro, y reciba el aviso firmado cuando entra un pago, un contracargo o un reclamo. Son 11 herramientas. Ningún dato de tarjeta pasa por el Met: la suscripción nace pendiente y es el cliente quien la autoriza en el enlace de Mercado Pago. Necesitas el token de acceso de tu aplicación de Mercado Pago y el secreto del aviso.",
          "markets": [
            "Argentina",
            "Brasil",
            "Chile",
            "Colombia",
            "México",
            "Perú",
            "Uruguay"
          ],
          "tools": [
            {
              "name": "mercadopago_create_payment_link",
              "description": "Crea el enlace de pago de un solo producto y lo devuelve listo para enviarlo al cliente."
            },
            {
              "name": "mercadopago_create_preference",
              "description": "Crea una preferencia de pago completa y devuelve su enlace, con referencia externa propia."
            },
            {
              "name": "mercadopago_get_payment",
              "description": "Trae el detalle de un pago por su número, para confirmar antes de despachar."
            },
            {
              "name": "mercadopago_search_payments",
              "description": "Busca pagos con filtros. Por defecto devuelve los últimos treinta días."
            },
            {
              "name": "mercadopago_cancel_payment",
              "description": "Cancela un cobro que quedó pendiente, para que el enlace deje de ser pagable y se libere el dinero reservado."
            },
            {
              "name": "mercadopago_refund_payment",
              "description": "Reembolsa un pago aprobado, total o parcialmente. Es destructiva y no se revierte."
            },
            {
              "name": "mercadopago_list_refunds",
              "description": "Lista los reembolsos ya hechos sobre un pago, con monto, estado y fecha, para no devolver dos veces lo mismo."
            },
            {
              "name": "mercadopago_create_subscription",
              "description": "Crea una suscripción de cobro recurrente y devuelve el enlace donde el cliente la autoriza con su tarjeta."
            },
            {
              "name": "mercadopago_get_subscription",
              "description": "Consulta el estado de una suscripción, su monto, su frecuencia y cuándo cae el próximo cobro."
            },
            {
              "name": "mercadopago_get_account_info",
              "description": "Devuelve la cuenta autenticada y su país, para confirmar que las credenciales son las correctas."
            },
            {
              "name": "mercadopago_list_recent_events",
              "description": "Muestra todos los avisos que Mercado Pago envió a tu espacio, filtrables por tipo: pagos, reembolsos, suscripciones, contracargos y reclamos, con la firma verificada de cada uno."
            }
          ],
          "limitations": [
            "No guarda ni procesa datos de tarjeta, tampoco en las suscripciones. El cobro ocurre en la pasarela de Mercado Pago; Meteor solo genera el enlace y lee el resultado. La suscripción se crea sin token de tarjeta y en estado pendiente: es el cliente quien la autoriza en el enlace.",
            "Reembolsa y cancela cobros pendientes, pero con confirmación humana obligatoria. Las dos herramientas están marcadas como destructivas y piden confirmar con una persona antes de ejecutar, porque ninguna se revierte. También puedes dejarlas desactivadas.",
            "No cancela ni pausa una suscripción ya autorizada. El conector la crea y la consulta; darla de baja o cambiarle el monto se hace desde el panel de Mercado Pago. Vale saberlo antes de crearla: hasta que alguien la cancele ahí, se le vuelve a cobrar al cliente cada período.",
            "No emite facturas ni documentos fiscales. Para eso está la integración de facturación.",
            "Sin el secreto del aviso no se puede validar la firma, y los pagos no se procesan. Es un requisito, no un detalle opcional."
          ],
          "requirements": [
            {
              "name": "Token de acceso de tu aplicación de Mercado Pago",
              "howToObtain": "Está en el portal de desarrolladores, en las credenciales de tu aplicación. Usa el de producción para cobros reales y el de prueba para ensayar."
            },
            {
              "name": "Secreto del aviso de pagos",
              "howToObtain": "Mercado Pago lo genera al configurar las notificaciones de tu aplicación. Sin él la firma no se puede validar y los avisos no se procesan."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/mercadopago"
        },
        "en": {
          "name": "Mercado Pago",
          "category": "Collect and manage",
          "summary": "Meteor connects to Mercado Pago so your Met can issue a payment link inside the conversation, check the status of a payment before you ship, search the payments of a period, cancel a pending charge left alive by mistake, refund with a person confirming, review the refunds already made on a payment, create recurring subscriptions and check when the next charge falls, and receive the signed notification when a payment, a chargeback or a claim lands. That is 11 tools. No card data ever reaches the Met: a subscription is born pending and the customer is the one who authorises it on the Mercado Pago link. You need the access token of your Mercado Pago application and the notification secret.",
          "markets": [
            "Argentina",
            "Brazil",
            "Chile",
            "Colombia",
            "Mexico",
            "Peru",
            "Uruguay"
          ],
          "tools": [
            {
              "name": "mercadopago_create_payment_link",
              "description": "Creates a single product payment link, ready to send to the customer."
            },
            {
              "name": "mercadopago_create_preference",
              "description": "Creates a full payment preference and returns its link, with your own external reference."
            },
            {
              "name": "mercadopago_get_payment",
              "description": "Returns the detail of a payment by its number, so you can confirm before shipping."
            },
            {
              "name": "mercadopago_search_payments",
              "description": "Searches payments with filters. It returns the last thirty days by default."
            },
            {
              "name": "mercadopago_cancel_payment",
              "description": "Cancels a charge left pending, so the link stops being payable and the reserved money is released."
            },
            {
              "name": "mercadopago_refund_payment",
              "description": "Refunds an approved payment, in full or in part. Destructive and not reversible."
            },
            {
              "name": "mercadopago_list_refunds",
              "description": "Lists the refunds already made on a payment, with amount, status and date, so nothing is refunded twice."
            },
            {
              "name": "mercadopago_create_subscription",
              "description": "Creates a recurring subscription and returns the link where the customer authorises it with their card."
            },
            {
              "name": "mercadopago_get_subscription",
              "description": "Checks a subscription status, its amount, its frequency and when the next charge falls."
            },
            {
              "name": "mercadopago_get_account_info",
              "description": "Returns the authenticated account and its country, to confirm the credentials are the right ones."
            },
            {
              "name": "mercadopago_list_recent_events",
              "description": "Shows every notification Mercado Pago sent to your workspace, filterable by type: payments, refunds, subscriptions, chargebacks and claims, each with its signature checked."
            }
          ],
          "limitations": [
            "It does not store or process card data, subscriptions included. The charge happens in the Mercado Pago checkout. Meteor issues the link and reads the result. A subscription is created with no card token and in pending state: the customer is the one who authorises it on the link.",
            "It does refund and cancel pending charges, but a person has to confirm. Both tools are flagged as destructive and ask for confirmation by a human before they run, because neither one can be undone. You can also leave them switched off.",
            "It does not cancel or pause a subscription once authorised. The connector creates it and reads it; cancelling it or changing the amount happens in the Mercado Pago dashboard. Worth knowing before you create one: until somebody cancels it there, the customer is charged again every period.",
            "It does not issue invoices or tax documents. The invoicing integration covers that.",
            "Without the notification secret the signature cannot be validated and payments are not processed. That is a requirement, not an optional detail."
          ],
          "requirements": [
            {
              "name": "The access token of your Mercado Pago application",
              "howToObtain": "It is in the developer portal, under your application credentials. Use the production one for real charges and the test one to rehearse."
            },
            {
              "name": "The payment notification secret",
              "howToObtain": "Mercado Pago generates it when you configure notifications for your application. Without it the signature cannot be validated and notifications are not processed."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/mercadopago"
        }
      }
    },
    {
      "id": "meta-ads",
      "catalogStatus": "published",
      "toolCount": 12,
      "locales": {
        "es": {
          "name": "Meta Ads",
          "category": "Crear y promocionar",
          "summary": "Meteor se conecta con la API de anuncios de Meta y le da a tu Met 12 herramientas para crear y administrar campañas de Facebook e Instagram: armar la campaña con sus conjuntos y sus anuncios, segmentar por intereses y públicos, fijar el presupuesto diario, pausar, reactivar y leer cuánto gastó y qué trajo. La que más se usa escribe el texto y el titular y arma de un solo paso la campaña completa de anuncios que abren un chat de WhatsApp, ya conectada al número de tu espacio de trabajo, así que la persona que hace clic cae en la misma conversación donde tu Met atiende. Todo lo que crea nace pausado: nada empieza a gastar hasta que tú lo actives.",
          "tools": [
            {
              "name": "listar_cuentas_publicitarias",
              "description": "Lista las cuentas publicitarias a las que tienes acceso, con su moneda y su estado."
            },
            {
              "name": "listar_paginas",
              "description": "Lista las páginas de Facebook y perfiles de Instagram con los que se puede anunciar."
            },
            {
              "name": "listar_campanas",
              "description": "Lista las campañas de una cuenta con su objetivo, su estado y su presupuesto."
            },
            {
              "name": "ver_rendimiento",
              "description": "Devuelve gasto, impresiones, clics, alcance, costo por resultado y conversaciones iniciadas, por día, por conjunto o por anuncio."
            },
            {
              "name": "crear_campana_whatsapp",
              "description": "Crea de un solo paso una campaña de anuncios que abren un chat de WhatsApp, ya enganchada al número del espacio de trabajo."
            },
            {
              "name": "crear_campana",
              "description": "Crea una campaña con el objetivo que elijas, cuando no se trata de abrir conversaciones."
            },
            {
              "name": "crear_conjunto_de_anuncios",
              "description": "Crea el conjunto dentro de una campaña y es donde va la segmentación: intereses, comportamientos, públicos guardados, lugar y edad, además del presupuesto."
            },
            {
              "name": "crear_anuncio",
              "description": "Escribe el anuncio dentro de un conjunto, con su texto, su titular y su imagen, y lo deja pausado."
            },
            {
              "name": "actualizar_presupuesto",
              "description": "Cambia el presupuesto diario de una campaña o de un conjunto de anuncios."
            },
            {
              "name": "pausar",
              "description": "Pausa una campaña, un conjunto o un anuncio. Deja de gastar de inmediato."
            },
            {
              "name": "activar",
              "description": "Reactiva lo que estaba pausado. Es el único paso que pone dinero a correr."
            },
            {
              "name": "ver_detalle",
              "description": "Muestra la configuración completa de una campaña antes de cambiarle algo."
            }
          ],
          "limitations": [
            "No activa nada por su cuenta. Todo lo que crea nace pausado y activarlo es una decisión tuya, dicha explícitamente. No es configurable, y es a propósito.",
            "No mide conversiones ni envía eventos a Meta. Lee el rendimiento para decidir qué ajustar, no para contabilizar ventas.",
            "No hace la imagen. Escribe el texto y el titular del anuncio, pero la pieza gráfica se la pasas tú, publicada en una dirección pública, porque es lo que Meta descarga al crear el anuncio.",
            "No arma públicos personalizados a partir de tus datos ni maneja catálogo de productos. Segmenta con lo que Meta ya ofrece y con los públicos que tú tengas guardados."
          ],
          "requirements": [
            {
              "name": "Una cuenta publicitaria de Meta",
              "howToObtain": "Es la cuenta desde la que ya pautas, o una nueva en el administrador comercial de Meta. Meteor trabaja sobre la tuya, no crea ni cobra en una propia."
            },
            {
              "name": "Un permiso de anuncios para tu cuenta",
              "howToObtain": "Se autoriza una vez para que tu Met pueda crear y administrar campañas en tu nombre. Sin ese permiso puede leer la conversación, pero no tocar la pauta."
            },
            {
              "name": "Una página de Facebook",
              "howToObtain": "Toda campaña necesita una: es la identidad con la que aparece el anuncio. Si ya publicas en Facebook o Instagram desde Meteor, es la misma que ya tienes conectada."
            },
            {
              "name": "Un número de WhatsApp conectado, solo para los anuncios de conversación",
              "howToObtain": "Es el número que ya usas en Meteor para atender. Los anuncios que abren un chat lo toman de ahí, así que no hay nada extra que configurar."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/meta-ads"
        },
        "en": {
          "name": "Meta Ads",
          "category": "Create and promote",
          "summary": "Meteor connects to the Meta ads API and gives your Met 12 tools to build and run Facebook and Instagram campaigns: assemble the campaign with its ad sets and its ads, target by interests and audiences, set the daily budget, pause, resume and read what it spent and what it brought in. The one most used writes the copy and the headline and builds the whole click-to-WhatsApp campaign in a single step, already wired to your workspace number, so the person who clicks lands in the same conversation your Met is already handling. Everything it creates is born paused: nothing starts spending until you turn it on.",
          "tools": [
            {
              "name": "listar_cuentas_publicitarias",
              "description": "Lists the ad accounts you can reach, with their currency and status."
            },
            {
              "name": "listar_paginas",
              "description": "Lists the Facebook Pages and Instagram profiles available to advertise with."
            },
            {
              "name": "listar_campanas",
              "description": "Lists the campaigns on an account with their objective, status and budget."
            },
            {
              "name": "ver_rendimiento",
              "description": "Returns spend, impressions, clicks, reach, cost per result and conversations started, by day, by ad set or by ad."
            },
            {
              "name": "crear_campana_whatsapp",
              "description": "Builds a click-to-WhatsApp campaign in a single step, already wired to the workspace phone number."
            },
            {
              "name": "crear_campana",
              "description": "Creates a campaign with the objective you choose, when it is not about opening chats."
            },
            {
              "name": "crear_conjunto_de_anuncios",
              "description": "Creates the ad set inside a campaign and is where targeting lives: interests, behaviours, saved audiences, location and age, along with the budget."
            },
            {
              "name": "crear_anuncio",
              "description": "Writes the ad inside an ad set, with its copy, its headline and its image, and leaves it paused."
            },
            {
              "name": "actualizar_presupuesto",
              "description": "Changes the daily budget of a campaign or of an ad set."
            },
            {
              "name": "pausar",
              "description": "Pauses a campaign, ad set or ad. It stops spending immediately."
            },
            {
              "name": "activar",
              "description": "Turns back on what was paused. It is the only step that puts money in motion."
            },
            {
              "name": "ver_detalle",
              "description": "Shows the full setup of a campaign before you change anything on it."
            }
          ],
          "limitations": [
            "It does not turn anything on by itself. Everything it creates is born paused and activating is your call, said out loud. This is not configurable, and that is deliberate.",
            "It does not measure conversions or send events back to Meta. It reads performance to decide what to adjust, not to account for sales.",
            "It does not make the image. It writes the ad copy and the headline, but the visual is yours, published at a public URL, because that is what Meta downloads when the ad is built.",
            "It does not build custom audiences from your own data, and it does not handle product catalogs. It targets with what Meta already offers and with the audiences you have saved."
          ],
          "requirements": [
            {
              "name": "A Meta ad account",
              "howToObtain": "The account you already advertise from, or a new one in Meta Business Manager. Meteor works on yours; it does not create or bill through one of its own."
            },
            {
              "name": "An ads permission for your account",
              "howToObtain": "Authorized once so your Met can create and manage campaigns on your behalf. Without it, it can read the conversation but not touch the ads."
            },
            {
              "name": "A Facebook Page",
              "howToObtain": "Every campaign needs one: it is the identity the ad appears under. If you already publish to Facebook or Instagram from Meteor, it is the same Page you have connected."
            },
            {
              "name": "A connected WhatsApp number, only for click-to-chat ads",
              "howToObtain": "The number you already use in Meteor to answer. Click-to-chat ads pick it up from there, so there is nothing extra to set up."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/meta-ads"
        }
      }
    },
    {
      "id": "meta-publish",
      "catalogStatus": "published",
      "toolCount": 7,
      "locales": {
        "es": {
          "name": "Facebook e Instagram",
          "category": "Crear y promocionar",
          "summary": "Meteor se conecta con la API de Meta y le da a tu agente de IA 7 herramientas para publicar contenido orgánico: posts en una página de Facebook con texto, enlace o foto, y en Instagram una imagen suelta, un carrusel de hasta diez piezas, una historia o un reel. Una sola autorización trae todas las páginas de la cuenta con sus perfiles de Instagram, así que una agencia puede manejar varias marcas desde el mismo espacio de trabajo.",
          "tools": [
            {
              "name": "meta_list_accounts",
              "description": "Lista las páginas y perfiles de Instagram conectados, para saber a cuál publicar."
            },
            {
              "name": "meta_publish_facebook_post",
              "description": "Publica en una página de Facebook con texto, con enlace o con foto y pie."
            },
            {
              "name": "meta_publish_instagram_image",
              "description": "Publica una imagen en el feed de Instagram y maneja el proceso de subida por dentro."
            },
            {
              "name": "meta_publish_instagram_carousel",
              "description": "Publica un carrusel de dos a diez piezas, mezclando imágenes y videos."
            },
            {
              "name": "meta_publish_instagram_story",
              "description": "Publica una historia con imagen o video. Desaparece a las veinticuatro horas."
            },
            {
              "name": "meta_publish_instagram_reel",
              "description": "Publica un reel y espera a que Meta termine de procesar el video antes de publicarlo."
            },
            {
              "name": "meta_get_publishing_limit",
              "description": "Consulta cuántas publicaciones quedan en la ventana de veinticuatro horas de Instagram."
            }
          ],
          "limitations": [
            "No responde comentarios ni mensajes directos. Publica contenido orgánico; la conversación de Instagram y Messenger se atiende por los canales de Meteor.",
            "No compra ni administra pauta publicitaria, y no envía eventos de conversión. Publica contenido orgánico; los anuncios pagados se hacen con Meta Ads, que es una habilidad aparte.",
            "No acepta archivos binarios. Instagram descarga el medio desde una dirección pública, así que la imagen o el video tienen que estar publicados en el momento de publicar.",
            "No mide alcance ni interacción. Devuelve el identificador de la publicación, no sus métricas."
          ],
          "requirements": [
            {
              "name": "Autorización con Facebook",
              "howToObtain": "Se hace una vez desde el panel de Meteor. Esa sola autorización devuelve todas las páginas de la cuenta con sus perfiles de Instagram vinculados."
            },
            {
              "name": "Una página de Facebook con un perfil de Instagram profesional vinculado",
              "howToObtain": "Es requisito de Meta: publicar en Instagram por API exige que el perfil sea profesional y esté vinculado a una página."
            },
            {
              "name": "Los medios en direcciones públicas",
              "howToObtain": "Meteor los aloja y expone públicamente al publicar. Instagram los descarga por dirección, no acepta el archivo enviado directamente."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/meta-publish"
        },
        "en": {
          "name": "Facebook and Instagram",
          "category": "Create and promote",
          "summary": "Meteor connects to the Meta API and gives your Met 7 tools to publish organic content: posts on a Facebook Page with text, a link or a photo, and on Instagram a single image, a carousel of up to ten pieces, a story or a reel. One authorization brings in every Page on the account with its linked Instagram profiles, so an agency can run several brands from the same workspace.",
          "tools": [
            {
              "name": "meta_list_accounts",
              "description": "Lists the Pages and Instagram profiles connected, so you know where to publish."
            },
            {
              "name": "meta_publish_facebook_post",
              "description": "Publishes to a Facebook Page with text, with a link or with a photo and caption."
            },
            {
              "name": "meta_publish_instagram_image",
              "description": "Publishes an image to the Instagram feed and handles the upload process internally."
            },
            {
              "name": "meta_publish_instagram_carousel",
              "description": "Publishes a carousel of two to ten pieces, mixing images and video."
            },
            {
              "name": "meta_publish_instagram_story",
              "description": "Publishes a story with an image or video. It disappears after twenty-four hours."
            },
            {
              "name": "meta_publish_instagram_reel",
              "description": "Publishes a reel and waits for Meta to finish processing the video before it goes live."
            },
            {
              "name": "meta_get_publishing_limit",
              "description": "Checks how many posts are left in the Instagram twenty-four hour window."
            }
          ],
          "limitations": [
            "It does not reply to comments or direct messages. It publishes organic content. Instagram and Messenger conversations are handled through the Meteor channels.",
            "It does not buy or manage paid media, and it does not send conversion events. It publishes organic content; paid ads are handled by Meta Ads, which is a separate skill.",
            "It does not accept binary files. Instagram downloads the media from a public URL, so the image or video has to be published at the moment you post.",
            "It does not measure reach or engagement. It returns the post identifier, not its metrics."
          ],
          "requirements": [
            {
              "name": "Authorization with Facebook",
              "howToObtain": "Done once from the Meteor panel. That single authorization returns every Page on the account along with its linked Instagram profiles."
            },
            {
              "name": "A Facebook Page with a professional Instagram profile linked",
              "howToObtain": "This is a Meta requirement. Publishing to Instagram through the API needs the profile to be professional and linked to a Page."
            },
            {
              "name": "Media on public URLs",
              "howToObtain": "Meteor hosts and exposes them publicly when you publish. Instagram downloads them by URL and does not accept a file sent directly."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/meta-publish"
        }
      }
    },
    {
      "id": "odoo",
      "catalogStatus": "published",
      "toolCount": 36,
      "locales": {
        "es": {
          "name": "Odoo",
          "category": "Cobrar y administrar",
          "summary": "Meteor conecta un Met con Odoo mediante la API oficial y le da 36 herramientas cerradas para operar clientes y proveedores, catálogo, precios, disponibilidad, cotizaciones, pedidos, entregas, facturas, cartera, pagos y compras. En Odoo 19 o superior usa JSON-2; en Odoo 17 y 18 usa JSON-RPC. Cada escritura exige confirmación explícita y los pasos de mayor impacto —confirmar pedidos o compras, validar entregas, contabilizar facturas, crear notas crédito y registrar pagos— solo funcionan desde la aplicación, nunca desde un Met de canal. En Odoo Online la API externa requiere el plan Custom; en Odoo.sh o una instalación propia depende de los módulos y permisos del usuario técnico.",
          "tools": [
            {
              "name": "odoo_diagnosticar_conexion",
              "description": "Verifica credenciales, versión, protocolo disponible y compañías accesibles."
            },
            {
              "name": "odoo_listar_companias",
              "description": "Lista las compañías que el usuario técnico puede consultar en esa base."
            },
            {
              "name": "odoo_listar_almacenes",
              "description": "Lista almacenes y sus ubicaciones principales para la compañía elegida."
            },
            {
              "name": "odoo_listar_tarifas",
              "description": "Lista las tarifas activas con su moneda y compañía antes de cotizar."
            },
            {
              "name": "odoo_listar_impuestos",
              "description": "Lista los impuestos configurados para ventas o compras y sus identificadores."
            },
            {
              "name": "odoo_listar_diarios",
              "description": "Lista diarios contables y métodos de pago disponibles para registrar operaciones."
            },
            {
              "name": "odoo_buscar_tercero",
              "description": "Busca clientes o proveedores por nombre, identificación, correo o teléfono."
            },
            {
              "name": "odoo_consultar_tercero",
              "description": "Consulta la ficha comercial y fiscal de un cliente o proveedor por identificador."
            },
            {
              "name": "odoo_crear_tercero",
              "description": "Crea un cliente, un proveedor o ambos después de una confirmación explícita."
            },
            {
              "name": "odoo_actualizar_tercero",
              "description": "Actualiza los campos permitidos de un cliente o proveedor ya identificado."
            },
            {
              "name": "odoo_buscar_producto",
              "description": "Busca variantes por nombre, referencia interna o código de barras."
            },
            {
              "name": "odoo_consultar_producto",
              "description": "Consulta la ficha comercial de una variante de producto por identificador."
            },
            {
              "name": "odoo_consultar_precio",
              "description": "Devuelve precio base, costo, moneda, unidad e impuestos configurados."
            },
            {
              "name": "odoo_consultar_disponibilidad",
              "description": "Consulta físico, libre, entradas, salidas y pronóstico, con filtro por almacén."
            },
            {
              "name": "odoo_listar_cotizaciones",
              "description": "Lista cotizaciones y pedidos por cliente, estado, compañía y rango de fechas."
            },
            {
              "name": "odoo_consultar_cotizacion",
              "description": "Abre una cotización o pedido con líneas, totales, estado y URL de portal."
            },
            {
              "name": "odoo_crear_cotizacion",
              "description": "Crea una cotización en borrador sin confirmar el pedido ni reservar inventario."
            },
            {
              "name": "odoo_confirmar_pedido",
              "description": "Confirma una cotización como pedido desde la aplicación y con aprobación explícita."
            },
            {
              "name": "odoo_cancelar_pedido",
              "description": "Cancela una cotización o pedido desde la aplicación cuando Odoo lo permite."
            },
            {
              "name": "odoo_listar_entregas",
              "description": "Lista entregas y recepciones por venta, compra, tercero, estado o fecha."
            },
            {
              "name": "odoo_consultar_entrega",
              "description": "Consulta una entrega o recepción con movimientos y cantidades demandadas y realizadas."
            },
            {
              "name": "odoo_reservar_entrega",
              "description": "Solicita a Odoo reservar disponibilidad para una entrega confirmada."
            },
            {
              "name": "odoo_validar_entrega",
              "description": "Valida una entrega o recepción desde la aplicación y conserva los wizards pendientes."
            },
            {
              "name": "odoo_listar_facturas",
              "description": "Lista facturas, notas crédito y facturas de proveedor por estado y fecha."
            },
            {
              "name": "odoo_consultar_factura",
              "description": "Consulta líneas, impuestos, totales y saldo de una factura o nota crédito."
            },
            {
              "name": "odoo_crear_factura_borrador",
              "description": "Crea una factura de cliente o proveedor sin contabilizarla ni enviarla fiscalmente."
            },
            {
              "name": "odoo_contabilizar_factura",
              "description": "Contabiliza una factura borrador desde la aplicación después de revisarla."
            },
            {
              "name": "odoo_crear_nota_credito_borrador",
              "description": "Revierte una factura con el wizard oficial y deja la nota crédito en borrador."
            },
            {
              "name": "odoo_registrar_pago",
              "description": "Registra y concilia un pago sobre una factura mediante el wizard oficial."
            },
            {
              "name": "odoo_consultar_cartera",
              "description": "Consulta partidas abiertas por cobrar o pagar con vencimiento, saldo y moneda."
            },
            {
              "name": "odoo_consultar_estado_edi",
              "description": "Devuelve únicamente los campos EDI o fiscales instalados para una factura."
            },
            {
              "name": "odoo_listar_ordenes_compra",
              "description": "Lista solicitudes de cotización y órdenes de compra por proveedor y estado."
            },
            {
              "name": "odoo_consultar_orden_compra",
              "description": "Consulta líneas, totales, recepción y facturación de una orden de compra."
            },
            {
              "name": "odoo_crear_solicitud_cotizacion",
              "description": "Crea una solicitud de cotización de compra en borrador, sin confirmarla."
            },
            {
              "name": "odoo_confirmar_orden_compra",
              "description": "Confirma la solicitud como orden de compra desde la aplicación."
            },
            {
              "name": "odoo_listar_recepciones",
              "description": "Lista las recepciones que Odoo generó para una orden de compra."
            }
          ],
          "limitations": [
            "No confirma ni cancela pedidos, no valida entregas, no contabiliza facturas, no crea notas crédito, no registra pagos y no confirma compras desde WhatsApp, Instagram o Messenger. Esas operaciones quedan reservadas a la aplicación sin una opción para saltarse la guardia.",
            "No afirma que una factura fue aceptada por la DIAN, el SAT u otra autoridad si la instalación no devuelve ese estado. La consulta EDI solo informa los campos que los módulos y la localización de esa base realmente instalaron.",
            "No expone acceso genérico a cualquier modelo o campo de Odoo. Las 36 herramientas tienen una superficie cerrada; un módulo personalizado necesita una ampliación revisada del conector.",
            "No confirma a ciegas un backorder ni cantidades inmediatas. Si Odoo devuelve un wizard al validar una entrega, la herramienta explica la decisión pendiente y se detiene.",
            "No ofrece una transacción atómica entre varias herramientas. Cada llamada de la API externa es independiente, así que después de una falla se consulta el documento antes de reintentar una escritura y duplicarlo.",
            "No crea productos, no hace ajustes manuales de inventario y no presenta declaraciones ni cierra libros. Opera los documentos y maestros que el conector declara; el criterio contable y la configuración de Odoo siguen en manos de la empresa.",
            "No habilita la API externa en los planes One App Free o Standard de Odoo Online. Allí hace falta el plan Custom; en Odoo.sh o una instalación propia, el acceso depende de la configuración del servidor."
          ],
          "requirements": [
            {
              "name": "Una base Odoo accesible por HTTPS",
              "howToObtain": "Usa la URL de tu Odoo Online, Odoo.sh o servidor propio. Meteor rechaza HTTP salvo en localhost de pruebas para no enviar credenciales sin cifrado."
            },
            {
              "name": "El nombre técnico de la base de datos",
              "howToObtain": "Es la base que el usuario abre en Odoo. En Odoo 19 viaja en X-Odoo-Database y en versiones anteriores forma parte de la autenticación JSON-RPC."
            },
            {
              "name": "Un usuario técnico y su API key",
              "howToObtain": "Crea una clave para un usuario dedicado y concédele solo las compañías, modelos y operaciones que necesita. La integración no requiere la contraseña personal del administrador."
            },
            {
              "name": "Los módulos de ventas, inventario, contabilidad o compras que vayas a usar",
              "howToObtain": "Instálalos y configura diarios, almacenes, tarifas e impuestos dentro de Odoo. Una conexión válida no reemplaza un módulo ausente ni concede permisos que el usuario no tenga."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/odoo"
        },
        "en": {
          "name": "Odoo",
          "category": "Collect and manage",
          "summary": "Meteor connects a Met to Odoo through the official API and gives it 36 closed, typed tools for customers and vendors, catalog, pricing, availability, quotes, orders, deliveries, invoices, receivables, payments and purchasing. Odoo 19 and later use JSON-2; Odoo 17 and 18 use JSON-RPC. Every write requires explicit confirmation. The highest-impact steps, including confirming sales or purchase orders, validating deliveries, posting invoices, creating credit notes and registering payments, only work inside the app, never from a channel Met. On Odoo Online the external API requires the Custom plan; on Odoo.sh or self-hosted Odoo, availability depends on the installed modules and the technical user's permissions.",
          "tools": [
            {
              "name": "odoo_diagnosticar_conexion",
              "description": "Checks credentials, version, available protocol and accessible companies."
            },
            {
              "name": "odoo_listar_companias",
              "description": "Lists the companies the technical user can access in that database."
            },
            {
              "name": "odoo_listar_almacenes",
              "description": "Lists warehouses and their main stock locations for the selected company."
            },
            {
              "name": "odoo_listar_tarifas",
              "description": "Lists active price lists with their currency and company before quoting."
            },
            {
              "name": "odoo_listar_impuestos",
              "description": "Lists configured sales or purchase taxes and their identifiers."
            },
            {
              "name": "odoo_listar_diarios",
              "description": "Lists accounting journals and available payment methods for transactions."
            },
            {
              "name": "odoo_buscar_tercero",
              "description": "Finds customers or vendors by name, tax ID, email address or phone number."
            },
            {
              "name": "odoo_consultar_tercero",
              "description": "Returns the commercial and tax profile of a customer or vendor by id."
            },
            {
              "name": "odoo_crear_tercero",
              "description": "Creates a customer, a vendor or both after explicit confirmation."
            },
            {
              "name": "odoo_actualizar_tercero",
              "description": "Updates the permitted fields on an already identified customer or vendor."
            },
            {
              "name": "odoo_buscar_producto",
              "description": "Finds product variants by name, internal reference or barcode."
            },
            {
              "name": "odoo_consultar_producto",
              "description": "Returns the commercial profile of a product variant by id."
            },
            {
              "name": "odoo_consultar_precio",
              "description": "Returns base price, cost, currency, unit and configured taxes."
            },
            {
              "name": "odoo_consultar_disponibilidad",
              "description": "Returns on hand, free, incoming, outgoing and forecast stock by warehouse."
            },
            {
              "name": "odoo_listar_cotizaciones",
              "description": "Lists quotes and sales orders by customer, state, company and date range."
            },
            {
              "name": "odoo_consultar_cotizacion",
              "description": "Opens a quote or order with lines, totals, state and portal URL."
            },
            {
              "name": "odoo_crear_cotizacion",
              "description": "Creates a draft quote without confirming the order or reserving inventory."
            },
            {
              "name": "odoo_confirmar_pedido",
              "description": "Confirms a quote as a sales order inside the app after explicit approval."
            },
            {
              "name": "odoo_cancelar_pedido",
              "description": "Cancels a quote or sales order inside the app when Odoo allows it."
            },
            {
              "name": "odoo_listar_entregas",
              "description": "Lists deliveries and receipts by sale, purchase, party, state or date."
            },
            {
              "name": "odoo_consultar_entrega",
              "description": "Returns a delivery or receipt with its moves and requested and done quantities."
            },
            {
              "name": "odoo_reservar_entrega",
              "description": "Asks Odoo to reserve available inventory for a confirmed delivery."
            },
            {
              "name": "odoo_validar_entrega",
              "description": "Validates a delivery or receipt in the app and preserves pending wizards."
            },
            {
              "name": "odoo_listar_facturas",
              "description": "Lists invoices, credit notes and vendor bills by state and date."
            },
            {
              "name": "odoo_consultar_factura",
              "description": "Returns lines, taxes, totals and balance on an invoice or credit note."
            },
            {
              "name": "odoo_crear_factura_borrador",
              "description": "Creates a customer invoice or vendor bill without posting or filing it."
            },
            {
              "name": "odoo_contabilizar_factura",
              "description": "Posts a draft invoice inside the app after it has been reviewed."
            },
            {
              "name": "odoo_crear_nota_credito_borrador",
              "description": "Reverses an invoice with the official wizard and leaves a draft credit note."
            },
            {
              "name": "odoo_registrar_pago",
              "description": "Registers and reconciles a payment on an invoice through the official wizard."
            },
            {
              "name": "odoo_consultar_cartera",
              "description": "Lists open receivable or payable items with due date, balance and currency."
            },
            {
              "name": "odoo_consultar_estado_edi",
              "description": "Returns only the EDI or tax fields installed for an invoice."
            },
            {
              "name": "odoo_listar_ordenes_compra",
              "description": "Lists requests for quotation and purchase orders by vendor and state."
            },
            {
              "name": "odoo_consultar_orden_compra",
              "description": "Returns lines, totals, receipts and billing for a purchase order."
            },
            {
              "name": "odoo_crear_solicitud_cotizacion",
              "description": "Creates a draft purchase request for quotation without confirming it."
            },
            {
              "name": "odoo_confirmar_orden_compra",
              "description": "Confirms the request as a purchase order inside the app."
            },
            {
              "name": "odoo_listar_recepciones",
              "description": "Lists the receipts Odoo generated for a purchase order."
            }
          ],
          "limitations": [
            "It does not confirm or cancel sales orders, validate deliveries, post invoices, create credit notes, register payments or confirm purchases from WhatsApp, Instagram or Messenger. Those actions stay inside the app and there is no setting that bypasses the guard.",
            "It does not claim that an invoice was accepted by DIAN, SAT or another authority unless the installation returns that state. The EDI check only reports fields installed by that database's modules and localization.",
            "It does not expose generic access to any Odoo model or field. The 36 tools have a closed surface; a custom module requires a reviewed extension to the connector.",
            "It does not blindly confirm a backorder or immediate quantities. If Odoo returns a wizard while validating a delivery, the tool explains the pending decision and stops.",
            "It does not provide one atomic transaction across several tools. Every external API call is independent, so after a failure it reads the document before retrying a write and duplicating it.",
            "It does not create products, make manual stock adjustments, file returns or close books. It operates the documents and masters declared by the connector; accounting judgment and Odoo configuration remain with the company.",
            "It does not enable the external API on Odoo Online One App Free or Standard. Those require the Custom plan; Odoo.sh and self-hosted Odoo depend on server configuration instead."
          ],
          "requirements": [
            {
              "name": "An Odoo database reachable over HTTPS",
              "howToObtain": "Use the URL of your Odoo Online, Odoo.sh or self-hosted server. Meteor refuses plain HTTP except on test localhost so credentials are never sent without encryption."
            },
            {
              "name": "The technical database name",
              "howToObtain": "This is the database the user opens in Odoo. On Odoo 19 it travels in X-Odoo-Database; on older versions it is part of JSON-RPC authentication."
            },
            {
              "name": "A technical user and its API key",
              "howToObtain": "Create a key for a dedicated user and grant only the companies, models and operations it needs. The integration does not require an administrator's personal password."
            },
            {
              "name": "The sales, inventory, accounting or purchase modules you intend to use",
              "howToObtain": "Install and configure journals, warehouses, price lists and taxes in Odoo. A valid connection cannot replace a missing module or grant permissions the user does not have."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/odoo"
        }
      }
    },
    {
      "id": "pages",
      "catalogStatus": "published",
      "toolCount": 5,
      "locales": {
        "es": {
          "name": "Páginas de Meteor",
          "category": "Crear y promocionar",
          "summary": "Meteor deja que un agente de IA cree y mantenga páginas dentro del propio espacio de trabajo, con su HTML, su CSS y su JavaScript por separado. Sirve para tableros de indicadores, páginas de aterrizaje y vistas embebidas que se arman a partir de los datos de la operación. Son 5 herramientas y no requieren credenciales, porque las páginas viven en Meteor.",
          "tools": [
            {
              "name": "pages_list",
              "description": "Lista las páginas del espacio de trabajo sin traer su contenido, para ver qué existe."
            },
            {
              "name": "pages_get",
              "description": "Trae una página completa con su HTML, su CSS y su JavaScript, antes de editarla."
            },
            {
              "name": "pages_create",
              "description": "Crea una página nueva separando estructura, estilos y comportamiento."
            },
            {
              "name": "pages_update",
              "description": "Actualiza solo los campos que le pases; los demás quedan como estaban."
            },
            {
              "name": "pages_delete",
              "description": "Elimina una página. Es destructiva y exige confirmación explícita."
            }
          ],
          "limitations": [
            "No publica un sitio web público con dominio propio. Las páginas viven dentro de Meteor; para un sitio externo están las integraciones de WordPress y Webflow.",
            "No reemplaza el diseño de marca ni aplica un sistema de diseño por su cuenta.",
            "No conecta bases de datos externas. Trabaja con lo que la propia plataforma expone.",
            "No versiona los cambios. Una actualización pisa el contenido anterior de esa página."
          ],
          "requirements": [
            {
              "name": "Nada. No pide credenciales",
              "howToObtain": "Las páginas son nativas de Meteor y viven en tu espacio de trabajo. Basta con darle al agente la herramienta."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/pages"
        },
        "en": {
          "name": "Meteor Pages",
          "category": "Create and promote",
          "summary": "Meteor lets a Met create and maintain pages inside your own workspace, with their HTML, CSS and JavaScript kept separate. Use it for metric dashboards, landing pages and embedded views built from your operating data. That is 5 tools, and they need no credentials, because the pages live in Meteor.",
          "tools": [
            {
              "name": "pages_list",
              "description": "Lists the pages in the workspace without pulling their content, so you can see what exists."
            },
            {
              "name": "pages_get",
              "description": "Returns a full page with its HTML, CSS and JavaScript, before you edit it."
            },
            {
              "name": "pages_create",
              "description": "Creates a new page, keeping structure, styles and behavior apart."
            },
            {
              "name": "pages_update",
              "description": "Updates only the fields you pass. The rest stay as they were."
            },
            {
              "name": "pages_delete",
              "description": "Deletes a page. Destructive, and it requires explicit confirmation."
            }
          ],
          "limitations": [
            "It does not publish a public website on your own domain. These pages live inside Meteor. For an external site, use the WordPress and Webflow integrations.",
            "It does not replace brand design and it does not apply a design system on its own.",
            "It does not connect external databases. It works with what the platform itself exposes.",
            "It does not version changes. An update overwrites the previous content of that page."
          ],
          "requirements": [
            {
              "name": "Nothing. There are no credentials to enter",
              "howToObtain": "Pages are native to Meteor and live in your workspace. You just give your Met the tool."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/pages"
        }
      }
    },
    {
      "id": "rappi",
      "catalogStatus": "published",
      "toolCount": 10,
      "locales": {
        "es": {
          "name": "Rappi",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con la API pública de restaurantes de Rappi y le da a tu agente de IA 10 herramientas para operar la tienda: prender y apagar productos por referencia o por identificador, abrir y cerrar la tienda completa, ver los pedidos nuevos, aceptarlos indicando el tiempo de cocción, rechazarlos, marcarlos listos para recoger y revisar los avisos que Rappi envía cuando entra un pedido.",
          "tools": [
            {
              "name": "rappi_set_item_availability",
              "description": "Prende o apaga la disponibilidad de uno o varios productos identificándolos por referencia."
            },
            {
              "name": "rappi_set_item_availability_by_rappi_id",
              "description": "Lo mismo, pero identificando los productos por su identificador interno de Rappi."
            },
            {
              "name": "rappi_set_store_availability",
              "description": "Abre o cierra la tienda completa, para dejar de recibir pedidos fuera de horario o al saturarse."
            },
            {
              "name": "rappi_get_new_orders",
              "description": "Lista los pedidos nuevos pendientes de aceptar, sin modificar nada."
            },
            {
              "name": "rappi_get_order_events",
              "description": "Devuelve los últimos eventos de un pedido para confirmar en qué etapa va."
            },
            {
              "name": "rappi_accept_order",
              "description": "Acepta un pedido indicando el tiempo de cocción en minutos."
            },
            {
              "name": "rappi_reject_order",
              "description": "Rechaza un pedido. Es destructiva y pide confirmación antes de ejecutarse."
            },
            {
              "name": "rappi_mark_ready_for_pickup",
              "description": "Marca el pedido como listo para que el domiciliario lo recoja."
            },
            {
              "name": "rappi_register_webhook",
              "description": "Registra en Rappi la dirección donde Meteor recibe los pedidos y guarda el secreto generado."
            },
            {
              "name": "rappi_list_recent_events",
              "description": "Muestra los últimos avisos recibidos con sus cabeceras y el estado de la firma."
            }
          ],
          "limitations": [
            "No cambia precios ni edita el menú. Solo prende y apaga la disponibilidad de los productos que ya están publicados.",
            "No gestiona domiciliarios ni tiempos de entrega. Esa parte es de la operación de Rappi.",
            "No resuelve reclamos ni reembolsos de la plataforma.",
            "Sin el secreto del aviso, los pedidos entrantes se registran pero no se procesan como confiables: la firma es lo que distingue un pedido real de uno inventado."
          ],
          "requirements": [
            {
              "name": "Identificador y secreto de tu integración",
              "howToObtain": "Los entrega Rappi al habilitarte la API pública de integraciones de restaurantes."
            },
            {
              "name": "Dominio de API por país",
              "howToObtain": "Es el host que Rappi te indica para Colombia. Puede ir como host o como dirección completa."
            },
            {
              "name": "Secreto del aviso de pedidos",
              "howToObtain": "Lo genera Rappi al crear el aviso. La herramienta de registro lo captura sola, o puedes pegarlo a mano. Sin él los pedidos no se procesan como verificados."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/rappi"
        },
        "en": {
          "name": "Rappi",
          "category": "Run stores and orders",
          "summary": "Meteor connects to the Rappi public restaurants API and gives your Met 10 tools to run the store: switch items on and off by SKU or by internal id, open and close the whole store, see new orders, accept them with the prep time in minutes, reject them, mark them ready for pickup and review the notifications Rappi sends when an order comes in.",
          "tools": [
            {
              "name": "rappi_set_item_availability",
              "description": "Switches availability on or off for one or several items, identified by SKU."
            },
            {
              "name": "rappi_set_item_availability_by_rappi_id",
              "description": "The same, identifying items by their internal Rappi id."
            },
            {
              "name": "rappi_set_store_availability",
              "description": "Opens or closes the whole store, to stop taking orders after hours or when you are slammed."
            },
            {
              "name": "rappi_get_new_orders",
              "description": "Lists new orders waiting to be accepted, changing nothing."
            },
            {
              "name": "rappi_get_order_events",
              "description": "Returns the latest events on an order so you can confirm what stage it is in."
            },
            {
              "name": "rappi_accept_order",
              "description": "Accepts an order, stating the prep time in minutes."
            },
            {
              "name": "rappi_reject_order",
              "description": "Rejects an order. Destructive, and it asks for confirmation before it runs."
            },
            {
              "name": "rappi_mark_ready_for_pickup",
              "description": "Marks the order ready for the courier to collect."
            },
            {
              "name": "rappi_register_webhook",
              "description": "Registers with Rappi the address where Meteor receives orders and stores the secret generated."
            },
            {
              "name": "rappi_list_recent_events",
              "description": "Shows the latest notifications received, with their headers and signature status."
            }
          ],
          "limitations": [
            "It does not change prices and it does not edit the menu. It only switches availability on and off for items already published.",
            "It does not manage couriers or delivery times. That part belongs to the Rappi operation.",
            "It does not resolve platform claims or refunds.",
            "Without the notification secret, incoming orders are recorded but not treated as trusted. The signature is what separates a real order from an invented one."
          ],
          "requirements": [
            {
              "name": "Your integration id and secret",
              "howToObtain": "Rappi provides them when they enable the public restaurant integrations API for you."
            },
            {
              "name": "The API domain for your country",
              "howToObtain": "It is the host Rappi gives you for Colombia. It can be passed as a host or as a full URL."
            },
            {
              "name": "The order notification secret",
              "howToObtain": "Rappi generates it when the notification is created. The registration tool captures it for you, or you can paste it by hand. Without it orders are not processed as verified."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/rappi"
        }
      }
    },
    {
      "id": "replicate",
      "catalogStatus": "published",
      "toolCount": 4,
      "locales": {
        "es": {
          "name": "Replicate",
          "category": "Crear y promocionar",
          "summary": "Meteor usa Replicate para que tu agente de IA genere una imagen desde una descripción, edite una imagen existente y genere video, con una veintena de modelos que eliges por nombre: Nano Banana y GPT Image 2 para imagen general, FLUX Kontext Pro para editar con una referencia, Ideogram v3 cuando el texto dentro de la pieza tiene que quedar bien y Recraft v3 para marca; Veo 3.1, Seedance, Kling, Hailuo 02, Wan 2.1, LTX y Grok Imagine para video. La clave del proveedor la pone Meteor, así que no hay que crear cuenta ni configurar credenciales: el consumo se descuenta de la Energía de tu espacio de trabajo.",
          "tools": [
            {
              "name": "replicate_list_models",
              "description": "Lista los modelos de imagen y video disponibles e indica cuáles aceptan una imagen de referencia."
            },
            {
              "name": "replicate_generate_image",
              "description": "Genera una imagen a partir de una descripción, con el modelo que elijas o el de por defecto."
            },
            {
              "name": "replicate_edit_image",
              "description": "Edita o transforma una imagen existente siguiendo las instrucciones que le des."
            },
            {
              "name": "replicate_generate_video",
              "description": "Genera video desde una descripción y, si quieres, desde una imagen de primer cuadro."
            }
          ],
          "limitations": [
            "Manda una sola imagen de referencia por generación. Varios modelos aceptan varias —Nano Banana admite hasta catorce, y los de video con omni-referencia bastantes más—, pero la herramienta del chat pasa una, y tampoco pasa videos ni audios de referencia.",
            "No hace locución ni música como pista aparte. El único audio es el que algunos modelos de video generan junto con la imagen; una voz en off sale de otras herramientas de la plataforma.",
            "No expone los ajustes finos del modelo. Eliges modelo, proporción y duración; la resolución y el interruptor del audio nativo quedan en el valor por defecto de cada modelo.",
            "No edita video ya generado. Genera desde una descripción o desde un primer cuadro, y ahí termina.",
            "No garantiza derechos de uso sobre lo generado. El resultado depende del modelo elegido y de sus condiciones.",
            "No permite usar tu propia clave del proveedor. La clave es de la plataforma y el consumo se factura como Energía del espacio de trabajo."
          ],
          "requirements": [
            {
              "name": "Nada por tu parte",
              "howToObtain": "La clave del proveedor es de Meteor y vive en el servidor, nunca en la base ni en la interfaz. Solo hace falta que el espacio de trabajo tenga Energía disponible."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/replicate"
        },
        "en": {
          "name": "Replicate",
          "category": "Create and promote",
          "summary": "Meteor uses Replicate so your Met can generate an image from a description, edit an existing image and generate video, across some twenty models you pick by name: Nano Banana and GPT Image 2 for general imagery, FLUX Kontext Pro to edit from a reference, Ideogram v3 when the text inside the piece has to come out right and Recraft v3 for brand work; Veo 3.1, Seedance, Kling, Hailuo 02, Wan 2.1, LTX and Grok Imagine for video. Meteor supplies the provider key, so there is no account to create and no credential to configure. Usage is drawn from the Energy balance of your workspace.",
          "tools": [
            {
              "name": "replicate_list_models",
              "description": "Lists the image and video models available and flags which accept a reference image."
            },
            {
              "name": "replicate_generate_image",
              "description": "Generates an image from a description, with the model you pick or the default one."
            },
            {
              "name": "replicate_edit_image",
              "description": "Edits or transforms an existing image following the instructions you give."
            },
            {
              "name": "replicate_generate_video",
              "description": "Generates video from a description and, if you want, from a first frame image."
            }
          ],
          "limitations": [
            "It sends a single reference image per generation. Several models accept more: Nano Banana takes up to fourteen, and the omni-reference video models a good deal more. The chat tool still passes one, and it passes no reference videos or audio either.",
            "It does not produce voiceover or music as a separate track. The only audio is what some video models generate along with the picture. Voiceover comes from other tools on the platform.",
            "It does not expose the fine-grained model settings. You choose model, aspect ratio and duration. Resolution and the native audio switch stay on each model's own default.",
            "It does not edit video that was already generated. It generates from a description or from a first frame, and that is where it stops.",
            "It does not guarantee usage rights over what it generates. The result depends on the model you choose and its terms.",
            "It does not let you bring your own provider key. The key belongs to the platform and usage is billed as workspace Energy."
          ],
          "requirements": [
            {
              "name": "Nothing on your side",
              "howToObtain": "The provider key belongs to Meteor and lives on the server, never in the database and never in the interface. All you need is Energy available in the workspace."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/replicate"
        }
      }
    },
    {
      "id": "shopify",
      "catalogStatus": "published",
      "toolCount": 17,
      "locales": {
        "es": {
          "name": "Shopify",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con Shopify por su Admin API y le da a tu agente de IA 17 herramientas para atender y vender: buscar productos con la sintaxis de la propia tienda, ver la disponibilidad por variante, consultar y anotar pedidos, crear cotizaciones con enlace de pago, crear pedidos reales pensados para pago contra entrega, gestionar clientes y ajustar inventario por bodega. Solo necesitas el token de una app personalizada de tu tienda.",
          "tools": [
            {
              "name": "shopify_list_products",
              "description": "Lista y busca productos usando la sintaxis de Shopify, con resultados ligeros."
            },
            {
              "name": "shopify_get_product",
              "description": "Trae un producto con identificador, handle, estado, dirección pública, imágenes, rango de precio normalizado como priceRange.min y priceRange.max (Decimal como strings), priceRange.minCurrency y priceRange.maxCurrency, y disponibilidad por variante."
            },
            {
              "name": "shopify_create_product",
              "description": "Crea un producto. Por defecto queda activo; puede quedar en borrador si prefieres revisarlo."
            },
            {
              "name": "shopify_update_product",
              "description": "Actualiza título, estado, descripción o etiquetas de un producto existente."
            },
            {
              "name": "shopify_delete_product",
              "description": "Elimina un producto. Es destructiva y siempre pide confirmación antes de ejecutarse."
            },
            {
              "name": "shopify_list_collections",
              "description": "Lista las colecciones del catálogo con su cantidad de productos."
            },
            {
              "name": "shopify_list_orders",
              "description": "Lista pedidos filtrando por número, correo, estado de pago, preparación o fechas; la respuesta es privada y debe compararse de forma exacta antes de mostrar datos del comprador."
            },
            {
              "name": "shopify_get_order",
              "description": "Trae un pedido con líneas, direcciones, totales, cancelación, devolución agregada y cada fulfillment con la transportadora, guía y URL que Shopify realmente tenga."
            },
            {
              "name": "shopify_update_order",
              "description": "Anota o etiqueta un pedido. No cambia su estado financiero."
            },
            {
              "name": "shopify_list_draft_orders",
              "description": "Lista cotizaciones y permite reconciliar una creación ambigua mediante su etiqueta de referencia, sin volver a escribir a ciegas."
            },
            {
              "name": "shopify_create_draft_order",
              "description": "Crea o recupera una cotización confirmada y devuelve su enlace de checkout. Exige `confirmar: true` y una referencia única por intención."
            },
            {
              "name": "shopify_create_order",
              "description": "Crea un pedido real pensado para contra entrega, con el pago pendiente."
            },
            {
              "name": "shopify_list_customers",
              "description": "Lista clientes buscando por correo, etiqueta, estado o número de pedidos."
            },
            {
              "name": "shopify_get_customer",
              "description": "Trae un cliente con sus direcciones, su histórico y su gasto acumulado."
            },
            {
              "name": "shopify_create_customer",
              "description": "Crea un cliente. El correo es único en la tienda, así que un duplicado se rechaza."
            },
            {
              "name": "shopify_adjust_inventory",
              "description": "Ajusta el stock de una variante en una bodega concreta, con un cambio relativo."
            },
            {
              "name": "shopify_fulfill_order",
              "description": "Registra un fulfillment y los datos de una guía ya existente; por defecto Shopify notifica al cliente, y una orden ya preparada no se vuelve a marcar."
            }
          ],
          "limitations": [
            "No procesa pagos por su cuenta. Genera cotizaciones con enlace de pago y pedidos pendientes; el cobro lo hace la pasarela de tu tienda.",
            "No promete el total definitivo antes del checkout: el monto devuelto es el cálculo actual del borrador y puede cambiar por impuestos, descuentos admitidos o el envío que Shopify muestre.",
            "No reserva inventario ni fija la expiración del enlace. Una referencia única permite buscar una creación ambigua, pero no convierte `draftOrderCreate` en una operación idempotente.",
            "No genera guías, cotiza fletes ni opera una transportadora. Si tu operación ya tiene una guía, puede registrar su seguimiento en Shopify y marcar el pedido como preparado.",
            "No emite reembolsos ni cambia el estado financiero de un pedido. Puede anotar y etiquetar, nada más.",
            "No modifica el tema ni el diseño de la tienda, ni edita sus páginas."
          ],
          "requirements": [
            {
              "name": "URL de tu tienda Shopify",
              "howToObtain": "Es tu subdominio de Shopify, sin protocolo ni barra final."
            },
            {
              "name": "Token de acceso de una app personalizada",
              "howToObtain": "Se genera en el panel de Shopify, en Apps → Develop apps → tu app → API credentials. Los permisos mínimos son lectura y escritura de productos, pedidos, clientes e inventario; para listar y crear cotizaciones también exige `read_draft_orders` y `write_draft_orders`."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/shopify"
        },
        "en": {
          "name": "Shopify",
          "category": "Run stores and orders",
          "summary": "Meteor connects to Shopify through its Admin API and gives your Met 17 tools to serve customers and sell: search products with your store's own syntax, see availability by variant, look up and annotate orders, create quotes with a payment link, create real orders built for cash on delivery, manage customers and adjust inventory by location. All it takes is the token of a custom app in your store.",
          "tools": [
            {
              "name": "shopify_list_products",
              "description": "Lists and searches products using Shopify syntax, with lightweight results."
            },
            {
              "name": "shopify_get_product",
              "description": "Returns a product with its identifier, handle, state, public URL, images, price range, and availability by variant. The normalized shape exposes priceRange.min and priceRange.max as Decimal strings plus priceRange.minCurrency and priceRange.maxCurrency."
            },
            {
              "name": "shopify_create_product",
              "description": "Creates a product. Active by default, or left as a draft if you prefer to review it."
            },
            {
              "name": "shopify_update_product",
              "description": "Updates title, status, description or tags on an existing product."
            },
            {
              "name": "shopify_delete_product",
              "description": "Deletes a product. Destructive, and it always asks for confirmation first."
            },
            {
              "name": "shopify_list_collections",
              "description": "Lists the catalog collections with their product count."
            },
            {
              "name": "shopify_list_orders",
              "description": "Lists orders by number, email, payment state, fulfillment state, or date. Results stay private and must be matched exactly before customer data is disclosed."
            },
            {
              "name": "shopify_get_order",
              "description": "Returns line items, addresses, totals, cancellation and aggregate return status, plus each fulfillment with the carrier, tracking number, and URL actually stored by Shopify."
            },
            {
              "name": "shopify_update_order",
              "description": "Annotates or tags an order. It does not change its financial status."
            },
            {
              "name": "shopify_list_draft_orders",
              "description": "Lists quotes and reconciles an ambiguous create by reference tag without writing again blindly."
            },
            {
              "name": "shopify_create_draft_order",
              "description": "Creates or recovers a confirmed quote and returns its checkout link. Requires `confirmar: true` and one unique reference per intent."
            },
            {
              "name": "shopify_create_order",
              "description": "Creates a real order built for cash on delivery, with payment pending."
            },
            {
              "name": "shopify_list_customers",
              "description": "Lists customers by email, tag, status or number of orders."
            },
            {
              "name": "shopify_get_customer",
              "description": "Returns a customer with their addresses, history and lifetime spend."
            },
            {
              "name": "shopify_create_customer",
              "description": "Creates a customer. Email is unique per store, so a duplicate is rejected."
            },
            {
              "name": "shopify_adjust_inventory",
              "description": "Adjusts stock for a variant at a specific location, as a relative change."
            },
            {
              "name": "shopify_fulfill_order",
              "description": "Registers a fulfillment and an existing tracking number; Shopify notifies the customer by default, and an already fulfilled order is not marked again."
            }
          ],
          "limitations": [
            "It does not process payments itself. It creates quotes with a payment link and pending orders, and the charge runs through your store's checkout.",
            "It does not promise the final total before checkout: the returned amount is the draft's current calculation and can change with taxes, allowed discounts or shipping shown by Shopify.",
            "It does not reserve inventory or set link expiration. A unique reference can find an ambiguous create, but it does not make `draftOrderCreate` idempotent.",
            "It does not create shipping labels, quote freight or operate a carrier. When your operation already has tracking, it can register it in Shopify and mark the order fulfilled.",
            "It does not issue refunds and it does not change the financial status of an order. It can annotate and tag, and nothing more.",
            "It does not modify the store theme or design, and it does not edit its pages."
          ],
          "requirements": [
            {
              "name": "Your Shopify store URL",
              "howToObtain": "It is your Shopify subdomain, with no protocol and no trailing slash."
            },
            {
              "name": "The access token of a custom app",
              "howToObtain": "Generated in the Shopify admin, under Apps, Develop apps, your app, API credentials. The minimum scopes are read and write on products, orders, customers and inventory; listing and creating quotes also requires `read_draft_orders` and `write_draft_orders`."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/shopify"
        }
      }
    },
    {
      "id": "siesa",
      "catalogStatus": "published",
      "toolCount": 20,
      "locales": {
        "es": {
          "name": "SIESA",
          "category": "Cobrar y administrar",
          "summary": "Meteor abre una ventana de solo lectura al ERP SIESA para que tu Met responda las preguntas que traban una venta: ¿hay stock?, ¿cuál es el precio para este cliente?, ¿está al día en cartera?, ¿le queda cupo de crédito?, ¿ya se despachó el pedido? Son 20 herramientas y ninguna escribe: el conector no crea pedidos, no registra pagos y no toca documentos contables.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "SIESA es un ERP colombiano. La integración se apoya en el catálogo local de ciudades y en la lógica de cartera por edades que usan las empresas del país.",
          "tools": [
            {
              "name": "siesa_consultar_conexion",
              "description": "Verifica que la conexión esté activa y reporta qué consultas expone esa instalación."
            },
            {
              "name": "siesa_consultar_companias",
              "description": "Lista las compañías disponibles cuando el cliente maneja varias."
            },
            {
              "name": "siesa_consultar_bodegas",
              "description": "Lista las bodegas y centros de operación de una compañía."
            },
            {
              "name": "siesa_buscar_items",
              "description": "Busca productos del catálogo por nombre o referencia y devuelve resultados ligeros."
            },
            {
              "name": "siesa_consultar_item",
              "description": "Devuelve el detalle completo de un producto por su referencia."
            },
            {
              "name": "siesa_consultar_inventario",
              "description": "Devuelve las existencias de un producto o de una bodega. Siempre en vivo, nunca cacheado."
            },
            {
              "name": "siesa_disponible_real",
              "description": "Existencia menos lo comprometido en pedidos pendientes. Evita prometer stock ya apartado."
            },
            {
              "name": "siesa_existencias_multibodega",
              "description": "Existencias de un producto en todas las bodegas en una sola consulta."
            },
            {
              "name": "siesa_consultar_lista_precios",
              "description": "Devuelve el precio de un producto según la lista que aplica a ese cliente."
            },
            {
              "name": "siesa_consultar_tercero",
              "description": "Ficha de un cliente o proveedor por su NIT o documento."
            },
            {
              "name": "siesa_buscar_terceros",
              "description": "Busca terceros por nombre o razón social."
            },
            {
              "name": "siesa_consultar_cartera",
              "description": "Cartera por edades de un tercero: cuánto debe y desde cuándo."
            },
            {
              "name": "siesa_movimientos_cartera",
              "description": "Detalle de la cartera: qué facturas la componen, qué abonos hay y cuáles están vencidas."
            },
            {
              "name": "siesa_vencimientos",
              "description": "Cuotas y facturas por vencer dentro de un horizonte de días, para recordatorios de pago."
            },
            {
              "name": "siesa_cupo_credito",
              "description": "Cupo asignado, disponible y si está bloqueado por cartera vencida."
            },
            {
              "name": "siesa_consultar_documento",
              "description": "Detalle de una factura, pedido o remisión por su número y tipo."
            },
            {
              "name": "siesa_listar_documentos",
              "description": "Lista los documentos de un tercero o de un rango de fechas."
            },
            {
              "name": "siesa_consultar_kardex",
              "description": "Movimientos de inventario de un producto en un rango de fechas."
            },
            {
              "name": "siesa_estado_pedido",
              "description": "Dice si un pedido está pendiente, despachado, facturado o con faltantes."
            },
            {
              "name": "siesa_sucursales_tercero",
              "description": "Direcciones y sucursales de despacho registradas para un cliente."
            }
          ],
          "limitations": [
            "No escribe absolutamente nada en el ERP. No crea pedidos, no registra pagos y no toca documentos contables. Es una decisión de diseño, no una limitación temporal.",
            "No todas las instalaciones exponen las mismas consultas. Si la del cliente no expone cartera, ese cliente no puede usar Mets de cobranza, y la herramienta de conexión lo dice de frente.",
            "No cachea los datos sensibles. Inventario, cartera y cupo se consultan en vivo cada vez, así que la respuesta depende de que el ERP esté disponible.",
            "No funciona sin un trabajo técnico previo con el área de sistemas del cliente. Si el SIESA es local, hay que resolver acceso de red antes."
          ],
          "requirements": [
            {
              "name": "Modalidad del servicio (nube o local)",
              "howToObtain": "Lo confirma el administrador del ERP. Si es local, hay que resolver además el acceso de red con VPN, túnel o lista de IP permitidas."
            },
            {
              "name": "URL del servicio, código de compañía y número de conexión",
              "howToObtain": "Los entrega el administrador del ERP del cliente. Si maneja varias compañías, hay que confirmar cuál se va a consultar."
            },
            {
              "name": "Usuario y clave del servicio SIESA",
              "howToObtain": "Los crea el administrador del ERP, no el usuario final. Se guardan cifrados por espacio de trabajo y sin ellos cada consulta responde \"no configurado\"."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/siesa"
        },
        "en": {
          "name": "SIESA",
          "category": "Collect and manage",
          "summary": "Meteor opens a read only window into the SIESA ERP so your Met can answer the questions that stall a sale: is there stock, what is the price for this customer, are they current on payments, do they have credit left, has the order shipped. That is 20 tools and none of them writes. The connector creates no orders, registers no payments and touches no accounting documents.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "SIESA is a Colombian ERP. The integration leans on the local city catalog and on the aged receivables logic that companies in the country actually use.",
          "tools": [
            {
              "name": "siesa_consultar_conexion",
              "description": "Verifies the connection is live and reports which queries that installation exposes."
            },
            {
              "name": "siesa_consultar_companias",
              "description": "Lists the companies available when the customer runs more than one."
            },
            {
              "name": "siesa_consultar_bodegas",
              "description": "Lists the warehouses and operating centers of a company."
            },
            {
              "name": "siesa_buscar_items",
              "description": "Searches catalog products by name or SKU and returns lightweight results."
            },
            {
              "name": "siesa_consultar_item",
              "description": "Returns the full detail of a product by its SKU."
            },
            {
              "name": "siesa_consultar_inventario",
              "description": "Returns stock for a product or a warehouse. Always live, never cached."
            },
            {
              "name": "siesa_disponible_real",
              "description": "Stock minus what is committed on open orders. Keeps you from promising units already spoken for."
            },
            {
              "name": "siesa_existencias_multibodega",
              "description": "Stock for a product across every warehouse in a single query."
            },
            {
              "name": "siesa_consultar_lista_precios",
              "description": "Returns the price of a product on the price list that applies to that customer."
            },
            {
              "name": "siesa_consultar_tercero",
              "description": "The record of a customer or supplier by their tax ID or document number."
            },
            {
              "name": "siesa_buscar_terceros",
              "description": "Searches parties by name or legal name."
            },
            {
              "name": "siesa_consultar_cartera",
              "description": "Aged receivables for a party: how much they owe and since when."
            },
            {
              "name": "siesa_movimientos_cartera",
              "description": "Receivables detail: which invoices make it up, which payments landed and which are overdue."
            },
            {
              "name": "siesa_vencimientos",
              "description": "Installments and invoices coming due within a horizon of days, for payment reminders."
            },
            {
              "name": "siesa_cupo_credito",
              "description": "Credit limit assigned, credit available, and whether it is blocked by overdue balance."
            },
            {
              "name": "siesa_consultar_documento",
              "description": "The detail of an invoice, order or delivery note by number and type."
            },
            {
              "name": "siesa_listar_documentos",
              "description": "Lists the documents of a party or of a date range."
            },
            {
              "name": "siesa_consultar_kardex",
              "description": "Inventory movements for a product across a date range."
            },
            {
              "name": "siesa_estado_pedido",
              "description": "Says whether an order is open, shipped, invoiced or short."
            },
            {
              "name": "siesa_sucursales_tercero",
              "description": "Shipping addresses and branches on file for a customer."
            }
          ],
          "limitations": [
            "It writes absolutely nothing to the ERP. It creates no orders, registers no payments and touches no accounting documents. That is a design decision, not a temporary limitation.",
            "Not every installation exposes the same queries. If a customer's installation does not expose receivables, that customer cannot run collections Mets, and the connection tool says so up front.",
            "It does not cache the sensitive data. Inventory, receivables and credit limit are queried live every time, so the answer depends on the ERP being reachable.",
            "It does not work without prior technical work with the customer's IT team. If SIESA runs on premises, network access has to be sorted out first."
          ],
          "requirements": [
            {
              "name": "Service mode (cloud or on premises)",
              "howToObtain": "The ERP administrator confirms it. On premises also means sorting out network access with a VPN, a tunnel or an IP allowlist."
            },
            {
              "name": "Service URL, company code and connection number",
              "howToObtain": "The customer's ERP administrator provides them. If they run several companies, confirm which one you are querying."
            },
            {
              "name": "SIESA service username and password",
              "howToObtain": "Created by the ERP administrator, not by the end user. They are stored encrypted per workspace, and without them every query answers \"not configured\"."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/siesa"
        }
      }
    },
    {
      "id": "siigo",
      "catalogStatus": "published",
      "toolCount": 12,
      "locales": {
        "es": {
          "name": "Siigo",
          "category": "Cobrar y administrar",
          "summary": "Meteor se conecta con Siigo Nube a través de su API oficial y le da a tu Met 12 herramientas para atender el frente comercial desde una conversación: buscar y crear terceros por NIT, cédula o RFC, consultar productos con sus precios por lista y su disponibilidad por bodega, crear cotizaciones que devuelven un link público para pegarle al cliente en el chat, listar las ya enviadas, abrir facturas con su total, su saldo y su estado de timbrado, y resolver los catálogos que Siigo exige para facturar. La factura, la nota crédito, el comprobante contable y el recibo de caja siguen siendo del operador por web: el conector rechaza esas cuatro herramientas cuando quien las pide es un Met de canal. Cotizaciones, notas crédito y comprobantes contables existen solo en Siigo Colombia; las credenciales las generas tú.",
          "markets": [
            "Colombia",
            "México"
          ],
          "marketNote": "La misma integración sirve en los dos países cambiando la credencial: Colombia identifica la aplicación con el encabezado Partner-Id y México con SiigoAPI-Application-Id.",
          "tools": [
            {
              "name": "siigo_buscar_cliente",
              "description": "Busca un cliente, proveedor o tercero por NIT, cédula o RFC, con su sucursal y su estado."
            },
            {
              "name": "siigo_crear_cliente",
              "description": "Registra un tercero nuevo cuando la búsqueda no lo encuentra, con su tipo de documento y su ciudad."
            },
            {
              "name": "siigo_consultar_producto",
              "description": "Busca productos por código o nombre y devuelve impuestos, precios por lista y disponibilidad por bodega."
            },
            {
              "name": "siigo_crear_factura",
              "description": "Crea una factura de venta solo después de la aprobación del operador, con documento_id explícito, vendedor, ítems y pagos verificados. Los switches fiscales y de correo aceptan solo booleanos literales; no hay selección automática del documento."
            },
            {
              "name": "siigo_listar_facturas",
              "description": "Lista facturas por cliente, tipo de documento o rango de fechas, con total, saldo y estado."
            },
            {
              "name": "siigo_consultar_factura",
              "description": "Devuelve el detalle de una factura con sus ítems, sus pagos y el estado fiscal. El PDF se consulta en Siigo Nube porque esta herramienta no llama al endpoint que lo descarga."
            },
            {
              "name": "siigo_crear_cotizacion",
              "description": "Crea una cotización y devuelve el link público de Siigo, que es lo que se le pega al cliente en el chat."
            },
            {
              "name": "siigo_listar_cotizaciones",
              "description": "Lista las cotizaciones por cliente, nombre o fecha de creación, cada una con su enlace público para reenviar."
            },
            {
              "name": "siigo_crear_nota_credito",
              "description": "Emite la nota crédito que devuelve, anula o rebaja una factura electrónica, con su motivo en códigos DIAN."
            },
            {
              "name": "siigo_crear_comprobante_contable",
              "description": "Registra un asiento contable manual con sus líneas de débito y crédito, que tienen que sumar lo mismo."
            },
            {
              "name": "siigo_crear_recibo",
              "description": "Registra un recibo de caja contra las cuotas de una factura, un anticipo u otro ingreso."
            },
            {
              "name": "siigo_listar_catalogo",
              "description": "Devuelve los catálogos con los que se arma una factura: documentos, formas de pago, impuestos, bodegas, listas, vendedores."
            }
          ],
          "limitations": [
            "No emite facturas, notas crédito, comprobantes contables ni recibos desde un Met de canal. No es una opción que se pueda activar: el conector rechaza esas cuatro herramientas cuando la petición llega por WhatsApp, Instagram o Messenger, porque las cuatro se timbran o escriben en el libro mayor. La cotización sí sale por canal, y esa es la línea: no se timbra.",
            "No envía la factura a la autoridad fiscal por su cuenta. El envío a la DIAN en Colombia y el timbrado CFDI en México son un parámetro aparte que viene apagado, y hay que pedirlo.",
            "No sirve para Aspel SAE, COI ni NOI. Esta API es la de Siigo Nube; los programas de escritorio de Aspel no tienen esta interfaz, así que conectarlos pasa antes por migrar a la nube.",
            "No registra recibos de caja en México. Allí ese documento es la recepción de pago del SAT y tiene otra estructura, así que el conector rechaza la operación en vez de registrar otra cosa.",
            "No inventa la disponibilidad. Un producto devuelve cantidad solo si la cuenta lleva control de inventario sobre él; un servicio no trae stock, y eso no es lo mismo que estar agotado.",
            "No cotiza, no emite notas crédito ni registra comprobantes contables en México. Esos tres recursos existen solo en la API de Siigo Colombia: con una cuenta mexicana el conector los rechaza antes de salir a la red, en vez de pegarle a un endpoint que no existe.",
            "No hace cierres contables, no genera balances ni presenta declaraciones. Es una ventana operativa a Siigo, no un criterio contable, y eso no va a cambiar."
          ],
          "requirements": [
            {
              "name": "Usuario y clave de acceso de la API de Siigo",
              "howToObtain": "En Siigo Nube, en Configuración → Alianzas e integraciones → «Credenciales de integración a plataformas digitales (Siigo API)» → Añadir aplicación. Solo el rol administrador puede generarlas, y cada empresa admite hasta cinco aplicaciones."
            },
            {
              "name": "El identificador de la aplicación registrada",
              "howToObtain": "Siigo lo entrega en esa misma pantalla al añadir la aplicación. En Colombia viaja como Partner-Id y en México como SiigoAPI-Application-Id; sin él, Siigo rechaza la autenticación."
            },
            {
              "name": "El país de la cuenta",
              "howToObtain": "Se declara al configurar la integración. Colombia y México son dos APIs distintas, con distinta dirección y distinto encabezado, y una credencial no funciona en la otra."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/siigo"
        },
        "en": {
          "name": "Siigo",
          "category": "Collect and manage",
          "summary": "Meteor connects to Siigo Nube through its official API and gives your Met 12 tools to run the commercial side of your books from a live conversation: find and create parties by tax ID, look up products with their price lists and availability by warehouse, create quotes that come back with a public link you can paste into the chat, list the ones already sent, open invoices with their total, balance and filing status, and resolve the catalogs Siigo requires in order to invoice. The invoice, the credit note, the accounting voucher and the cash receipt stay with the operator on the web: the connector refuses those four tools when the request comes from a channel Met. Quotes, credit notes and vouchers exist only in Siigo Colombia, and you generate the credentials yourself from your own account.",
          "markets": [
            "Colombia",
            "Mexico"
          ],
          "marketNote": "The same integration serves both countries by swapping one credential: Colombia identifies the registered app with the Partner-Id header and Mexico with SiigoAPI-Application-Id.",
          "tools": [
            {
              "name": "siigo_buscar_cliente",
              "description": "Finds a customer, supplier or party by tax ID, with their branch and status."
            },
            {
              "name": "siigo_crear_cliente",
              "description": "Registers a new party when the search comes up empty, with document type and city."
            },
            {
              "name": "siigo_consultar_producto",
              "description": "Finds products by code or name and returns taxes, price lists and availability by warehouse."
            },
            {
              "name": "siigo_crear_factura",
              "description": "Creates a sales invoice only after operator approval, with an explicit documento_id and verified sales rep, items, and payments. Filing and email switches accept literal booleans only; the tool never selects a document automatically."
            },
            {
              "name": "siigo_listar_facturas",
              "description": "Lists invoices by customer, document type or date range, with total, balance and status."
            },
            {
              "name": "siigo_consultar_factura",
              "description": "Returns invoice items, payments and filing status. The PDF stays in Siigo Nube because this tool does not call the download endpoint."
            },
            {
              "name": "siigo_crear_cotizacion",
              "description": "Creates a quote and returns the public Siigo link, which is what you paste to the customer in the chat."
            },
            {
              "name": "siigo_listar_cotizaciones",
              "description": "Lists quotes by customer, name or creation date, each one with the public link you can resend."
            },
            {
              "name": "siigo_crear_nota_credito",
              "description": "Issues the credit note that refunds, voids or reduces an electronic invoice, with its DIAN reason code."
            },
            {
              "name": "siigo_crear_comprobante_contable",
              "description": "Records a manual accounting entry with its debit and credit lines, which have to add up to the same figure."
            },
            {
              "name": "siigo_crear_recibo",
              "description": "Records a cash receipt against invoice installments, a customer advance or other income."
            },
            {
              "name": "siigo_listar_catalogo",
              "description": "Returns the catalogs an invoice is built from: document types, payment methods, taxes, warehouses, price lists, reps."
            }
          ],
          "limitations": [
            "It does not issue invoices, credit notes, accounting vouchers or receipts from a channel Met. This is not a setting you can flip: the connector refuses those four tools when the request arrives over WhatsApp, Instagram or Messenger, because all four are either stamped or written into the ledger. A quote does go through a channel, and that is the line: it is never stamped.",
            "It does not file the invoice with the tax authority on its own. Filing in Colombia and CFDI stamping in Mexico are a separate flag that ships switched off, and you have to ask for it.",
            "It does not work with Aspel SAE, COI or NOI. This API belongs to Siigo Nube; the Aspel desktop products do not expose it, so connecting them means moving to the cloud first.",
            "It does not record cash receipts in Mexico. There that document is the SAT payment receipt and it has a different structure, so the connector refuses rather than record something else.",
            "It does not invent availability. A product returns a quantity only when the account tracks inventory for it; a service returns none, and that is not the same as being out of stock.",
            "It does not quote, issue credit notes or record accounting vouchers in Mexico. Those three resources exist only in the Siigo Colombia API: on a Mexican account the connector turns them down before any request leaves, rather than calling an endpoint that is not there.",
            "It does not close books, produce financial statements or file returns. It is an operating window into Siigo, not accounting judgment, and that part is not going to change."
          ],
          "requirements": [
            {
              "name": "A Siigo API username and access key",
              "howToObtain": "In Siigo Nube, under Settings, Partners and integrations, \"Integration credentials for digital platforms (Siigo API)\", Add application. Only the administrator role can create them, and each company is capped at five applications."
            },
            {
              "name": "The identifier of the registered application",
              "howToObtain": "Siigo hands it to you on that same screen when you add the application. Colombia sends it as Partner-Id and Mexico as SiigoAPI-Application-Id. Without it, Siigo rejects the login."
            },
            {
              "name": "The country of the account",
              "howToObtain": "You declare it when configuring the integration. Colombia and Mexico are two separate APIs, with a different host and a different header, and one credential does not work on the other."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/siigo"
        }
      }
    },
    {
      "id": "skydropx",
      "catalogStatus": "published",
      "toolCount": 15,
      "reviewedAt": "2026-08-14",
      "locales": {
        "es": {
          "name": "Skydropx PRO",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con Skydropx PRO, que es un agregador de paquetería y no una transportadora: con una sola cuenta es el cotizador de envíos de veinte transportadoras en Colombia, México y Chile. Le pides la ruta y recibe en un solo llamado todas las que la sirven, ordenadas de menor a mayor precio; con la tarifa que elija una persona crea la guía, devuelve el número de tracking y la etiqueta, comprueba si la transportadora pasa a recoger en esa dirección y agenda la visita, busca los puntos de retiro cercanos y explica los cargos extra que aparecen en la factura. Son 15 herramientas, nombradas por operación y no por transportadora: cuál sirve esa ruta y a qué precio es justo lo que le estás preguntando al agregador. Cubre cuatro de las cinco etapas logísticas y es el único conector del catálogo que agenda recolección. Nunca elige la tarifa por ti ni contesta «la más barata».",
          "markets": [
            "Colombia",
            "México",
            "Chile"
          ],
          "marketNote": "El país es un dato, no un conector distinto: la misma API atiende a los tres. Lo que sí cambia por cuenta es el host de producción y qué transportadoras tiene habilitadas ese cliente, así que la lista real de una ruta sale de la cotización y no del catálogo de referencia.",
          "tools": [
            {
              "name": "skydropx_consultar_conexion",
              "description": "Verifica contra el servidor que las credenciales funcionen e informa ambiente, host y país configurados."
            },
            {
              "name": "skydropx_cotizar_envio",
              "description": "Cotiza la ruta con todas las transportadoras que la sirven, con varios bultos y valor declarado, y devuelve la lista ordenada de menor a mayor precio. Si lo pides, también las tarifas que la transportadora rechazó, con su motivo."
            },
            {
              "name": "skydropx_consultar_cobertura",
              "description": "Responde si hay envío hasta un destino y con qué transportadoras, cotizando un paquete mínimo y sin mostrar precios."
            },
            {
              "name": "skydropx_listar_transportadoras",
              "description": "Lista las transportadoras: las reales de una ruta si le das origen y destino, o el catálogo de referencia del país si no."
            },
            {
              "name": "skydropx_crear_envio",
              "description": "Crea la guía a partir de una tarifa ya cotizada y devuelve el número de tracking y la dirección de la etiqueta."
            },
            {
              "name": "skydropx_cancelar_envio",
              "description": "Solicita la cancelación de una guía ya creada, que después aprueba o rechaza la transportadora."
            },
            {
              "name": "skydropx_consultar_envio",
              "description": "Ficha de un envío por su identificador interno: estado, transportadora, número de rastreo y etiqueta."
            },
            {
              "name": "skydropx_rastrear_envio",
              "description": "Rastrea por número de guía y transportadora, y dice de qué fuente salió el estado que devuelve."
            },
            {
              "name": "skydropx_listar_envios",
              "description": "Lista los envíos de la cuenta paginados, hasta veinte por página, para encontrar uno del que solo se recuerda la fecha."
            },
            {
              "name": "skydropx_obtener_etiqueta",
              "description": "Devuelve la dirección de la etiqueta imprimible de un envío, nunca el archivo ni su contenido codificado."
            },
            {
              "name": "skydropx_buscar_puntos_de_retiro",
              "description": "Busca puntos de retiro y oficinas de las transportadoras, con su dirección, su ciudad, su horario y a qué transportadora pertenece cada uno."
            },
            {
              "name": "skydropx_consultar_cobertura_recoleccion",
              "description": "Responde si la transportadora pasa a recoger en una dirección, que no es la misma pregunta que si llega a un destino. Cuando la respuesta no permite saberlo, devuelve desconocido."
            },
            {
              "name": "skydropx_consultar_cargos_extra",
              "description": "Lista los cargos extra que Skydropx le facturó a la cuenta: reexpediciones, diferencias de peso o de medidas, devoluciones y zonas extendidas, con su concepto y su monto."
            },
            {
              "name": "skydropx_agendar_recoleccion",
              "description": "Agenda que la transportadora pase a recoger varios envíos en una fecha y, si quieres, dentro de una franja horaria. La respuesta dice si se aceptó. Exige confirmación de una persona."
            },
            {
              "name": "skydropx_consultar_saldo",
              "description": "Consulta el saldo y los créditos de la cuenta, que es lo que se gasta cada vez que se crea una guía."
            }
          ],
          "limitations": [
            "No elige la tarifa. Devuelve la lista completa ordenada por precio y la decisión queda en quien tiene el contexto: nunca contesta «la más barata» ni descarta opciones por su cuenta.",
            "No enlaza tu convenio propio con una transportadora. Ese paso es humano y se hace una sola vez en el panel de Skydropx, en «Conexiones → Paqueterías»: no hay ningún endpoint para crearlo desde Meteor, así que tampoco lo hay desde tu Met.",
            "No afirma que una tarifa sea la tuya cuando no lo sabe. Si la respuesta no trae con qué distinguirlo, la marca queda en «desconocido» y no en «no»: inventar un «no» sería negar tu convenio sin tener el dato para negarlo.",
            "No avisa por su cuenta cuando un envío cambia de estado. Skydropx tiene webhooks, pero la firma con la que los envía no está documentada y no se declararon a propósito: un verificador inventado es peor que no tener webhooks.",
            "No trae respuestas confirmadas contra una cuenta real. El sandbox de Skydropx exige un registro que hay que hacer a mano, así que las rutas están verificadas por sondeo y la forma exacta de cada respuesta no lo está.",
            "No cancela un envío por su cuenta. Solicita la cancelación y la aprueba o la rechaza la transportadora, que puede negarla si el paquete ya se recogió.",
            "No reemplaza a los conectores directos con una transportadora. Chilexpress y TCC tienen el suyo, con lo que su propia API expone de más; aquí aparecen como una opción más de la lista.",
            "No cubre la quinta etapa. Cotiza, despacha, comprueba la recolección, agenda la visita y rastrea, pero la entrega la hace la transportadora y las novedades del reparto se resuelven con ella, no desde aquí.",
            "No suma ni recalcula los cargos extra. Los informa tal como Skydropx los facturó, con su concepto y su monto: un total recalculado por el conector no cuadraría con la factura, y la factura es contra lo que se reclama."
          ],
          "requirements": [
            {
              "name": "Client ID y Client Secret de Skydropx PRO",
              "howToObtain": "Los copias de tu panel de Skydropx PRO, en «Conexiones → API». Es autoservicio: no hay que pedirlos por soporte ni esperar a que alguien habilite la cuenta."
            },
            {
              "name": "Ambiente de pruebas o de producción",
              "howToObtain": "Arranca en pruebas, que es gratis y no consume saldo. Producción se pide explícitamente, y las credenciales de un ambiente no funcionan en el otro."
            },
            {
              "name": "País de la cuenta",
              "howToObtain": "Colombia, México o Chile. Es el país por defecto de las direcciones y el que filtra el catálogo de transportadoras de referencia. Se configura una sola vez."
            },
            {
              "name": "Host de producción, si tu cuenta no está en el dominio principal",
              "howToObtain": "Algunas cuentas colombianas viven en un host propio de Skydropx. El contrato de la API es idéntico, así que basta con escribir ese host en la configuración del conector."
            },
            {
              "name": "Código postal de origen y la marca de convenio propio (opcionales)",
              "howToObtain": "El código postal desde el que despachas evita repetirlo en cada cotización. La marca de convenio propio hace que la respuesta avise cuando ninguna tarifa negociada aparece."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/skydropx"
        },
        "en": {
          "name": "Skydropx PRO",
          "category": "Run stores and orders",
          "summary": "Meteor connects to Skydropx PRO, which is a parcel aggregator and not a carrier: with a single account your Met quotes across twenty carriers in Colombia, Mexico and Chile. You give it the route and it gets back, in one call, every carrier that serves it, sorted from cheapest to most expensive; once a person picks a rate it creates the label, returns the tracking number and the label address, checks whether the carrier will collect at that address and books the visit, finds nearby pickup points and explains the extra charges that show up on the invoice. There are 15 tools, named by operation and not by carrier: which one serves that route and at what price is exactly what you are asking the aggregator. It covers four of the five logistics stages and it is the only connector in the catalog that schedules a pickup. It never picks the rate for you and never answers \"the cheapest one\".",
          "markets": [
            "Colombia",
            "Mexico",
            "Chile"
          ],
          "marketNote": "Country is data here, not a separate connector: the same API serves all three. What does change per account is the production host and which carriers that customer has enabled, so the real list for a route comes from the quote and not from the reference catalog.",
          "tools": [
            {
              "name": "skydropx_consultar_conexion",
              "description": "Checks against the server that the credentials work and reports environment, host and configured country."
            },
            {
              "name": "skydropx_cotizar_envio",
              "description": "Quotes the route with every carrier that serves it, with several parcels and a declared value, and returns the list sorted from cheapest to most expensive. Ask for it and you also get the rates the carrier rejected, with the reason."
            },
            {
              "name": "skydropx_consultar_cobertura",
              "description": "Says whether there is delivery to a destination and with which carriers, by quoting a minimal parcel and hiding prices."
            },
            {
              "name": "skydropx_listar_transportadoras",
              "description": "Lists carriers: the real ones for a route if you give origin and destination, or the country reference catalog if you do not."
            },
            {
              "name": "skydropx_crear_envio",
              "description": "Creates the label from a rate that was already quoted and returns the tracking number and the label address."
            },
            {
              "name": "skydropx_cancelar_envio",
              "description": "Requests cancellation of a label that already exists, which the carrier then approves or rejects."
            },
            {
              "name": "skydropx_consultar_envio",
              "description": "Record of one shipment by its internal id: status, carrier, tracking number and label."
            },
            {
              "name": "skydropx_rastrear_envio",
              "description": "Tracks by tracking number and carrier, and says which source the status it returns came from."
            },
            {
              "name": "skydropx_listar_envios",
              "description": "Lists the account shipments in pages of up to twenty, to find one you only remember the date of."
            },
            {
              "name": "skydropx_obtener_etiqueta",
              "description": "Returns the address of the printable label of a shipment, never the file itself or its encoded contents."
            },
            {
              "name": "skydropx_buscar_puntos_de_retiro",
              "description": "Finds carrier pickup points and offices, with their address, city, opening hours and which carrier each one belongs to."
            },
            {
              "name": "skydropx_consultar_cobertura_recoleccion",
              "description": "Says whether the carrier will come and collect at an address, which is not the same question as whether they deliver to a destination. When the answer cannot tell, it returns unknown."
            },
            {
              "name": "skydropx_consultar_cargos_extra",
              "description": "Lists the extra charges Skydropx billed to the account: reroutes, weight or size differences, returns and extended zones, with concept and amount."
            },
            {
              "name": "skydropx_agendar_recoleccion",
              "description": "Books the carrier to come and collect several shipments on a date and, if you want, inside a time window. The answer says whether it was accepted. It requires a person to confirm."
            },
            {
              "name": "skydropx_consultar_saldo",
              "description": "Checks the balance and credits of the account, which is what gets spent every time a label is created."
            }
          ],
          "limitations": [
            "It does not pick the rate. It returns the full list sorted by price and the decision stays with whoever has the context: it never answers \"the cheapest one\" or drops options by itself.",
            "It does not link your own carrier contract. That step is human and happens once in the Skydropx panel, under \"Connections, Carriers\": there is no endpoint to create it from Meteor, so there is none from your Met either.",
            "It does not claim a rate is yours when it cannot tell. If the response carries nothing to distinguish it, the flag stays at \"unknown\" and not at \"no\": inventing a \"no\" would deny your contract without the data to deny it.",
            "It does not notify you on its own when a shipment changes status. Skydropx does have webhooks, but the signature it sends them with is undocumented and they were left undeclared on purpose: an invented verifier is worse than no webhooks at all.",
            "It does not bring responses confirmed against a real account. The Skydropx sandbox requires a signup that has to be done by hand, so the routes are verified by probing and the exact shape of each response is not.",
            "It does not cancel a shipment by itself. It requests the cancellation and the carrier approves or rejects it, and it can be refused once the parcel has been collected.",
            "It does not replace the direct connectors to a single carrier. Chilexpress and TCC have their own, with whatever their API exposes beyond this; here they show up as one more option.",
            "It does not cover the fifth stage. It quotes, ships, checks the pickup, books the visit and tracks, but delivery belongs to the carrier and any incident on the road is settled with them, not from here.",
            "It does not add up or recalculate the extra charges. It reports them exactly as Skydropx billed them, with concept and amount: a total recalculated by the connector would not match the invoice, and the invoice is what you dispute."
          ],
          "requirements": [
            {
              "name": "A Skydropx PRO Client ID and Client Secret",
              "howToObtain": "You copy them from your Skydropx PRO panel, under \"Connections, API\". It is self service: no support request and no waiting for someone to enable the account."
            },
            {
              "name": "A test or production environment",
              "howToObtain": "It starts in test, which is free and spends no balance. Production is requested explicitly, and credentials from one environment do not work in the other."
            },
            {
              "name": "The country of the account",
              "howToObtain": "Colombia, Mexico or Chile. It is the default country of the addresses and the one that filters the reference carrier catalog. It is configured once."
            },
            {
              "name": "A production host, if your account is not on the main domain",
              "howToObtain": "Some Colombian accounts live on a Skydropx host of their own. The API contract is identical, so writing that host into the connector configuration is enough."
            },
            {
              "name": "Origin postal code and the own contract flag (both optional)",
              "howToObtain": "The postal code you ship from saves repeating it on every quote. The own contract flag makes the response warn you when no negotiated rate shows up."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/skydropx"
        }
      }
    },
    {
      "id": "snies",
      "catalogStatus": "published",
      "toolCount": 5,
      "locales": {
        "es": {
          "name": "SNIES",
          "category": "Investigar y analizar",
          "summary": "Meteor consulta el SNIES, el sistema de información de educación superior del Ministerio de Educación de Colombia, para que tu agente de IA responda con cifras oficiales: matrícula por año, institución, departamento, nivel, sector y género; el catálogo de programas académicos con su modalidad y su acreditación; y las bases consolidadas de docentes y de matrícula reciente. Son datos abiertos y no requieren credenciales.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Es la fuente oficial del Ministerio de Educación. La matrícula de la API viva cubre de 2015 a 2021 y las bases consolidadas agregan docentes y matrícula de 2024.",
          "tools": [
            {
              "name": "snies_resumen",
              "description": "Panorama nacional de un año con total, sector, género, nivel y los diez primeros departamentos e instituciones."
            },
            {
              "name": "snies_consultar",
              "description": "Consulta la matrícula agregada por la dimensión que elijas, con filtros y porcentaje del total."
            },
            {
              "name": "snies_programas",
              "description": "Consulta el catálogo de programas, ya sea listándolos o agrupándolos por una dimensión."
            },
            {
              "name": "snies_bases",
              "description": "Consulta las bases consolidadas con las variables que la API viva no expone, como docentes."
            },
            {
              "name": "snies_buscar_ies",
              "description": "Busca instituciones por nombre y devuelve su código, sector, departamento y matrícula."
            }
          ],
          "limitations": [
            "No cubre todos los años en todas las variables. La API viva llega hasta 2021 en matrícula, y lo que falta está en las bases consolidadas, que es una consulta aparte.",
            "No trae datos de estudiantes individuales. Toda la información es agregada.",
            "No cubre educación básica ni media, ni formación para el trabajo. Es educación superior.",
            "No mide resultados laborales ni salarios de egresados. Esa es otra fuente del propio Ministerio."
          ],
          "requirements": [
            {
              "name": "Nada. Son datos abiertos",
              "howToObtain": "La consulta va contra la fuente pública del Ministerio de Educación. No hay que crear cuenta ni configurar credenciales."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/snies"
        },
        "en": {
          "name": "SNIES",
          "category": "Research and analyze",
          "summary": "Meteor queries SNIES, the higher education information system of Colombia's Ministry of Education, so your Met answers with official figures: enrollment by year, institution, department, level, sector and gender; the catalog of academic programs with their format and accreditation; and the consolidated datasets for faculty and recent enrollment. This is open data and it needs no credentials.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "This is the official source from the Ministry of Education. Live API enrollment covers 2015 to 2021, and the consolidated datasets add faculty and 2024 enrollment.",
          "tools": [
            {
              "name": "snies_resumen",
              "description": "National picture for a year with total, sector, gender, level and the top ten departments and institutions."
            },
            {
              "name": "snies_consultar",
              "description": "Queries aggregate enrollment by the dimension you choose, with filters and share of total."
            },
            {
              "name": "snies_programas",
              "description": "Queries the program catalog, either listing programs or grouping them by a dimension."
            },
            {
              "name": "snies_bases",
              "description": "Queries the consolidated datasets for variables the live API does not expose, such as faculty."
            },
            {
              "name": "snies_buscar_ies",
              "description": "Finds institutions by name and returns their code, sector, department and enrollment."
            }
          ],
          "limitations": [
            "It does not cover every year across every variable. The live API reaches 2021 on enrollment, and what is missing sits in the consolidated datasets, which are a separate query.",
            "It does not return individual student records. Everything is aggregate.",
            "It does not cover primary, secondary or vocational training. The scope is higher education.",
            "It does not measure employment outcomes or graduate salaries. That is a different source from the same Ministry."
          ],
          "requirements": [
            {
              "name": "Nothing. This is open data",
              "howToObtain": "The query runs against the public source of the Ministry of Education. There is no account to create and no credential to configure."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/snies"
        }
      }
    },
    {
      "id": "softix",
      "catalogStatus": "published",
      "toolCount": 8,
      "locales": {
        "es": {
          "name": "Softix",
          "category": "Vender y atender",
          "summary": "Meteor se conecta con Softix, la agenda clínica de ópticas, y le da a tu agente de IA 8 herramientas para agendar sin intervención humana: calcular los horarios realmente libres cruzando la agenda ocupada con el horario de atención y los optometristas de cada sede, crear la cita, cancelarla, reagendarla y registrar al paciente si es nuevo. Necesitas el usuario de tu cuenta de Softix y la configuración de horarios por sede.",
          "tools": [
            {
              "name": "softix_get_availability",
              "description": "Calcula los horarios libres de una fecha y sede cruzando la agenda ocupada con el horario base."
            },
            {
              "name": "softix_get_appointments",
              "description": "Lista las citas ya agendadas de una fecha, que es de donde sale la agenda ocupada."
            },
            {
              "name": "softix_create_appointment",
              "description": "Crea la cita con fecha, hora, sucursal y tipo de examen, y devuelve su identificador."
            },
            {
              "name": "softix_cancel_appointment",
              "description": "Cancela una cita existente por su identificador, confirmando antes con el paciente."
            },
            {
              "name": "softix_reschedule_appointment",
              "description": "Mueve una cita a otra fecha, hora, sucursal u optometrista."
            },
            {
              "name": "softix_get_customer",
              "description": "Busca un paciente por su documento, para saber si ya existe antes de crear la cita."
            },
            {
              "name": "softix_create_customer",
              "description": "Registra un paciente nuevo con documento, nombre, apellido y celular."
            },
            {
              "name": "softix_get_user",
              "description": "Consulta un optometrista por su identificador y devuelve su rol."
            }
          ],
          "limitations": [
            "No calcula disponibilidad sin la configuración de horarios por sede. Softix expone la agenda ocupada, no los horarios de atención: sin declararlos, la herramienta de huecos libres no opera.",
            "No accede a la historia clínica ni a resultados de exámenes.",
            "No cobra ni factura la consulta. Para eso está la integración de facturación.",
            "No lista los optometristas de la óptica. La API solo permite consultarlos de a uno por su identificador."
          ],
          "requirements": [
            {
              "name": "Usuario y contraseña de la cuenta Softix",
              "howToObtain": "Son los mismos del inicio de sesión de la plataforma. El token se obtiene y se renueva solo en cada uso, así que no hay que configurarlo aparte."
            },
            {
              "name": "Configuración de horarios y optometristas por sede",
              "howToObtain": "Se declara una vez con la duración del turno, las sedes, sus profesionales y el horario de atención por día. Es lo que permite calcular huecos libres en vez de solo listar lo ocupado."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/softix"
        },
        "en": {
          "name": "Softix",
          "category": "Sell and serve",
          "summary": "Meteor connects to Softix, the clinical calendar used by optical practices, and gives your Met 8 tools to book with no human in the middle: work out the genuinely open times by crossing the booked calendar with the opening hours and the optometrists at each location, create the appointment, cancel it, move it and register the patient when they are new. You need your Softix account user and the per location schedule configuration.",
          "tools": [
            {
              "name": "softix_get_availability",
              "description": "Works out the open times for a date and location by crossing the booked calendar with the base schedule."
            },
            {
              "name": "softix_get_appointments",
              "description": "Lists the appointments already booked for a date, which is where the busy calendar comes from."
            },
            {
              "name": "softix_create_appointment",
              "description": "Creates the appointment with date, time, location and exam type, and returns its identifier."
            },
            {
              "name": "softix_cancel_appointment",
              "description": "Cancels an existing appointment by its identifier, after confirming with the patient."
            },
            {
              "name": "softix_reschedule_appointment",
              "description": "Moves an appointment to another date, time, location or optometrist."
            },
            {
              "name": "softix_get_customer",
              "description": "Finds a patient by their document number, to see whether they exist before booking."
            },
            {
              "name": "softix_create_customer",
              "description": "Registers a new patient with document number, first name, last name and mobile."
            },
            {
              "name": "softix_get_user",
              "description": "Looks up an optometrist by identifier and returns their role."
            }
          ],
          "limitations": [
            "It cannot compute availability without the per location schedule configuration. Softix exposes the booked calendar, not the opening hours. Undeclared, the open slots tool does not run.",
            "It does not reach clinical records or exam results.",
            "It does not charge or invoice the visit. The invoicing integration covers that.",
            "It does not list the optometrists at the practice. The API only allows looking them up one at a time by identifier."
          ],
          "requirements": [
            {
              "name": "Your Softix account username and password",
              "howToObtain": "The same ones you use to sign in to the platform. The token is obtained and refreshed on each use, so there is nothing extra to configure."
            },
            {
              "name": "Schedule and optometrist configuration per location",
              "howToObtain": "Declared once, with the slot length, the locations, their practitioners and the opening hours per day. It is what makes computing open slots possible instead of only listing what is booked."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/softix"
        }
      }
    },
    {
      "id": "tcc",
      "catalogStatus": "published",
      "toolCount": 13,
      "locales": {
        "es": {
          "name": "TCC",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con la transportadora colombiana TCC para que tu agente de IA cotice un envío con tarifa real, le haga tracking a una guía o a varias a la vez, traduzca los 32 códigos de estado de la transportadora (entrega parcial y devolución separadas de entrega, los críticos marcados), explique qué significa una novedad y a quién es atribuible, y confirme si TCC llega a una población, si es de reexpedición y si admite pago contra entrega. Son 13 herramientas de solo lectura: el conector no graba despachos, no pide recogidas y no anula guías.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "El conector trae el maestro local de ciudades colombianas con su código DANE, para desambiguar homónimos antes de cotizar, y marca cuáles son de reexpedición y cuáles admiten recaudo.",
          "tools": [
            {
              "name": "tcc_cotizar_envio",
              "description": "Cotización real de un envío, con conceptos discriminados, peso facturado y días de promesa."
            },
            {
              "name": "tcc_consultar_tarifas",
              "description": "Devuelve la tabla de tarifas de referencia para un par origen-destino. No es un cotizador."
            },
            {
              "name": "tcc_rastrear_envio",
              "description": "Rastrea una guía con su trazabilidad, su novedad y los datos de entrega."
            },
            {
              "name": "tcc_rastrear_multiples",
              "description": "Rastrea varias guías en un solo llamado, sin repetir la consulta en bucle."
            },
            {
              "name": "tcc_consultar_envio",
              "description": "Ficha completa del envío: pesos, flete, recaudo, fecha de promesa y partes."
            },
            {
              "name": "tcc_informacion_remesas",
              "description": "Trazabilidad ligera de muchas guías a la vez, cuando solo hace falta el estado."
            },
            {
              "name": "tcc_consultar_novedad",
              "description": "Explica una novedad y dice si es atribuible a la transportadora, al cliente o a un tercero."
            },
            {
              "name": "tcc_consultar_estado",
              "description": "Traduce los 32 códigos de estado de TCC, que llegan en dos numeraciones distintas, y marca los críticos: indemnización, retención de la DIAN, devolución, guía reemplazada y anulación."
            },
            {
              "name": "tcc_buscar_ciudad",
              "description": "Busca una ciudad en el maestro local y devuelve su código DANE, desambiguando homónimos."
            },
            {
              "name": "tcc_consultar_cobertura",
              "description": "Dice si TCC llega a una población, si su código sigue vigente, si es de reexpedición (suma costo y tiempo) y si admite pago contra entrega."
            },
            {
              "name": "tcc_ciudades_con_fce",
              "description": "Lista las poblaciones que admiten flete contra entrega con recaudo."
            },
            {
              "name": "tcc_validar_direccion",
              "description": "Normaliza una dirección colombiana para despacho, expandiendo las abreviaturas de vía."
            },
            {
              "name": "tcc_consultar_conexion",
              "description": "Verifica que el token esté configurado y reporta el ambiente y la cuenta comercial activos."
            }
          ],
          "limitations": [
            "No genera guías ni graba despachos. No solicita recogidas y no anula guías: la integración es de solo lectura.",
            "No calcula el precio ni el peso facturado por su cuenta. Devuelve lo que responde la transportadora, tal cual, porque un flete calculado localmente es un flete inventado.",
            "No valida direcciones contra un catálogo oficial. La transportadora no expone esa validación por API; el conector solo estandariza el texto de la dirección.",
            "No trae la imagen del comprobante de entrega. Devuelve el enlace, nunca el archivo embebido."
          ],
          "requirements": [
            {
              "name": "Token de acceso de la API de TCC",
              "howToObtain": "Lo entrega TCC. El token de pruebas y el de producción son distintos, y el ambiente se declara al configurar la integración."
            },
            {
              "name": "Número de acuerdo comercial",
              "howToObtain": "Es el número de tu contrato con TCC. Es obligatorio para cotizar, porque la tarifa depende del acuerdo, no de una lista pública."
            },
            {
              "name": "Ciudad de origen y unidad de negocio (opcionales)",
              "howToObtain": "Se configuran una vez con el código de la ciudad de despacho habitual y con la modalidad (paquetería o mensajería), para no repetirlos en cada consulta."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/tcc"
        },
        "en": {
          "name": "TCC",
          "category": "Run stores and orders",
          "summary": "Meteor connects to the Colombian carrier TCC so your Met can quote a shipment at your real contract rate, track one waybill or many, translate the 32 carrier status codes (with partial delivery and return kept apart from delivery, and the critical ones flagged), explain what an exception means and who it is attributable to, and confirm whether TCC reaches a town, whether it is served by forwarding and whether it allows cash on delivery. These are 13 read only tools. The connector does not create dispatches, does not request pickups and does not void waybills. For a connector that finishes the dispatch, use Aveonline or Skydropx.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "The connector ships with the local master list of Colombian towns and their DANE code, to disambiguate identical names before quoting, and flags which ones are served by forwarding and which allow cash collection.",
          "tools": [
            {
              "name": "tcc_cotizar_envio",
              "description": "A real shipment quote, with itemized charges, billed weight and promised transit days."
            },
            {
              "name": "tcc_consultar_tarifas",
              "description": "Returns the reference rate table for an origin and destination pair. It is not a quoting engine."
            },
            {
              "name": "tcc_rastrear_envio",
              "description": "Tracks a waybill with its history, its exception and the delivery details."
            },
            {
              "name": "tcc_rastrear_multiples",
              "description": "Tracks several waybills in one call, instead of looping the same query."
            },
            {
              "name": "tcc_consultar_envio",
              "description": "The full shipment record: weights, freight, cash collection, promised date and parties."
            },
            {
              "name": "tcc_informacion_remesas",
              "description": "Lightweight tracking for many waybills at once, when all you need is the status."
            },
            {
              "name": "tcc_consultar_novedad",
              "description": "Explains an exception and says whether it is attributable to the carrier, the customer or a third party."
            },
            {
              "name": "tcc_consultar_estado",
              "description": "Translates the 32 TCC status codes, which arrive in two different numbering systems, and flags the critical ones: compensation, customs hold, return, replaced waybill and cancellation."
            },
            {
              "name": "tcc_buscar_ciudad",
              "description": "Finds a town in the local master list and returns its DANE code, disambiguating identical names."
            },
            {
              "name": "tcc_consultar_cobertura",
              "description": "Says whether TCC reaches a town, whether its code is still current, whether it is served by forwarding (which adds cost and days) and whether it allows cash on delivery."
            },
            {
              "name": "tcc_ciudades_con_fce",
              "description": "Lists the towns that allow freight on delivery with cash collection."
            },
            {
              "name": "tcc_validar_direccion",
              "description": "Normalizes a Colombian address for dispatch, expanding street type abbreviations."
            },
            {
              "name": "tcc_consultar_conexion",
              "description": "Verifies the token is configured and reports the active environment and commercial account."
            }
          ],
          "limitations": [
            "It does not create waybills and it does not record dispatches. It does not request pickups and it does not void waybills. This integration is read only. For a connector that finishes the dispatch, use Aveonline or Skydropx.",
            "It does not calculate the price or the billed weight on its own. It returns what the carrier answers, unchanged, because freight computed locally is freight invented.",
            "It does not validate addresses against an official catalog. The carrier does not expose that check over the API, so the connector only standardizes the address text.",
            "It does not return the proof of delivery image. It returns the link, never the embedded file."
          ],
          "requirements": [
            {
              "name": "A TCC API access token",
              "howToObtain": "TCC provides it. The test token and the production token are different, and you declare the environment when configuring the integration."
            },
            {
              "name": "Your commercial agreement number",
              "howToObtain": "It is your contract number with TCC. It is required to quote, because the rate depends on the agreement and not on a public list."
            },
            {
              "name": "Origin city and business unit (optional)",
              "howToObtain": "Configured once with the code of the city you usually ship from and the service mode (parcel or courier), so you do not repeat them on every query."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/tcc"
        }
      }
    },
    {
      "id": "wasi",
      "catalogStatus": "published",
      "toolCount": 21,
      "locales": {
        "es": {
          "name": "Wasi",
          "category": "Vender y atender",
          "summary": "Meteor se conecta con Wasi, el CRM inmobiliario, y le da a tu agente de IA 21 herramientas para atender a un interesado completo por WhatsApp: buscar propiedades con filtros de ciudad, tipo, precio y área, enviar la galería de fotos de un inmueble, recordar lo que ya se conversó en esa misma sesión y registrar el lead en Wasi con sus datos. Necesitas el id de compañía y el token de tu cuenta de Wasi.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Wasi opera en varios países de América Latina; el conector trae desambiguación de ciudades colombianas homónimas, que es donde más se equivoca una búsqueda por texto.",
          "tools": [
            {
              "name": "wasi_search_properties",
              "description": "Busca y lista propiedades con filtros opcionales y devuelve un resumen corto por inmueble."
            },
            {
              "name": "wasi_get_property",
              "description": "Trae una propiedad por id con su detalle, su imagen principal y la URL pública del aviso."
            },
            {
              "name": "wasi_property_gallery",
              "description": "Devuelve la galería completa de fotos de una propiedad, cuando el cliente pide ver más."
            },
            {
              "name": "wasi_highlighted_properties",
              "description": "Devuelve las propiedades destacadas que la inmobiliaria configuró en su sitio."
            },
            {
              "name": "wasi_recent_results",
              "description": "Recuerda lo buscado en los últimos 30 minutos para responder \"el de la avenida\" sin volver a consultar."
            },
            {
              "name": "wasi_list_property_types",
              "description": "Lista los tipos de propiedad soportados (casa, apartamento, lote) con sus identificadores."
            },
            {
              "name": "wasi_price_range",
              "description": "Devuelve el rango de precios mínimo y máximo del portafolio de la compañía."
            },
            {
              "name": "wasi_area_range",
              "description": "Devuelve el rango de área mínima y máxima del portafolio."
            },
            {
              "name": "wasi_property_owner",
              "description": "Devuelve el propietario asociado a una propiedad."
            },
            {
              "name": "wasi_property_clients",
              "description": "Lista los clientes y leads asociados a una propiedad."
            },
            {
              "name": "wasi_cities_with_property",
              "description": "Lista solo las ciudades que tienen al menos una propiedad publicada."
            },
            {
              "name": "wasi_locations_from_city",
              "description": "Lista las localidades y sectores de una ciudad."
            },
            {
              "name": "wasi_zones_from_city",
              "description": "Lista las zonas de una ciudad."
            },
            {
              "name": "wasi_cities_from_region",
              "description": "Lista las ciudades de una región o departamento."
            },
            {
              "name": "wasi_regions_from_country",
              "description": "Lista las regiones, departamentos o estados de un país."
            },
            {
              "name": "wasi_list_countries",
              "description": "Lista los países soportados."
            },
            {
              "name": "wasi_search_clients",
              "description": "Lista y filtra los clientes y leads de la compañía."
            },
            {
              "name": "wasi_get_client",
              "description": "Trae un cliente por su id."
            },
            {
              "name": "wasi_create_client",
              "description": "Crea un cliente o lead nuevo en Wasi con los datos de la conversación."
            },
            {
              "name": "wasi_update_client",
              "description": "Actualiza un cliente existente enviando solo los campos que cambian."
            },
            {
              "name": "wasi_get_user",
              "description": "Trae un asesor de la compañía por su id."
            }
          ],
          "limitations": [
            "No publica ni edita propiedades. Puede leer todo el portafolio y crear o actualizar clientes, pero el inventario se sigue cargando en Wasi.",
            "No agenda visitas dentro de Wasi. Para eso se combina con la agenda nativa de Meteor o con Cal.com, que son integraciones aparte.",
            "No firma ni gestiona contratos, arriendos ni pagos de canon.",
            "No inventa disponibilidad: filtra por propiedades publicadas y vivas, así que un inmueble retirado deja de aparecer aunque el cliente lo haya visto ayer."
          ],
          "requirements": [
            {
              "name": "Id de compañía de Wasi",
              "howToObtain": "Está en la configuración de tu cuenta de Wasi, en el apartado de API."
            },
            {
              "name": "Token de API de Wasi",
              "howToObtain": "Se genera en la misma pantalla de API de Wasi. Se guarda cifrado por espacio de trabajo y viaja en cada consulta al portafolio."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/wasi"
        },
        "en": {
          "name": "Wasi",
          "category": "Sell and serve",
          "summary": "Meteor connects to Wasi, the real estate CRM, and gives your Met 21 tools to handle a prospect end to end over WhatsApp: search listings by city, type, price and area, send the photo gallery of a property, remember what was already discussed in that same session, and register the lead in Wasi with their details. You need your Wasi company id and account token.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Wasi operates across several Latin American countries. The connector adds disambiguation for Colombian towns with identical names, which is where a text search goes wrong most often.",
          "tools": [
            {
              "name": "wasi_search_properties",
              "description": "Searches and lists properties with optional filters, returning a short summary per listing."
            },
            {
              "name": "wasi_get_property",
              "description": "Returns a property by id with its detail, its main image and the public listing URL."
            },
            {
              "name": "wasi_property_gallery",
              "description": "Returns the full photo gallery of a property, for when the customer asks to see more."
            },
            {
              "name": "wasi_highlighted_properties",
              "description": "Returns the featured properties the agency configured on its own site."
            },
            {
              "name": "wasi_recent_results",
              "description": "Remembers what was searched in the last 30 minutes, so \"the one on the avenue\" needs no new query."
            },
            {
              "name": "wasi_list_property_types",
              "description": "Lists the property types supported (house, apartment, lot) with their identifiers."
            },
            {
              "name": "wasi_price_range",
              "description": "Returns the minimum and maximum price across the company portfolio."
            },
            {
              "name": "wasi_area_range",
              "description": "Returns the minimum and maximum area across the portfolio."
            },
            {
              "name": "wasi_property_owner",
              "description": "Returns the owner associated with a property."
            },
            {
              "name": "wasi_property_clients",
              "description": "Lists the clients and leads associated with a property."
            },
            {
              "name": "wasi_cities_with_property",
              "description": "Lists only the cities with at least one published property."
            },
            {
              "name": "wasi_locations_from_city",
              "description": "Lists the neighborhoods and sectors of a city."
            },
            {
              "name": "wasi_zones_from_city",
              "description": "Lists the zones of a city."
            },
            {
              "name": "wasi_cities_from_region",
              "description": "Lists the cities of a region or state."
            },
            {
              "name": "wasi_regions_from_country",
              "description": "Lists the regions, departments or states of a country."
            },
            {
              "name": "wasi_list_countries",
              "description": "Lists the countries supported."
            },
            {
              "name": "wasi_search_clients",
              "description": "Lists and filters the company's clients and leads."
            },
            {
              "name": "wasi_get_client",
              "description": "Returns a client by their id."
            },
            {
              "name": "wasi_create_client",
              "description": "Creates a new client or lead in Wasi from the details in the conversation."
            },
            {
              "name": "wasi_update_client",
              "description": "Updates an existing client, sending only the fields that change."
            },
            {
              "name": "wasi_get_user",
              "description": "Returns an agent at the company by their id."
            }
          ],
          "limitations": [
            "It does not publish or edit listings. It can read the whole portfolio and create or update clients, but inventory is still loaded in Wasi.",
            "It does not book viewings inside Wasi. For that you pair it with Meteor's native scheduling or with Cal.com, which are separate integrations.",
            "It does not sign or manage contracts, leases or rent payments.",
            "It does not invent availability. It filters for published and live properties, so a listing that was pulled stops appearing even if the customer saw it yesterday."
          ],
          "requirements": [
            {
              "name": "Your Wasi company id",
              "howToObtain": "It is in your Wasi account settings, in the API section."
            },
            {
              "name": "Your Wasi API token",
              "howToObtain": "Generated on the same Wasi API screen. It is stored encrypted per workspace and travels with every portfolio query."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/wasi"
        }
      }
    },
    {
      "id": "webflow",
      "catalogStatus": "published",
      "toolCount": 16,
      "locales": {
        "es": {
          "name": "Webflow",
          "category": "Crear y promocionar",
          "summary": "Meteor se conecta con la Data API v2 de Webflow y le da a tu agente de IA 16 herramientas para mantener el sitio: listar y leer páginas, editar los textos del DOM nodo por nodo, ajustar título, descripción y Open Graph de cada página, administrar las colecciones del CMS con su esquema real de campos, crear y editar entradas (por defecto como borrador) y publicar cuando alguien decide que sale al aire.",
          "tools": [
            {
              "name": "webflow_list_sites",
              "description": "Lista los sitios del espacio de trabajo al que pertenece el token."
            },
            {
              "name": "webflow_get_site",
              "description": "Trae un sitio con sus dominios, sus idiomas y su última publicación."
            },
            {
              "name": "webflow_publish_site",
              "description": "Publica el sitio a sus dominios. El cambio queda visible al público, así que confirma antes."
            },
            {
              "name": "webflow_list_pages",
              "description": "Lista las páginas estáticas del sitio con su estado de borrador o archivada."
            },
            {
              "name": "webflow_get_page",
              "description": "Trae una página con todos sus ajustes, incluidos los de SEO y Open Graph."
            },
            {
              "name": "webflow_get_page_dom",
              "description": "Devuelve los nodos de texto editables de una página con su identificador."
            },
            {
              "name": "webflow_update_page_dom",
              "description": "Cambia el texto de uno o varios nodos. El cambio queda en preparación hasta publicar."
            },
            {
              "name": "webflow_update_page_settings",
              "description": "Ajusta título, dirección, descripción y Open Graph de una página."
            },
            {
              "name": "webflow_list_collections",
              "description": "Lista las colecciones del CMS con su cantidad de campos."
            },
            {
              "name": "webflow_get_collection",
              "description": "Trae el esquema completo de una colección, con el identificador y el tipo de cada campo."
            },
            {
              "name": "webflow_list_items",
              "description": "Lista las entradas de una colección, con paginación y búsqueda."
            },
            {
              "name": "webflow_get_item",
              "description": "Trae una entrada con todos sus campos."
            },
            {
              "name": "webflow_create_item",
              "description": "Crea una entrada siempre como borrador y, por defecto, rechaza toda la operación si una imagen o archivo es inválido en vez de omitirlo sin aviso. Un campo Number recibe un número JSON, no un string numérico."
            },
            {
              "name": "webflow_update_item",
              "description": "Actualiza los campos de una entrada, o la saca de borrador."
            },
            {
              "name": "webflow_delete_item",
              "description": "Elimina una entrada. Es destructiva y no hay papelera."
            },
            {
              "name": "webflow_publish_items",
              "description": "Publica entradas aprobadas solo con confirmar true y reporta cuáles confirmó Webflow y cuáles devolvieron error."
            }
          ],
          "limitations": [
            "No diseña ni cambia la estructura visual del sitio. Edita textos de nodos existentes y campos del CMS; el diseño se hace en Webflow.",
            "No crea colecciones ni campos nuevos. Trabaja sobre el esquema que ya existe, que es lo que se lee antes de crear una entrada.",
            "No restaura una versión anterior del sitio. Publicar no tiene un deshacer global: volver atrás es corregir el texto y publicar de nuevo. Una entrada del CMS sí regresa a borrador con el mismo interruptor que la sacó, y el cambio llega al sitio en la siguiente publicación.",
            "No sube imágenes a Webflow. No hay herramienta de archivos: una imagen entra al CMS referenciando una dirección que ya esté publicada en otro lado.",
            "No crea ni elimina páginas. Trabaja sobre las que ya existen: cambia el texto de sus nodos y sus ajustes de página.",
            "No administra formularios, comercio electrónico ni miembros de Webflow."
          ],
          "requirements": [
            {
              "name": "Token de API del sitio",
              "howToObtain": "Se genera en Webflow, en la configuración del sitio, en el apartado de aplicaciones e integraciones. Los permisos mínimos son lectura de sitios y páginas, y lectura y escritura de páginas y CMS."
            },
            {
              "name": "Identificador del sitio por defecto (opcional)",
              "howToObtain": "Se toma del listado de sitios o de la dirección del diseñador. Configurarlo evita pasarlo en cada herramienta."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/webflow"
        },
        "en": {
          "name": "Webflow",
          "category": "Create and promote",
          "summary": "Meteor connects to the Webflow Data API v2 and gives your Met 16 tools to maintain the site: list and read pages, edit DOM copy node by node, tune title, description and Open Graph on each page, manage CMS collections against their real field schema, create and edit items (as drafts by default) and publish when someone decides it goes live.",
          "tools": [
            {
              "name": "webflow_list_sites",
              "description": "Lists the sites in the workspace the token belongs to."
            },
            {
              "name": "webflow_get_site",
              "description": "Returns a site with its domains, its locales and its last publish."
            },
            {
              "name": "webflow_publish_site",
              "description": "Publishes the site to its domains. The change becomes public, so confirm first."
            },
            {
              "name": "webflow_list_pages",
              "description": "Lists the static pages of the site with their draft or archived state."
            },
            {
              "name": "webflow_get_page",
              "description": "Returns a page with all its settings, SEO and Open Graph included."
            },
            {
              "name": "webflow_get_page_dom",
              "description": "Returns the editable text nodes of a page with their identifier."
            },
            {
              "name": "webflow_update_page_dom",
              "description": "Changes the text of one or more nodes. The change stays staged until you publish."
            },
            {
              "name": "webflow_update_page_settings",
              "description": "Adjusts title, slug, description and Open Graph on a page."
            },
            {
              "name": "webflow_list_collections",
              "description": "Lists the CMS collections with their field count."
            },
            {
              "name": "webflow_get_collection",
              "description": "Returns the full schema of a collection, with the identifier and type of every field."
            },
            {
              "name": "webflow_list_items",
              "description": "Lists the items in a collection, with pagination and search."
            },
            {
              "name": "webflow_get_item",
              "description": "Returns an item with all of its fields."
            },
            {
              "name": "webflow_create_item",
              "description": "Creates an item always as a draft and rejects the whole operation by default when an image or file is invalid instead of silently skipping it. A Number field receives a JSON number, not a numeric string."
            },
            {
              "name": "webflow_update_item",
              "description": "Updates the fields of an item, or takes it out of draft."
            },
            {
              "name": "webflow_delete_item",
              "description": "Deletes an item. Destructive, and there is no trash."
            },
            {
              "name": "webflow_publish_items",
              "description": "Publishes approved items only with confirm set to true and reports which Webflow confirmed and which returned an error."
            }
          ],
          "limitations": [
            "It does not design or change the visual structure of the site. It edits copy on existing nodes and CMS fields. Design happens in Webflow.",
            "It does not create new collections or fields. It works against the schema that already exists, which is what it reads before creating an item.",
            "It does not restore an earlier version of the site. Publishing has no global undo: going back means fixing the copy and publishing again. A CMS item does return to draft with the same switch that took it out, and that lands on the site with the next publish.",
            "It does not upload images to Webflow. There is no assets tool: an image enters the CMS by referencing an address already published somewhere else.",
            "It does not create or delete pages. It works on the ones that already exist, changing the text of their nodes and their page settings.",
            "It does not manage Webflow forms, ecommerce or memberships."
          ],
          "requirements": [
            {
              "name": "A site API token",
              "howToObtain": "Generated in Webflow, under site settings, in the apps and integrations section. The minimum scopes are read on sites and pages, and read and write on pages and CMS."
            },
            {
              "name": "A default site identifier (optional)",
              "howToObtain": "Taken from the site listing or from the designer URL. Setting it saves passing it to every tool."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/webflow"
        }
      }
    },
    {
      "id": "wompi",
      "catalogStatus": "published",
      "toolCount": 4,
      "reviewedAt": "2026-08-25",
      "locales": {
        "es": {
          "name": "Wompi",
          "category": "Cobrar y administrar",
          "summary": "La integración de Meteor con Wompi genera dentro de una conversación un link de pago para que el cliente elija PSE, Nequi, Bancolombia o tarjeta. Después consulta la transacción y solo la presenta como pagada cuando Wompi la devuelve aprobada. Meteor no es Wompi ni procesa el dinero: necesitas la llave pública y la llave privada de tu comercio, ambas del mismo ambiente, y el cliente completa el pago en el checkout de Wompi. El monto se entrega al conector en pesos enteros y este hace la conversión a centavos.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Wompi es colombiana y cobra únicamente en pesos colombianos. No hay cobro en dólares ni en otra moneda, y los medios que ofrece son los del mercado local.",
          "tools": [
            {
              "name": "wompi_crear_enlace_pago",
              "description": "Crea el link de pago de un cobro y devuelve la URL lista para enviarla al cliente. El monto se pasa en pesos enteros, nunca en centavos."
            },
            {
              "name": "wompi_consultar_transaccion",
              "description": "Dice si una transacción quedó aprobada, pendiente, rechazada o anulada, con su monto, su medio de pago y su referencia. Se consulta por identificador."
            },
            {
              "name": "wompi_listar_medios_pago",
              "description": "Devuelve los medios de pago habilitados para tu comercio y en qué ambiente están operando las llaves cargadas."
            },
            {
              "name": "wompi_listar_bancos_pse",
              "description": "Lista los bancos disponibles para pagar por PSE, con su código y su nombre. Es la respuesta a «¿aparece mi banco?» antes de mandar el link de pago, y la lista se pide a Wompi cada vez porque cambia sola."
            }
          ],
          "limitations": [
            "No cobra por sí solo. Crear el enlace no mueve un peso: la plata se mueve cuando el cliente entra y paga, y eso solo se sabe consultando la transacción.",
            "No hace cobro recurrente ni suscripciones. Cada período es un enlace nuevo. El cobro automático existe en Wompi y este conector no lo expone, porque mueve plata sin que intervenga una persona.",
            "No reembolsa ni anula un cobro. Devolver una plata ya cobrada se hace desde el panel de Wompi, por una persona.",
            "Cada enlace es de un solo uso. No sirve para cobrar dos veces, ni para reenviárselo a otro cliente: cada venta lleva su propio enlace.",
            "No guarda ni procesa datos de tarjeta. El cliente los digita en el checkout de Wompi; Meteor solo genera el enlace y lee el resultado."
          ],
          "requirements": [
            {
              "name": "Llave pública de tu comercio en Wompi",
              "howToObtain": "Está en comercios.wompi.co, en Desarrolladores → Llaves de API, y empieza por «pub_». Es la que consulta transacciones y medios de pago."
            },
            {
              "name": "Llave privada de tu comercio en Wompi",
              "howToObtain": "Está en el mismo lugar y empieza por «prv_». Es la que crea los enlaces, y tiene que ser del mismo ambiente que la pública: mezclarlas devuelve un error que no explica el motivo."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/wompi"
        },
        "en": {
          "name": "Wompi",
          "category": "Collect and manage",
          "summary": "Meteor's Wompi integration creates a payment link inside a conversation so the customer can choose PSE, Nequi, Bancolombia or card. It then checks the transaction and presents it as paid only after Wompi returns an approved status. Meteor is neither Wompi nor a payment processor: you need your business's public and private keys from the same environment, and the customer completes payment in Wompi's checkout. The connector receives whole pesos and converts the amount to cents.",
          "markets": [
            "Colombia"
          ],
          "marketNote": "Wompi is Colombian and charges in Colombian pesos only. There is no charging in dollars or any other currency, and the methods it offers are the local ones.",
          "tools": [
            {
              "name": "wompi_crear_enlace_pago",
              "description": "Creates the payment link for a charge and returns the URL, ready to send to the customer. The amount is passed in whole pesos, never in cents."
            },
            {
              "name": "wompi_consultar_transaccion",
              "description": "Tells you whether a transaction was approved, is pending, was declined or was voided, with its amount, its payment method and its reference. It is looked up by id."
            },
            {
              "name": "wompi_listar_medios_pago",
              "description": "Returns the payment methods your business has enabled and which environment the configured keys are operating in."
            },
            {
              "name": "wompi_listar_bancos_pse",
              "description": "Lists the banks available for PSE payments, with their code and their name. It answers \"is my bank on the list?\" before the link goes out, and it is requested from Wompi every time because the list changes on its own."
            }
          ],
          "limitations": [
            "It does not charge on its own. Creating the link moves no money: the money moves when the customer goes in and pays, and the only way to know is checking the transaction.",
            "It does no recurring billing and no subscriptions. Every period needs a new link. Automatic charging does exist in Wompi and this connector deliberately leaves it out, because it moves money with nobody in the loop.",
            "It does not refund and does not void a charge. Giving money back is done from the Wompi dashboard, by a person.",
            "Every link is single use. It cannot charge twice, and it cannot be forwarded to another customer: each sale carries its own link.",
            "It does not store or process card data. The customer types it into the Wompi checkout. Meteor issues the link and reads the result."
          ],
          "requirements": [
            {
              "name": "The public key of your Wompi business",
              "howToObtain": "It is in comercios.wompi.co, under Desarrolladores and Llaves de API, and starts with \"pub_\". It is the one that looks up transactions and payment methods."
            },
            {
              "name": "The private key of your Wompi business",
              "howToObtain": "It is in the same place and starts with \"prv_\". It is the one that creates the links, and it has to come from the same environment as the public one: mixing them returns an error that does not explain itself."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/wompi"
        }
      }
    },
    {
      "id": "woocommerce",
      "catalogStatus": "published",
      "toolCount": 16,
      "locales": {
        "es": {
          "name": "WooCommerce",
          "category": "Operar tienda y pedidos",
          "summary": "Meteor se conecta con WooCommerce por su API REST v3 y le da a tu agente de IA 16 herramientas para atender la tienda: buscar productos por nombre o referencia, leer las variaciones con su propia referencia y su stock, contar el catálogo sin traerlo entero, crear y actualizar productos, y gestionar pedidos y clientes. Solo necesitas la clave y el secreto de la API que se generan desde el panel de WooCommerce.",
          "tools": [
            {
              "name": "wc_list_products",
              "description": "Lista y busca productos por nombre, referencia, estado, categoría o stock."
            },
            {
              "name": "wc_count_products",
              "description": "Cuenta cuántos productos hay sin traerlos, para responder el total real de la tienda."
            },
            {
              "name": "wc_get_product",
              "description": "Trae un producto con precios, stock, atributos e imágenes."
            },
            {
              "name": "wc_get_variations",
              "description": "Lista las variaciones de un producto variable con su referencia, precio y stock propios."
            },
            {
              "name": "wc_create_product",
              "description": "Crea un producto y devuelve su enlace público. Por defecto queda publicado."
            },
            {
              "name": "wc_update_product",
              "description": "Actualiza precio, stock, descripción o estado de un producto existente."
            },
            {
              "name": "wc_delete_product",
              "description": "Envía un producto a la papelera, o lo elimina en firme si se lo pides. Es destructiva."
            },
            {
              "name": "wc_list_product_categories",
              "description": "Lista las categorías del catálogo, útil antes de crear o clasificar productos."
            },
            {
              "name": "wc_classify_product",
              "description": "Clasifica un producto veterinario por su jerarquía para decidir si se puede publicar."
            },
            {
              "name": "wc_list_orders",
              "description": "Lista pedidos filtrando por estado, cliente o rango de fechas."
            },
            {
              "name": "wc_get_order",
              "description": "Trae un pedido con sus líneas, totales, estado, dirección de envío y cliente."
            },
            {
              "name": "wc_create_order",
              "description": "Crea un pedido solo después de recibir `confirmar: true`, valida el producto y su variación, y devuelve el total que WooCommerce guardó. La etiqueta de pago la entrega tu operación."
            },
            {
              "name": "wc_update_order",
              "description": "Cambia el estado de un pedido o le agrega una nota de cliente."
            },
            {
              "name": "wc_add_order_note",
              "description": "Agrega una nota al pedido y, si la marcas como visible, WooCommerce le escribe al comprador."
            },
            {
              "name": "wc_list_customers",
              "description": "Lista los clientes registrados con sus datos de facturación y envío."
            },
            {
              "name": "wc_get_customer",
              "description": "Trae un cliente con su histórico y sus datos de contacto."
            }
          ],
          "limitations": [
            "No cobra. Los pagos siguen ocurriendo en la pasarela que ya tiene tu tienda.",
            "No genera guías ni gestiona despachos; eso corresponde a la integración de la transportadora.",
            "No instala ni configura plugins de WooCommerce, y no modifica el tema. Trabaja contra la API REST que ya trae la tienda.",
            "No sincroniza por su cuenta con marketplaces. Publicar el mismo catálogo en Mercado Libre, Éxito o Homecenter lo hace la integración de cada marketplace, que sí lee de aquí.",
            "No verifica si un gateway está habilitado ni consulta su etiqueta visible. El identificador y la etiqueta exacta del método de pago deben venir de una configuración manual de tu operación."
          ],
          "requirements": [
            {
              "name": "URL de la tienda",
              "howToObtain": "La dirección de tu WooCommerce, sin barra final."
            },
            {
              "name": "Clave y secreto de la API REST",
              "howToObtain": "Se generan en WooCommerce → Ajustes → Avanzado → API REST, con permisos de lectura y escritura. Se guardan cifrados por espacio de trabajo."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/woocommerce"
        },
        "en": {
          "name": "WooCommerce",
          "category": "Run stores and orders",
          "summary": "Meteor connects to WooCommerce through its REST API v3 and gives your Met 16 tools to run the store from a conversation: search products by name or SKU, read variations with their own SKU and stock, count the catalog without pulling all of it, create and update products, and manage orders and customers. All you need is the API key and secret generated from the WooCommerce admin.",
          "tools": [
            {
              "name": "wc_list_products",
              "description": "Lists and searches products by name, SKU, status, category or stock."
            },
            {
              "name": "wc_count_products",
              "description": "Counts how many products exist without pulling them, so you get the store's real total."
            },
            {
              "name": "wc_get_product",
              "description": "Returns a product with prices, stock, attributes and images."
            },
            {
              "name": "wc_get_variations",
              "description": "Lists the variations of a variable product with their own SKU, price and stock."
            },
            {
              "name": "wc_create_product",
              "description": "Creates a product and returns its public link. Published by default."
            },
            {
              "name": "wc_update_product",
              "description": "Updates price, stock, description or status on an existing product."
            },
            {
              "name": "wc_delete_product",
              "description": "Sends a product to the trash, or deletes it for good if you ask. Destructive."
            },
            {
              "name": "wc_list_product_categories",
              "description": "Lists the catalog categories, useful before creating or classifying products."
            },
            {
              "name": "wc_classify_product",
              "description": "Classifies a veterinary product by its hierarchy to decide whether it can be listed."
            },
            {
              "name": "wc_list_orders",
              "description": "Lists orders filtered by status, customer or date range."
            },
            {
              "name": "wc_get_order",
              "description": "Returns an order with its line items, totals, status, shipping address and customer."
            },
            {
              "name": "wc_create_order",
              "description": "Creates an order only after receiving `confirmar: true`, validates the product and its variation, and returns the total stored by WooCommerce. Your operation supplies the payment label."
            },
            {
              "name": "wc_update_order",
              "description": "Changes the status of an order or adds a customer note."
            },
            {
              "name": "wc_add_order_note",
              "description": "Adds a note to the order and, if you mark it visible, WooCommerce emails the buyer."
            },
            {
              "name": "wc_list_customers",
              "description": "Lists registered customers with their billing and shipping details."
            },
            {
              "name": "wc_get_customer",
              "description": "Returns a customer with their history and contact details."
            }
          ],
          "limitations": [
            "It does not take payment. Payments keep happening in the checkout your store already has.",
            "It does not create shipping labels or handle fulfillment. That belongs to the carrier integration.",
            "It does not install or configure WooCommerce plugins, and it does not modify the theme. It works against the REST API the store already ships with.",
            "It does not sync to marketplaces on its own. Listing the same catalog on Mercado Libre, Éxito or Homecenter is done by each marketplace integration, which does read from here.",
            "It does not verify whether a gateway is enabled or look up its visible label. The payment method id and exact label must come from a manual configuration supplied by your operation."
          ],
          "requirements": [
            {
              "name": "Your store URL",
              "howToObtain": "The address of your WooCommerce, with no trailing slash."
            },
            {
              "name": "REST API key and secret",
              "howToObtain": "Generated in WooCommerce under Settings, Advanced, REST API, with read and write permissions. They are stored encrypted per workspace."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/woocommerce"
        }
      }
    },
    {
      "id": "wordpress",
      "catalogStatus": "published",
      "toolCount": 17,
      "locales": {
        "es": {
          "name": "WordPress",
          "category": "Crear y promocionar",
          "summary": "Meteor se conecta con WordPress por su API REST v2 y le da a tu agente de IA 17 herramientas para publicar de verdad: crear y actualizar artículos, subir medios y asignar la imagen destacada, detectar si el sitio usa el editor por bloques o el clásico, convertir el texto al formato correcto, inyectar el JSON-LD y después descargar el HTML público para verificar que quedó ahí. Necesitas una contraseña de aplicación de WordPress.",
          "tools": [
            {
              "name": "wp_create_post",
              "description": "Crea un artículo. Si no se indica el estado queda en borrador, y devuelve su enlace público."
            },
            {
              "name": "wp_update_post",
              "description": "Actualiza un artículo existente, o publica un borrador cambiándole el estado."
            },
            {
              "name": "wp_get_post",
              "description": "Recupera un artículo con su contenido y sus metadatos."
            },
            {
              "name": "wp_delete_post",
              "description": "Envía un artículo a la papelera, o lo elimina en firme. Es destructiva."
            },
            {
              "name": "wp_list_posts",
              "description": "Lista artículos con filtros de estado, búsqueda y paginación."
            },
            {
              "name": "wp_list_categories",
              "description": "Lista las categorías del sitio."
            },
            {
              "name": "wp_list_tags",
              "description": "Lista las etiquetas del sitio."
            },
            {
              "name": "wp_upload_media",
              "description": "Sube una imagen, un PDF o un video a la biblioteca de medios y devuelve su URL pública."
            },
            {
              "name": "wp_set_featured_image",
              "description": "Asigna un medio ya subido como imagen destacada de un artículo."
            },
            {
              "name": "wp_list_media",
              "description": "Lista los archivos de la biblioteca de medios."
            },
            {
              "name": "wp_detect_editor",
              "description": "Detecta si el sitio usa el editor por bloques o el clásico, porque cambia el formato del contenido."
            },
            {
              "name": "wp_markdown_to_gutenberg",
              "description": "Convierte texto en Markdown al formato de bloques que espera el editor moderno."
            },
            {
              "name": "wp_detect_seo_plugin",
              "description": "Detecta qué plugin de SEO tiene el sitio, antes de intentar escribir metadatos."
            },
            {
              "name": "wp_inject_schema",
              "description": "Inyecta uno o varios JSON-LD en un artículo, con un campo universal y el del plugin detectado."
            },
            {
              "name": "wp_validate_published",
              "description": "Descarga el HTML público del artículo y verifica que el JSON-LD esté ahí y parsee."
            },
            {
              "name": "wp_gpai_set_seo",
              "description": "Fija título, descripción, canónica, Open Graph y JSON-LD en sitios con el plugin Gpai SEO."
            },
            {
              "name": "wp_gpai_set_fields",
              "description": "Escribe campos propios en sitios con Gpai SEO, para plantillas dinámicas de Elementor."
            }
          ],
          "limitations": [
            "No instala plugins ni cambia el tema del sitio. Trabaja sobre la API REST que WordPress ya trae.",
            "No garantiza posicionamiento. Publica, marca y verifica que el marcado esté; lo que Google haga después no lo decide una integración.",
            "No mueve el lienzo de un maquetador visual: no crea ni reordena secciones en Elementor. Lo que sí hace, en sitios con el plugin Gpai SEO, es escribir los campos propios que una plantilla dinámica de Elementor lee, como el acordeón de preguntas frecuentes.",
            "El marcado no se publica solo. El campo universal donde se escribe el JSON-LD únicamente llega al HTML si el sitio tiene instalado el complemento que lo lee, y ese complemento se instala aparte: no viene con la integración ni se descarga desde aquí.",
            "Con Yoast y con SEOPress el JSON-LD no se escribe en el campo propio del plugin, porque no exponen dónde hacerlo. Solo RankMath lo recibe además en el suyo."
          ],
          "requirements": [
            {
              "name": "URL del sitio WordPress",
              "howToObtain": "La dirección del sitio, sin barra final."
            },
            {
              "name": "Usuario con rol de editor o superior",
              "howToObtain": "Un usuario con permiso para publicar. Si el rol es menor, la API rechaza la publicación."
            },
            {
              "name": "Contraseña de aplicación",
              "howToObtain": "Se genera en WordPress, en Usuarios → Perfil → Contraseñas de aplicación. No es la contraseña de inicio de sesión, y se puede revocar sin cambiar la del usuario."
            },
            {
              "name": "Claves de Gpai SEO (opcional)",
              "howToObtain": "Solo si el sitio usa el plugin Generate Page AI. Se copian en Ajustes → Generate Page AI, en las pestañas API SEO y API Custom Fields. Habilitan el SEO del frontend y los campos que lee una plantilla dinámica de Elementor."
            }
          ],
          "sourceUrl": "https://meteor.com.co/integraciones/wordpress"
        },
        "en": {
          "name": "WordPress",
          "category": "Create and promote",
          "summary": "Meteor connects to WordPress through its REST API v2 and gives your Met 17 tools to publish for real: create and update articles, upload media and set the featured image, detect whether the site runs the block editor or the classic one, convert the text to the right format, inject the JSON-LD and then download the public HTML to confirm it is actually there. You need a WordPress application password.",
          "tools": [
            {
              "name": "wp_create_post",
              "description": "Creates an article. With no status given it stays a draft, and it returns the public link."
            },
            {
              "name": "wp_update_post",
              "description": "Updates an existing article, or publishes a draft by changing its status."
            },
            {
              "name": "wp_get_post",
              "description": "Retrieves an article with its content and metadata."
            },
            {
              "name": "wp_delete_post",
              "description": "Sends an article to the trash, or deletes it for good. Destructive."
            },
            {
              "name": "wp_list_posts",
              "description": "Lists articles with status filters, search and pagination."
            },
            {
              "name": "wp_list_categories",
              "description": "Lists the categories on the site."
            },
            {
              "name": "wp_list_tags",
              "description": "Lists the tags on the site."
            },
            {
              "name": "wp_upload_media",
              "description": "Uploads an image, PDF or video to the media library and returns its public URL."
            },
            {
              "name": "wp_set_featured_image",
              "description": "Sets an already uploaded media file as the featured image of an article."
            },
            {
              "name": "wp_list_media",
              "description": "Lists the files in the media library."
            },
            {
              "name": "wp_detect_editor",
              "description": "Detects whether the site uses the block editor or the classic one, since the content format changes."
            },
            {
              "name": "wp_markdown_to_gutenberg",
              "description": "Converts Markdown text into the block format the modern editor expects."
            },
            {
              "name": "wp_detect_seo_plugin",
              "description": "Detects which SEO plugin the site runs, before attempting to write metadata."
            },
            {
              "name": "wp_inject_schema",
              "description": "Injects one or more JSON-LD blocks into an article, in a universal field and in the detected plugin's."
            },
            {
              "name": "wp_validate_published",
              "description": "Downloads the public HTML of the article and confirms the JSON-LD is there and parses."
            },
            {
              "name": "wp_gpai_set_seo",
              "description": "Sets title, description, canonical, Open Graph and JSON-LD on sites running the Gpai SEO plugin."
            },
            {
              "name": "wp_gpai_set_fields",
              "description": "Writes custom fields on sites running Gpai SEO, for dynamic Elementor templates."
            }
          ],
          "limitations": [
            "It does not install plugins or change the site theme. It works against the REST API WordPress already ships with.",
            "It does not guarantee rankings. It publishes, marks up and verifies the markup is there. What Google does next is not decided by an integration.",
            "It does not move the canvas of a visual page builder: it neither creates nor reorders Elementor sections. What it does do, on sites running the Gpai SEO plugin, is write the custom fields a dynamic Elementor template reads, such as the FAQ accordion.",
            "The markup does not publish itself. The universal field the JSON-LD is written to only reaches the HTML if the site has the companion plugin that reads it installed, and that plugin is installed separately: it does not ship with the integration.",
            "With Yoast and with SEOPress the JSON-LD is not written into the plugin's own field, because they expose no place to write it. Only RankMath also receives it in its own."
          ],
          "requirements": [
            {
              "name": "Your WordPress site URL",
              "howToObtain": "The site address, with no trailing slash."
            },
            {
              "name": "A user with the editor role or above",
              "howToObtain": "A user with permission to publish. With a lower role, the API rejects the publish."
            },
            {
              "name": "An application password",
              "howToObtain": "Generated in WordPress under Users, Profile, Application Passwords. It is not the login password, and it can be revoked without changing the user's own."
            },
            {
              "name": "Gpai SEO keys (optional)",
              "howToObtain": "Only if the site runs the Generate Page AI plugin. Copied from Settings, Generate Page AI, in the API SEO and API Custom Fields tabs. They enable the front-end SEO and the fields a dynamic Elementor template reads."
            }
          ],
          "sourceUrl": "https://meteor.com.co/en/integraciones/wordpress"
        }
      }
    }
  ]
}
