{"componentChunkName":"component---src-templates-docs-js","path":"/whatsapp/direct_send/objects","result":{"data":{"site":{"siteMetadata":{"title":"broadcaster","docsLocation":"https://github.com","docsLocationType":"github","editable":false}},"mdx":{"fields":{"id":"6279d300-cecc-51d4-8562-0c8ca3d884ec","title":"Objetos","slug":"/whatsapp/direct_send/objects"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Objetos\",\n  \"order\": 2\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"section\", null, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Estructura general\"), mdx(\"table\", {\n    parentName: \"section\"\n  }, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Nombre\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Descripci\\xF3n\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tipo\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Requerimientos\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"from\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tel\\xE9fono (con c\\xF3digo de pa\\xEDs) del que se enviar\\xE1 el mensaje.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Obligatorio.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"to\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"ul\", null, mdx(\"li\", null, \"Tel\\xE9fono (con c\\xF3digo de pa\\xEDs) del cliente al que se le env\\xEDa el mensaje. Se admiten signos m\\xE1s (+), guiones (-), par\\xE9ntesis ((,)) y espacios.\"), mdx(\"li\", null, \"Business-scoped user ID's (BSUID).\"))), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Obligatorio.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"type\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"El valor por defecto es \\\"text\\\".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Obligatorio.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"text\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Texto del mensaje.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"ul\", null, mdx(\"li\", null, \"Obligatorio.\"), mdx(\"li\", null, \"La longitud m\\xE1xima es de 1,024 caracteres.\")))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"category\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Categor\\xEDa de activaci\\xF3n de Direct Send. Valor v\\xE1lido: utility. Enviar service se considera fuera de Direct Send y sigue el comportamiento de env\\xEDo existente.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"ul\", null, mdx(\"li\", null, \"Obligatorio para usar Direct Send API.\"), mdx(\"li\", null, \"Si se omite, se trata como un env\\xEDo normal de mensaje.\")))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"ttl_seconds\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Permite configurar el TTL; se agrega debajo del campo category. Para utility: \", mdx(\"ul\", null, mdx(\"li\", null, \"30 d\\xEDas predeterminados.\"), mdx(\"li\", null, \"M\\xEDnimo 30 segundos.\"), mdx(\"li\", null, \"M\\xE1ximo 43,200 segundos (12 horas).\"))), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Opcional.\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"a\", {\n    href: \"/whatsapp/direct_send/objects#h-objetodirect_send_config\"\n  }, \"direct_send_config\")), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Objeto para atribuir los mensajes a un template con nombre expl\\xEDcito.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Objeto\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Opcional.\"))))), mdx(\"section\", null, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Atribuci\\xF3n de template\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Por defecto, Direct Send hace matching autom\\xE1tico del mensaje contra las plantillas existentes o crea una nueva con un nombre generado por Meta. Si se necesita que todos los mensajes de un mismo flujo se atribuyan siempre al mismo template, se puede fijar un nombre expl\\xEDcito.\")), mdx(\"section\", null, mdx(\"h4\", {\n    parentName: \"section\"\n  }, \"Objeto direct_send_config\"), mdx(\"table\", {\n    parentName: \"section\"\n  }, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Nombre\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Descripci\\xF3n\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Tipo\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Requerimientos\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"template_name\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Nombre expl\\xEDcito del template a crear o reutilizar. \\xDAnico por WABA. Solo es v\\xE1lido junto con category: \\\"utility\\\".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"String\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"ul\", null, mdx(\"li\", null, \"Opcional.\"), mdx(\"li\", null, \"Solo min\\xFAsculas, n\\xFAmeros y gui\\xF3n bajo (^\", \"[a-z0-9_]\", \"{1,512}$).\"))))))), mdx(\"section\", null, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Formatos adicionales soportados por Direct Send\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Adem\\xE1s del texto, Direct Send soporta los siguientes mensajes interactivos. En ambos casos el type es interactive y se env\\xEDan con category igual a utility. Ver ejemplos en \", mdx(\"a\", {\n    href: \"/whatsapp/direct_send/examples\"\n  }, \"Ejemplos\"), \".\")), mdx(\"section\", null, mdx(\"h4\", {\n    parentName: \"section\"\n  }, \"Botones combinados (CTA URL + respuesta)\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Un mismo mensaje interactivo puede combinar botones de URL (cta_url) y de respuesta (reply), definidos en el arreglo buttons del objeto replyButtons:\"), mdx(\"ul\", {\n    parentName: \"section\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Hasta 10 botones en total.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"M\\xE1ximo 2 botones de tipo cta_url.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Los botones cta_url deben ir antes que los reply en el arreglo.\"))), mdx(\"section\", null, mdx(\"h4\", {\n    parentName: \"section\"\n  }, \"Bot\\xF3n de llamada de voz (voice_call)\"), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"El bot\\xF3n de llamada de voz de WhatsApp (\\\"Llamada en WhatsApp\\\") permite a un usuario tocar para iniciar una llamada de voz de WhatsApp al n\\xFAmero de tel\\xE9fono del negocio. Se env\\xEDa como un mensaje interactivo de formato libre con la etiqueta category: \\\"utility\\\" de nivel superior y un solo bot\\xF3n de llamada, definido en el objeto voice_call. Los campos display_text y ttl_minutes se aplican al bot\\xF3n de llamada de voz.\"), mdx(\"b\", null, \"Nota:\"), \" para usar esta funci\\xF3n el n\\xFAmero debe tener habilitado WhatsApp Calling en WhatsApp Manager; de lo contrario, Meta responde el error 138000 (\\\"Calling API not enabled\\\") aunque el JSON sea correcto.\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#estructura-general","title":"Estructura general"},{"url":"#atribución-de-template","title":"Atribución de template","items":[{"url":"#objeto-direct_send_config","title":"Objeto direct_send_config"}]},{"url":"#formatos-adicionales-soportados-por-direct-send","title":"Formatos adicionales soportados por Direct Send","items":[{"url":"#botones-combinados-cta-url--respuesta","title":"Botones combinados (CTA URL + respuesta)"},{"url":"#botón-de-llamada-de-voz-voice_call","title":"Botón de llamada de voz (voice_call)"}]}]},"timeToRead":1,"parent":{"__typename":"File","relativePath":"whatsapp/direct_send/objects.md","fields":{"gitLogLatestAuthorName":"Jimena Acevedo - JC","gitLogLatestAuthorEmail":"jimena-acevedo@192.168.1.67","gitLogLatestDate":"3 days ago"}},"frontmatter":{"metaTitle":null,"showMetadata":null,"editable":null,"showPreviousNext":null,"showToc":null}},"gitBranch":{"name":"DEV"},"gitCommit":{"hash":"456be35532012cb399c2f67dcdb4de107acfb5bc","date":"2026-10-19 05:45"}},"pageContext":{"id":"6279d300-cecc-51d4-8562-0c8ca3d884ec"}},"staticQueryHashes":["12478684","12478684","2882937274","2882937274","353167761","353167761"]}