Pregunta

He borrado artículos de mi centro de ayuda. ¿Puedo redirigir el tráfico de mis artículos eliminados del centro de ayuda?

Respuesta

Descargo de responsabilidad: Este artículo se ofrece con fines de instrucción únicamente. Zendesk no ofrece soporte para el código ni lo garantiza. Zendesk tampoco puede dar soporte a tecnologías de terceros como JavaScript, jQuery o CSS. Publique cualquier problema en la sección de comentarios o intente buscar una solución en Internet.

Sí, independientemente del origen de ese tráfico, puede redireccionar automáticamente a los usuarios que visitan estas URL a páginas más útiles.

Cómo acceder al archivo de JavaScript personalizado de su centro de ayuda

Para implementar estas soluciones, acceda al archivo de JavaScript de su centro de ayuda:

  1. Inicie sesión en su cuenta de Zendesk Support como administrador. Haga clic en el ícono de Productos de Zendesk () en la barra superior y luego seleccione Guide.
  2. En la esquina superior derecha de Zendesk Guide, seleccione Administrador de Guide.
  3. Haga clic en el ícono Personalizar diseño () en la barra lateral.
  4. Haga clic en Personalizar en su tema.
  5. Haga clic en Editar código.
  6. Haga clic en el archivo script.js.

Edit_Javacript_In_Theme_.gif

Nota: Las soluciones contenidas en este artículo apuntan a los redireccionamientos de JavaScript. Estos redireccionamientos pueden afectar la clasificación de búsqueda de Google. Por esta razón, no son adecuados para un despliegue a largo plazo o a gran escala. En su lugar, si tiene un desarrollador, use la API de reglas de redireccionamientopara los redireccionamientos de página en el centro de ayuda.

Consulte las secciones a continuación para ver ejemplos de cómo implementar flujos de trabajo de redireccionamiento comunes: 

  • Ejemplo 1: Redireccionamiento de un grupo de artículos eliminados a artículos nuevos equivalentes
  • Ejemplo 2: Redireccionamiento de artículos no traducidos a un idioma existente
  • Ejemplo 3: Redireccionamiento de todos los artículos eliminados a una página específica
  • Ejemplo 4: Generalizar o especificar qué artículos (o publicaciones de la comunidad) redirigen a una página en particular

Ejemplo 1: Redireccionamiento de un grupo de artículos eliminados a artículos nuevos equivalentes

En este ejemplo, un centro de ayuda tiene un conjunto de páginas antiguas y borradas, y cada una corresponde a una página nueva a la que estamos redirigiendo. Dentro de las primeras líneas del archivo JavaScript, verá una línea que dice:

$(document).ready(function() {
Nota: Esta línea podría faltar si usa una versión reciente del tema Copenhagen. En este caso, coloque el código fuera de los siguientes agentes de escucha.
window.addEventListener("DOMContentLoaded", () => {
}

Inserte el siguiente código directamente encima de esa línea:

  var oldIds = ["217352077", "216552968"];
  var newIds = ["216553098", "216552958"];

  for (var i = 0; i < oldIds.length; i++){
    if (window.location.href.indexOf(oldIds[i]) > -1) {
      window.location.href = 'https://YOURSUBDOMAIN.zendesk.com/hc/en-us/articles/' + newIds[i]; 
    }
  }

Antes de guardarlo, edite la parte del código que muestra las ID de los artículos antiguos y las ID de los artículos nuevos:

  var oldIds = ["217352077", "216552968"];
  var newIds = ["216553098", "216552958"];

Agregue las ID de los artículos en lugar de las anteriores. Para buscar una ID de artículo, mire el artículo en su navegador. La URL será parecida a la siguiente:

https://[YOURSUBDOMIAN].zendesk.com/hc/en-us/articles/203664386-Help-Center-guide-for-agents-and-end-users

En la URL de arriba, la ID del artículo es 203664386.

Para redirigir correctamente con esta solución, las ID de artículos deben estar en la misma posición dentro de la matriz. Así que en este caso, un artículo cuya URL contenga 217352077 ahora se redirigirá a 216553098. El artículo que contiene 216552968 ahora redirigirá a 216552958.

Asegúrese de guardar estas ID entre comillas, como se muestra arriba y separadas por una coma en cada caso. Se vería así:

  var oldIds = ["217352077", "216552968", "216552902"];
  var newIds = ["216553098", "216552958", "216552944"];

A continuación, edite la dirección URL en esta línea:

window.location.href = 'https://YOURSUBDOMAIN.zendesk.com/hc/en-us/articles/' + newIds[i]; 

Use su subdominio de Zendesk o, alternativamente, use la URL completa del centro de ayuda como aparece normalmente en su centro de ayuda si está autorizada (con “etiqueta blanca”) para su URL. No elimine el final de la línea: "+ newIds[i];". Con ella, el bucle anexa su ID de artículo nuevo a su URL. Sin ella, el código no funcionará.

Ejemplo 2: Redireccionamiento de artículos no traducidos a un idioma existente

En este ejemplo, el contenido del centro de ayuda existe en varios idiomas. Si todo el contenido existe en inglés, pero solo parte en francés y alemán. Los usuarios que intenten acceder a esos artículos en francés o alemán verán una página de error. Este código redirige a los visitantes fuera de la página de error al artículo existente en inglés.

var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;
var isArticle = window.location.href.indexOf('/articles/') > -1;
var isErrorPage = $(".error-page").length > 0;


if ( isArticle && notDefaultLanguage && isErrorPage ) {
    var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");
    window.location.href =  newURL;
}  

En este ejemplo, solo se necesita hacer una pequeña cantidad de personalización. Si el idioma predeterminado del centro de ayuda no es inglés, reemplace ese idioma. En el código, en-us aparece en dos lugares:

var notDefaultLanguage = window.location.href.indexOf('/en-us/') == -1;

y:

var newURL = window.location.href.replace(/(.*\/hc\/)([\w-]+)(\/.*)/, "$1en-us$3");

Reemplace en-us en estas dos líneas con su código de idioma predeterminado. Busque el código de idioma predeterminado en el URL de los artículos principales. Por ejemplo, un URL para una página del centro de ayuda en francés se verá como en el ejemplo a continuación:

https://[YOURSUBDOMAIN].zendesk.com/hc/fr/articles/214943538

Ejemplo 3: Redireccionamiento de todos los artículos eliminados a una página específica

En este ejemplo, un centro de ayuda redirige todos los artículos borrados (sin incluir las publicaciones de la comunidad) a un artículo en particular.

En las primeras líneas del archivo JavaScript, verá una línea que dice:

$(document).ready(function() {
Nota: Esta línea podría faltar si usa una versión reciente del tema Copenhagen. En este caso, ajuste el código sugerido en un nuevo agente de escucha:
window.addEventListener("DOMContentLoaded", () => {
}

En este caso, inserte el siguiente código directamente debajo de esa línea. Nota importante, insertar lo anterior no funcionará en este ejemplo:

if ( window.location.href.indexOf('articles') > -1 && $(".not-found").length > 0 ) {
window.location.href = 'https://[YOURSUBDOMAIN].zendesk.com/hc/en-us/articles/216553068-error-redirect';
}

En este script, reemplace el URL con el URL del artículo al que se redirigirá el centro de ayuda.

Esta solución solo funcionará si garantizamos que una clase .not-found existe en su página de error. 

En la barra gris donde aparece el vínculo JS, haga clic en el vínculo Página de inicio. Busque y seleccione Página de error en el menú desplegable. En la página de error, encontrará un área que comienza con el código {{#is error 'not_found'}} . Se verá así:

{{#is error 'not_found'}}
<h2>{{t 'nonexistent_page'}}</h2>
<p>{{t 'mistyped_address_or_moved_page'}}</p>
{{/is}}

Agregue una nueva clase al elemento h2 o a cualquier elemento dentro del conjunto de datos 'not_found' #is para que se vea así:

<h2 class="not-found">{{t 'nonexistent_page'}}</h2>

Ejemplo 4: Cómo generalizar o especificar qué artículos (o qué publicaciones de la comunidad) redirigen a una página específica

Puede entrar más en detalle o generalizar la solución modificando la instrucción if. Por ejemplo, para redirigir desde cualquier artículo o publicación de la comunidad eliminados, cambie la instrucción if a la siguiente:

if ( $(".not-found").length > 0 )

Como alternativa, para redirigir solo los artículos borrados que tienen la palabra buttermilk en el título, cambie la declaración if a:

if ( window.location.href.indexOf('buttermilk') > -1 && $(".not-found").length > 0 )

A diferencia de la primera solución presentada, estas soluciones primero mostrarán brevemente la página de error y, luego, harán el redireccionamiento a la página nueva. Esto se debe a que usa JavaScript para buscar un elemento dentro de la página, que debe cargarse primero.

Tecnología de Zendesk