Comandos de Slack Slash para crear solicitudes en Targetprocess
Advertencia: La aplicación Slack debe configurarse para añadir comandos de barra.
- Vaya a la página Reglas de automatización y cree una nueva regla de automatización.
- Selecciona «Webhook entrante» como desencadenante de la regla.

- Seleccione «Otro» y pulse «Crear nuevo webhook entrante»:

- Copia generada, la WebhookUrl, necesitaremos más adelante.
- En la página Slack App Build, selecciona Slash Commands en el menú de la izquierda:

- Pulsa «Crear nuevo comando» y rellena el formulario como se muestra en la siguiente captura de pantalla:

En el campo URL Solicitud, copie WebhookUrl desde su regla de automatización (paso 4). La sugerencia de uso muestra cómo debe verse el comando. En nuestro caso, utilizamos el siguiente formato: /add [Nombre] [ ProjectID ] Los corchetes y el orden de los parámetros son obligatorios, ya que los utilizamos para reconocer los parámetros.
- Vuelve a tu regla de automatización, selecciona «Ejecutar JavaScript función» en la sección «Entonces» y copia el siguiente JavaScript código:

// ___PROTECTED_1___ function lets the script get access to various services and APIs.
// For example ___PROTECTED_2___ service lets the script make queries to Targetprocess API v2.
const api = context.getService("targetprocess/api/v2");
const utils = require("utils");
const http = require("http");
//CHANGE AUTHENTICATION METHOD BELOW
const headers = {Authorization: "YOUR TOKEN OR BASIC AUTH"};
const text = args.Body.text;
const regExp = /\[(.*?)\]/g;
const matches = [...text.match(regExp)];
console.log(matches);
const name = matches[0].substring(1, matches[0].length - 1);
const projectid = matches[1].substring(1, matches[1].length - 1);
const request = await http.postAsync(args.AccountBaseUrl + "api/v1/Requests?format=json", {
headers: headers,
body: {
"Project": { "id": projectid },
"Name": name
}
})
.then(responce => JSON.parse(responce))
.then(responce => {
if (!responce) {
return http.postAsync(args.Body.response_url,
{
body: {
text: ___PROTECTED_3___
}
}
)
}
else return http.postAsync(args.Body.response_url,
{
body: {
text: ___PROTECTED_4___
}
}
)
})
.catch(error => {
console.log(error);
return http.postAsync(args.Body.response_url,
{
body: {
text: ___PROTECTED_5___
}
}
)
})
- Ahora, si ejecutas /add [test] [12345], crearemos una solicitud con el nombre «test» en el proyecto con el id 12345.
Advertencia: Los parámetros pueden añadirse, eliminarse o codificarse de forma fija. Pero sería necesario modificar el código.
En Slack obtendríamos las siguientes respuestas:
