Clientes que te escriben
con todo explicado.
El asistente de MadridBikes, ahora también en la web de tu taller. Se pone con una línea de código, y en el mismo panel ves tus clientes y los que te mandamos nosotros.
Gratis hasta el 31 de diciembre de 2026.
Para qué sirve.
-
Te escriben sabiendo lo que quieren
Antes de mandarte el WhatsApp, el cliente te dice qué bici tiene, qué le pasa, para cuándo la quiere y de qué barrio es. Le puedes contestar directamente con un precio o una hora.
-
No se te olvida ninguna
Todo queda apuntado en tu panel. Si una solicitud lleva un día sin respuesta, te mandamos un correo para recordártelo.
-
Respuestas ya escritas
Para lo que contestas mil veces: que te ha llegado, que te mande una foto, el presupuesto, que la bici ya está lista. Pulsas y se abre WhatsApp con el texto puesto.
-
Turistas y extranjeros
El cliente puede contestar en español, inglés, alemán, francés o italiano. A ti siempre te llega en español.
-
Ves de dónde viene cada cliente
En el panel salen por separado los clientes que te mandamos nosotros y los que te llegan por tu web, por teléfono o en la tienda, con lo que has cobrado de cada uno. Los lunes te mandamos el resumen.
-
Tu web se queda como está
Solo hay que pegar una línea. Los botones de WhatsApp siguen en su sitio. Lo único que cambia es que antes de abrir WhatsApp sale el asistente.
Pruébalo como cliente.
Así lo ve alguien que entra en tu web. Es solo una prueba, no se guarda ni se manda nada.
En tu web, al final se abre tu WhatsApp con el mensaje ya escrito. Al mismo tiempo te llega un correo y la solicitud aparece en tu panel (y en tu programa de gestión, si lo tienes conectado).
Cómo se instala.
La línea, con tu identificador ya puesto, la tienes en tu panel, en «Tu web y API». Es esta:
<script src="https://madridbikes.com/w.js" data-taller="TU-ID" async></script> -
WordPress
Instala el plugin gratuito WPCode. En «Fragmentos de código» → «Cabecera y pie de página», pega la línea en «Pie de página» y guarda.
-
Wix
Ajustes → Avanzado → Código personalizado → Añadir código. Pega la línea, elige «Todas las páginas» y «Cuerpo, final».
-
Shopify
Tienda online → Temas → Editar código → theme.liquid. Pega la línea justo antes de </body>.
-
Otra web
Pega la línea antes de </body> en todas las páginas. Si la web te la lleva otra persona, pásasela a ella.
Opciones
data-tallerTu identificador. Obligatorio. Lo tienes en tu panel, en «Tu web y API». data-langes, en, de, fr o it. Si no lo pones, se usa el idioma de la página. data-button="off"Sin botón flotante propio: el asistente se abre solo desde tus botones. data-whatsapp="off"Tus botones de WhatsApp abren WhatsApp directamente, sin pasar por el asistente. data-position="left"Botón flotante a la izquierda. data-label="Pide cita"Texto del botón flotante. El asistente dentro de una página
Por ejemplo en tu página de contacto o de reparaciones. Con data-service empieza ya en ese servicio (reparacion, montaje, compra o alquiler).
<div data-madridbikes data-service="reparacion"></div> Cualquier botón o enlace de tu web puede abrirlo:
<button data-madridbikes-open="montaje">Montar mi bici</button> Si tienes programa de gestión.
Si ya usas un programa para el taller, o quieres conectar tus propias herramientas, hay una API REST con JSON. Cada taller solo ve y cambia sus propias solicitudes.
Clave
Tu clave de API empieza por mbk_ y está en tu panel, en «Tu web y API». Va en la cabecera Authorization: Bearer mbk_…. Es distinta de la clave con la que entras al panel. Úsala solo desde tu servidor o tu programa, nunca en la web, y cámbiala en el panel si alguien la ha visto.
Llamadas
/api/v1/leadsTus solicitudes, las más recientes primero. Filtros: since (fecha ISO, devuelve lo que ha cambiado desde entonces), status, origin (red o propio), limit (1 a 500, por defecto 100). /api/v1/leads?id=MB-…Una solicitud. /api/v1/leadsRegistra un cliente tuyo (teléfono, tienda, otro programa). Campos: name y phone obligatorios; service, text, zip, channel, status, amount, notes, pickup, lang opcionales. Cuenta como cliente propio. /api/v1/leadsCambia una solicitud: id obligatorio; status, amount, notes, followUp (AAAA-MM-DD o null) y event ({kind: nota|llamada|whatsapp|email, text}) opcionales. curl https://madridbikes.com/api/v1/leads?status=nuevo \
-H "Authorization: Bearer mbk_TU_CLAVE"
curl -X PATCH https://madridbikes.com/api/v1/leads \
-H "Authorization: Bearer mbk_TU_CLAVE" \
-H "Content-Type: application/json" \
-d '{"id":"MB-MH3K2P9QAB","status":"ganado","amount":45}' Una solicitud
origin dice quién trajo al cliente: red si llegó por madridbikes.com, propio si llegó por tu web, tu API o lo apuntaste tú. answers son sus respuestas, ya en español. Los datos de abajo son de ejemplo.
{
"id": "MB-MH3K2P9QAB",
"createdAt": "2026-11-04T09:12:44.512Z",
"updatedAt": "2026-11-04T09:30:02.117Z",
"origin": "propio",
"channel": "widget",
"status": "nuevo",
"amount": null,
"service": "reparacion",
"serviceLabel": "Reparar mi bici",
"pickup": false,
"lang": "en",
"customer": { "name": "Ana", "phone": "+34 600 000 000", "whatsapp": "https://wa.me/34600000000" },
"zip": "28032",
"zone": "este",
"answers": { "bici": "Ciudad o paseo", "problema": "Frenos. Chirrían al frenar", "cuando": "Esta semana" },
"notes": "",
"followUp": null,
"events": [{ "at": "2026-11-04T09:12:44.512Z", "kind": "creado", "text": "Solicitud del asistente en la web del taller" }]
} nuevoAcaba de llegar
contactadoYa hablaste con el cliente
presupuestoLe has pasado precio
ganadoHiciste el trabajo (anota el importe)
perdidoNo salió
Errores
Siempre JSON con ok: false, un código y una explicación: 400 (datos que faltan o no valen), 401 (clave), 404 (no es de tu taller), 405 (método), 500 (error nuestro; vuelve a intentarlo).
Aviso a tu sistema.
Si pones una dirección https en el panel (webhook), te mandamos un POST con la solicitud entera cada vez que entra una nueva o alguien la cambia en el panel. Lo que cambias tú por la API no manda aviso, así no se forma un bucle.
lead.created y lead.updated{ "event": "lead.created", "at": "…", "lead": { …la misma solicitud que da la API… } }X-MadridBikes-Event y X-MadridBikes-Signature: sha256=… (HMAC SHA-256 del cuerpo con tu secreto)Contesta 2xx en menos de 4 segundos. Cada envío queda apuntado en el diario de la solicitud con su resultado.Comprueba siempre la firma antes de fiarte del aviso. En Node:
import crypto from 'node:crypto';
// rawBody: el cuerpo tal cual llega, sin convertirlo a JSON antes
function firmaValida(rawBody, cabecera, secreto) {
const esperada = 'sha256=' + crypto.createHmac('sha256', secreto).update(rawBody).digest('hex');
return typeof cabecera === 'string' && cabecera.length === esperada.length &&
crypto.timingSafeEqual(Buffer.from(cabecera), Buffer.from(esperada));
} En PHP (por ejemplo, dentro de WordPress):
<?php
$raw = file_get_contents('php://input');
$esperada = 'sha256=' . hash_hmac('sha256', $raw, getenv('MADRIDBIKES_SECRET'));
if (!hash_equals($esperada, $_SERVER['HTTP_X_MADRIDBIKES_SIGNATURE'] ?? '')) {
http_response_code(401);
exit;
}
$evento = json_decode($raw, true); // ['event' => 'lead.created', 'lead' => [...]]
http_response_code(200); Tus datos.
Son para ti
Lo que llega por tu web va a tu taller y a nadie más. MadridBikes solo lo guarda, por encargo tuyo, para que el servicio funcione.
Te los puedes llevar
Desde el panel lo bajas todo en CSV, y por la API lo puedes leer cuando quieras.
Solo lo necesario
El asistente pide nombre, teléfono, barrio y qué le pasa a la bici. No usa cookies de publicidad.
Lo que nos preguntan.
¿Cuánto cuesta? +
Hasta el 31 de diciembre de 2026, nada. Antes de que acabe la prueba te decimos cuánto costará en 2027, y si no te convence, quitas la línea de tu web.
¿De quién son los clientes que llegan por mi web? +
Son tuyos. Lo que entra por tu web o por tu API va siempre a tu taller. No se pasa a otros talleres y no lo contamos como un cliente que te hayamos traído nosotros.
¿Necesito saber programar? +
No. Para el asistente solo hay que pegar una línea, y más arriba tienes los pasos para WordPress, Wix y Shopify. La API y el webhook son para quien ya usa un programa de gestión.
¿Me siguen llegando WhatsApps normales? +
Sí. Al final el asistente abre tu WhatsApp con el mensaje escrito, así que hablas con el cliente donde siempre. Solo que ya sabes qué quiere, y además queda apuntado en el panel.
¿Y si el asistente no carga? +
Entonces tu web y tus botones de WhatsApp funcionan como siempre, como si no hubiera nada instalado.
¿Puedo usar el panel sin poner nada en mi web? +
Sí. Puedes apuntar a mano los clientes que te llaman, te escriben o entran en la tienda, y usar igual las respuestas, los avisos y el resumen de los lunes.