---
title: "Make"
description: "Crea automatización de Twitter en Make para búsqueda de tweets, perfiles, tweets en tendencia, webhooks de plataforma y entregas seguras con cursor a través de TwexAPI."
---

Crea automatización de Twitter en Make con TwexAPI sin una app de X Developer. Busca tweets, consulta perfiles, lee tweets en tendencia y enruta filas normalizadas a Slack, Sheets, Airtable, Notion o un CRM.

TwexAPI usa una sola API key y la URL base REST `https://api.twexapi.io`.

## Elige un patrón de automatización en Make

<CardGroup cols={2}>
  <Card title="Módulo HTTP" icon="link">
    Llama a TwexAPI REST directamente desde el módulo HTTP de Make para escenarios programados o impulsados por webhook.
  </Card>

  <Card title="Webhook personalizado + entrega de agente" icon="webhook">
    Recibe JSON estricto de un agente compatible con MCP, luego enruta filas visualmente.
  </Card>

  <Card title="App personalizada privada" icon="boxes">
    Empaqueta módulos reutilizables cuando las mismas acciones de TwexAPI se repiten en escenarios.
  </Card>
</CardGroup>

La app nativa de X en Make fue descontinuada. TwexAPI sigue disponible a través de módulos HTTP o una app personalizada privada.

## Requisitos previos

* [API key de TwexAPI](https://twexapi.io/dashboard)
* Cuenta de organización de Make
* Módulo opcional de Slack, Sheets, Airtable, Notion o CRM
* Agente compatible con MCP opcional conectado a `https://api.twexapi.io/mcp`

## Conexión

Crea una conexión reutilizable que guarde la API key como campo de contraseña:

| Campo | Valor |
| --- | --- |
| Nombre del parámetro | `apiKey` |
| Header | `Authorization: Bearer {{apiKey}}` |
| URL base | `https://api.twexapi.io` |
| Prueba de conexión | `GET /balance` |

Usa `GET /balance` para validar la API key sin modificar datos.

## Patrón base del módulo HTTP

| Campo | Valor |
| --- | --- |
| Método | `GET` o `POST` del endpoint seleccionado |
| URL | `https://api.twexapi.io` más la ruta relativa |
| Header | `Authorization: Bearer YOUR_API_KEY` |
| Tipo de cuerpo | Raw JSON para solicitudes POST |

Maneja los códigos de estado de forma consistente:

<CardGroup cols={2}>
  <Card title="401" icon="key-round">
    Autenticación fallida. Verifica la API key de TwexAPI.
  </Card>

  <Card title="403" icon="shield-check">
    Acceso denegado. Verifica el acceso a la cuenta y los créditos.
  </Card>

  <Card title="429" icon="timer">
    Límite de tasa alcanzado. Espera antes de reintentar y conserva el cursor.
  </Card>

  <Card title="5xx" icon="triangle-alert">
    Servicio no disponible. Reintenta con backoff exponencial.
  </Card>
</CardGroup>

## Módulos iniciales

| Módulo | Ruta TwexAPI |
| --- | --- |
| Buscar tweets | `POST /twitter/advanced_search/page` |
| Obtener perfil de usuario | `GET /twitter/{screen_name}/about` |
| Buscar usuarios | `GET /twitter/search-user/{keyword}/{target_count}` |
| Obtener tendencias | `GET /twitter/global-trending/tweets` |
| Listar seguidores | `POST /v3/twitter/users/followers` |
| Crear tweet | `POST /twitter/tweets/create` |

### Ejemplo de búsqueda de tweets

```json
{
  "url": "https://api.twexapi.io/twitter/advanced_search/page",
  "method": "POST",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  "body": {
    "searchTerms": ["AI agents lang:en"],
    "sortBy": "Latest",
    "nextCursor": ""
  }
}
```

Itera sobre los tweets devueltos en un módulo Iterator posterior. Guarda `next_cursor` en un data store de Make cuando `has_next_page` o `has_more` sea verdadero.

## Entrega de salida

Los escenarios de Make deben emitir paquetes pequeños y estables en lugar de respuestas API sin procesar.

<CardGroup cols={2}>
  <Card title="Página de búsqueda de tweets" icon="search">
    Guarda la consulta; mapea `tweet_id`, `text`, `author_username`, `created_at`, `has_next_page` y `next_cursor`.
  </Card>

  <Card title="Filas de perfil de usuario" icon="user-round">
    Guarda `user_id`, `username`, `name`, conteos de seguidores y la entrada de consulta.
  </Card>

  <Card title="Filas de tendencias" icon="trending-up">
    Guarda país, tema, etiqueta de contenido y filas de tweets con metadatos del escenario.
  </Card>

  <Card title="Acciones de escritura" icon="send">
    Previsualiza con el [CLI](/sdks/cli) `--dry-run`. Las acciones de escritura requieren una cookie o `auth_token`.
  </Card>
</CardGroup>

## Receta 1: entrega de agente a Slack

1. Un webhook personalizado recibe JSON de entrega de TwexAPI de un agente MCP.
2. Iterator procesa cada elemento en `tweets`.
3. Filtra por palabras clave o autores.
4. El módulo de Slack publica `author_username`, `text` y URL pública.

Prompt sugerido para el agente:

```text
Use Twexapi MCP to fetch trending tweets for country United States, topic technology, content AI.
Return only JSON with route_used, country, topic, content, has_more, next_cursor, and tweets.
Each tweet must include tweet_id, author_username, text, created_at, like_count, reply_count, and retweet_count.
```

## Receta 2: búsqueda diaria a Google Sheets

1. Programa el escenario diariamente.
2. El módulo HTTP llama a `POST /twitter/advanced_search/page`.
3. Iterator recorre las filas de tweets.
4. Google Sheets Append Row escribe `tweet_id`, autor, texto, `created_at` y URL.

## Receta 3: exportación de seguidores a CRM

1. El módulo HTTP llama a `POST /v3/twitter/users/followers`.
2. Iterator procesa las filas de seguidores.
3. El CRM hace upsert por `user_id`.
4. El data store guarda `next_cursor` para la siguiente ejecución del escenario.

## Ramas del Router

| Rama | Condición | Acción |
| --- | --- | --- |
| Resultados vacíos | la longitud de `tweets` es `0` | Detén silenciosamente. |
| Alto engagement | `like_count` por encima del umbral | Envía alerta a Slack. |
| Continuar página | `has_more` es `true` | Guarda `next_cursor`. |
| Error | el estado es `401`, `403` o `429` | Enruta a una notificación de operaciones. |

## Lista de verificación de pruebas

* Ejecuta una vez con un tamaño de página pequeño, como 5 tweets.
* Confirma que Iterator reciba un paquete por tweet.
* Confirma que `tweet_id` se use para deduplicación antes de escribir filas.
* Confirma que el data store contenga el `next_cursor` más reciente.
* Sanitiza las API keys en los logs del escenario.

## Próximos pasos

* [Zapier](/guides/zapier)
* [Pipedream](/guides/pipedream)
* [n8n](/guides/n8n)
* [Agent MCP Handoff](/mcp/agent-handoff)
