Soporte para sitios web

SupDesk Team

Añade soporte a tu web con una etiqueta de script

SupDesk se integra sin fricciones en tu web con una única etiqueta de script. Inserta tableros de feedback, chat en vivo y un centro de ayuda — todo personalizable para que combine con tu marca.

Inicio rápido: widget de JavaScript

Añade este script a tu web:

<script
  src="https://cdn.supdesk.app/widget.js"
  data-portal="https://feedback.yourapp.com"
  defer
></script>

El widget se carga automáticamente en la esquina inferior derecha de tus páginas.

Ejemplos por framework

React:

import { useEffect } from "react";
 
function SupportWidget() {
  useEffect(() => {
    const script = document.createElement("script");
    script.src = "https://cdn.supdesk.app/widget.js";
    script.dataset.portal = "https://feedback.yourapp.com";
    script.async = true;
    document.body.appendChild(script);
    return () => document.body.removeChild(script);
  }, []);
 
  return null;
}

Vue 3:

<script setup>
import { onMounted, onUnmounted } from "vue";
 
onMounted(() => {
  const script = document.createElement("script");
  script.src = "https://cdn.supdesk.app/widget.js";
  script.dataset.portal = "https://feedback.yourapp.com";
  document.body.appendChild(script);
});
 
onUnmounted(() => {
  const script = document.querySelector('script[src*="supdesk.app"]');
  if (script) script.remove();
});
</script>

WordPress:

// Add to your theme's functions.php
function add_supdesk_widget() {
}
add_action('wp_footer', 'add_supdesk_widget');

O usa el plugin del repositorio de plugins de WordPress.

Next.js (App Router):

export default function Layout({ children }) {
  useEffect(() => {
    const script = document.createElement("script");
    script.src = "https://cdn.supdesk.app/widget.js";
    script.dataset.portal = "https://feedback.yourapp.com";
    document.body.appendChild(script);
    return () => document.body.removeChild(script);
  }, []);
 
  return <>{children}</>;
}

Funciones del portal web

Tablero de feedback con votación Los usuarios publican ideas, votan sugerencias y siguen lo que viene. Perfecto para hojas de ruta de producto.

Integración de chat en vivo Un widget que aparece en tus páginas. Cuando los usuarios chatean, se convierte en un mensaje en tu misma bandeja de entrada que los emails y los mensajes del portal.

Widget de centro de ayuda Artículos de base de conocimiento buscables, integrados en tu página de soporte o por todo tu sitio.

Dominios personalizados Sirve tu portal desde support.yourapp.com con SSL automático y branding.

Personalización del widget

Configura la apariencia del widget:

window.SupDesk = {
  portal: "https://feedback.yourapp.com",
  theme: "light", // or 'dark'
  position: "bottom-right", // or 'bottom-left'
  color: "#3B82F6", // match your brand
};

¿Listo para añadir soporte a tu web?

Empieza gratis. Sin tarjeta de crédito. Regístrate en supdesk.app

SDK del lado del servidor para la integración de backend

Ejemplos de código en vivo extraídos del repositorio de GitHub de cada SDK.

RabinApps/supdesk-nodeJavaScript / TypeScript
import { SupDesk } from "supdesk";

const supdesk = new SupDesk({ apiKey: process.env.SUPDESK_API_KEY! });

// Auto-pages: iterating walks every page for you.
for await (const submission of await supdesk.submissions.list({
  status: "open",
})) {
  console.log(submission.title);
}

await supdesk.submissions.create({
  type: "bug",
  title: "Export button does nothing",
  email: "user@example.com",
  body: "Clicking Export on the reports page has no effect.",
});
RabinApps/supdesk-pythonPython
from supdesk import SupDesk

supdesk = SupDesk()  # api_key=... or $SUPDESK_API_KEY

# Auto-pages: iterating walks every page for you.
for submission in supdesk.submissions.list(status="open"):
    print(submission.title)

supdesk.submissions.create(
    type="bug",
    title="Export button does nothing",
    email="user@example.com",
    body="Clicking Export on the reports page has no effect.",
)
RabinApps/supdesk-goGo
import "github.com/rabinapps/supdesk-go/supdesk"

client, err := supdesk.New(os.Getenv("SUPDESK_API_KEY"))
if err != nil {
    log.Fatal(err)
}

page, err := client.Submissions.List(ctx, supdesk.SubmissionsListParams{
    Status: ptr("open"),
})
if err != nil {
    return err
}
// Auto-pages: All walks every page for you.
for sub, err := range page.All(ctx) {
    if err != nil {
        return err
    }
    fmt.Println(sub.Title)
}

_, err = client.Submissions.Create(ctx, supdesk.SubmissionsCreateParams{
    Type:  supdesk.SubmissionTypeBug,
    Title: "Export button does nothing",
    Email: "user@example.com",
    Body:  "Clicking Export on the reports page has no effect.",
})
RabinApps/supdesk-dartDart
import 'dart:io';
import 'package:supdesk/supdesk.dart';

final supdesk = SupDesk(apiKey: Platform.environment['SUPDESK_API_KEY']!);

// Auto-pages: the stream walks every page for you.
final page = await supdesk.submissions.list(status: PostStatus.open);
await for (final submission in page.autoPaging()) {
  print(submission.title);
}

await supdesk.submissions.create(
  type: SubmissionType.bug,
  title: 'Export button does nothing',
  email: 'user@example.com',
  body: 'Clicking Export on the reports page has no effect.',
);

Categorías

SupportWebsite

Etiquetas

#support#website#widget#javascript#feedback