SocialHub.AI
Centro para desarrolladores · Formulario de registro web

Recopile registros desde su propio sitio web.

Tus códigos QR en tienda ya capturan miembros. Lo mismo ocurre en la web: un formulario HTML que puedes copiar y pegar en cualquier página. Se envía a la misma canalización de captura , por lo que un registro en el sitio web obtiene el mismo registro de consentimiento, cupón de bienvenida, protección contra bots y gestión CCPA que un escaneo de código QR. Sin clave, sin SDK, sin backend.

01 — Cómo funciona

Un formulario, envío a un único punto final

El formulario POST envía un pequeño cuerpo JSON al punto final de captura de su tienda. El punto final es compatible con CORS, por lo que el formulario funciona desde su propio dominio; no se requiere código proxy ni de servidor en su lado:

POST https://flash.socialhub.ai/api/flash/capture/YOUR_SHORT_CODE

Obtenga su código corto

Cada código QR de tienda tiene un código corto (Tiendas → Abrir una tienda → Códigos QR). Úsalo en la URL del punto final: identifica la tienda y la marca, sin necesidad de clave.

Pega el formulario

Arrastre el fragmento autocontenido a cualquier página. Renderiza el formulario, incluye las defensas del bot y publica al enviarlo.

Flash hace el resto

Se crea o actualiza un contacto unificado, se registra el consentimiento y, si el código QR tiene un cupón de bienvenida, se emite, exactamente como una captura en la tienda.

02 — Instalación

Configure YOUR_SHORT_CODE y péguelo.

Autocontenido: sin scripts ni dependencias externas. Personalízalo para que coincida con tu sitio web; conserva el honeypot oculto website y el _t timestamp, ya que son las defensas contra bots. También puedes generar este fragmento para una tienda específica en Tiendas → Códigos QR → “Insertar en tu sitio web”.

index.html
<!-- SocialHub signup form — paste anywhere in your site's HTML -->
<form class="flash-signup" style="max-width:340px;font-family:sans-serif">
  <input type="email" name="email" required placeholder="Email address"
    style="width:100%;padding:10px;margin-bottom:8px;border:1px solid #ccc;border-radius:6px" />
  <label style="display:block;font-size:13px;margin-bottom:8px">
    <input type="checkbox" name="opt_in" checked /> Send me offers and updates
  </label>
  <!-- honeypot: real people never fill this; bots do -->
  <input type="text" name="website" tabindex="-1" autocomplete="off"
    style="position:absolute;left:-9999px" aria-hidden="true" />
  <button type="submit" style="width:100%;padding:10px;border:0;border-radius:6px;background:#111;color:#fff;cursor:pointer">Sign up</button>
</form>
<script>
(function () {
  var f = document.currentScript.previousElementSibling;
  var t = Date.now();                                  // render time — the min-fill-time bot check
  f.addEventListener("submit", function (e) {
    e.preventDefault();
    fetch("https://flash.socialhub.ai/api/flash/capture/YOUR_SHORT_CODE", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        email: f.email.value,
        opt_in: f.opt_in.checked,
        _t: String(t),
        website: f.website.value                       // honeypot value
      })
    })
      .then(function (r) { return r.json(); })
      .then(function (d) { f.innerHTML = d && d.success ? "<p>Thanks — you're signed up!</p>" : "<p>Sorry, something went wrong.</p>"; })
      .catch(function () { f.innerHTML = "<p>Sorry, something went wrong.</p>"; });
  });
})();
</script>
03 — Solicitar contrato

Cuerpo JSON

Enviar application/json. La respuesta es { success: true, couponCode?, couponExpiresAt?, isRepeat } si se acepta, o success:false con un código de error en caso contrario.

CampoTipoNotas
emailstringCorreo electrónico del suscriptor. Obligatorio.
opt_inbooleanConsentimiento de marketing desde su casilla de verificación. Grabado con la captura.
_tstringÉpoca en milisegundos al renderizarse el formulario: activa la comprobación del bot para el tiempo mínimo de llenado. Obligatorio.
websitestring?Campo Honeypot. Déjelo oculto y vacío; un valor rellenado se interpreta como un bot.
fpstring?Huella digital opcional del dispositivo que generas.
04 — Protección

Defensas contra bots integradas

El código corto es público (está en el código fuente de tu página), por lo que el punto final se protege en el servidor, con las mismas protecciones que el flujo de captura en tienda:

Limitación de velocidad · siempre activo

El punto final limita la cantidad de registros que puede enviar una fuente, por lo que un código corto copiado no puede inundar su lista.

Honeypot + sincronización

El campo oculto del sitio web y el render _t timestamp capturan los envíos programados que rellenan campos ocultos o se envían instantáneamente.

Correo electrónico desechable + guardias duplicadas

Se rechazan los dominios desechables y se eliminan los correos electrónicos repetidos en la misma tienda, en lugar de contarlos dos veces.

Honesto sobre los límites

Éstos elevan el listón de una forma pública; para la ingesta de alta sensibilidad, envíe de servidor a servidor a través del API autenticado.

05 — Consentimiento y privacidad

Capturar el consentimiento, no solo una dirección

Se registra la suscripción.

El opt_in La casilla de verificación se almacena con la captura, por lo que posteriormente se envía información sobre si el visitante aceptó recibir comunicaciones de marketing.

CCPA-consciente

Mismo manejo de la divulgación que en el flujo de QR: los visitantes de California reciben el aviso requerido en el servidor.

No hay secretos en la página.

Solo se expone el código corto público. No hay ninguna clave API que pueda filtrarse en su sitio.

Primero, su banner de consentimiento

Si utiliza un gestor de consentimiento, restrinja el acceso al formulario para que solo recopile información donde tenga derecho.

Capture dondequiera que estén sus clientes

En la tienda a través de QR y ahora en su sitio web: cada registro llega al mismo perfil de miembro unificado.