---
title: "Make"
description: "Construisez une automatisation Twitter Make pour la recherche de tweets, les profils, les tweets tendance, les webhooks de plateforme et les handoffs sûrs avec curseurs via TwexAPI."
---

Construisez une automatisation Twitter Make avec TwexAPI sans application X Developer. Recherchez des tweets, consultez des profils, lisez les tweets tendance et routez des lignes normalisées vers Slack, Sheets, Airtable, Notion ou un CRM.

TwexAPI utilise une clé API et l'URL de base REST `https://api.twexapi.io`.

## Choisir un modèle d'automatisation Make

<CardGroup cols={2}>
  <Card title="Module HTTP" icon="link">
    Appelez la REST TwexAPI directement depuis le module HTTP de Make pour des scénarios planifiés ou pilotés par webhook.
  </Card>

  <Card title="Webhook personnalisé + handoff agent" icon="webhook">
    Recevez du JSON strict depuis un agent compatible MCP, puis routez les lignes visuellement.
  </Card>

  <Card title="Application personnalisée privée" icon="boxes">
    Packagez des modules réutilisables lorsque les mêmes actions TwexAPI se répètent dans plusieurs scénarios.
  </Card>
</CardGroup>

L'application native Make X a été décommissionnée. TwexAPI reste disponible via les modules HTTP ou une application personnalisée privée.

## Prérequis

* [Clé API TwexAPI](https://twexapi.io/dashboard)
* Compte organisation Make
* Module Slack, Sheets, Airtable, Notion ou CRM optionnel
* Agent compatible MCP connecté à `https://api.twexapi.io/mcp` optionnel

## Connexion

Créez une connexion réutilisable qui stocke la clé API dans un champ mot de passe :

| Champ | Valeur |
| --- | --- |
| Nom du paramètre | `apiKey` |
| Header | `Authorization: Bearer {{apiKey}}` |
| URL de base | `https://api.twexapi.io` |
| Test de connexion | `GET /balance` |

Utilisez `GET /balance` pour valider la clé API sans muter des données.

## Modèle de module HTTP de base

| Champ | Valeur |
| --- | --- |
| Méthode | `GET` ou `POST` selon l'endpoint sélectionné |
| URL | `https://api.twexapi.io` plus le chemin relatif |
| Header | `Authorization: Bearer YOUR_API_KEY` |
| Type de corps | Raw JSON pour les requêtes POST |

Gérez les codes de statut de manière cohérente :

<CardGroup cols={2}>
  <Card title="401" icon="key-round">
    Échec d'authentification. Vérifiez la clé API TwexAPI.
  </Card>

  <Card title="403" icon="shield-check">
    Accès refusé. Vérifiez l'accès au compte et les crédits.
  </Card>

  <Card title="429" icon="timer">
    Limite de débit. Attendez avant de réessayer et préservez le curseur.
  </Card>

  <Card title="5xx" icon="triangle-alert">
    Service indisponible. Réessayez avec backoff exponentiel.
  </Card>
</CardGroup>

## Modules de démarrage

| Module | Route TwexAPI |
| --- | --- |
| Rechercher des tweets | `POST /twitter/advanced_search/page` |
| Obtenir le profil utilisateur | `GET /twitter/{screen_name}/about` |
| Rechercher des utilisateurs | `GET /twitter/search-user/{keyword}/{target_count}` |
| Obtenir les tendances | `GET /twitter/global-trending/tweets` |
| Lister les abonnés | `POST /v3/twitter/users/followers` |
| Créer un tweet | `POST /twitter/tweets/create` |

### Exemple de recherche 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": ""
  }
}
```

Itérez sur les tweets retournés dans un module Iterator ultérieur. Stockez `next_cursor` dans un data store Make lorsque `has_next_page` ou `has_more` est vrai.

## Handoff de sortie

Les scénarios Make doivent émettre des bundles petits et stables plutôt que des réponses API brutes.

<CardGroup cols={2}>
  <Card title="Page de recherche de tweets" icon="search">
    Stockez la requête ; mappez `tweet_id`, `text`, `author_username`, `created_at`, `has_next_page` et `next_cursor`.
  </Card>

  <Card title="Lignes de profil utilisateur" icon="user-round">
    Stockez `user_id`, `username`, `name`, les compteurs d'abonnés et l'entrée de lookup.
  </Card>

  <Card title="Lignes de tendances" icon="trending-up">
    Stockez le pays, le sujet, le tag de contenu et les lignes de tweet avec les métadonnées du scénario.
  </Card>

  <Card title="Actions d'écriture" icon="send">
    Prévisualisez avec le [CLI](/sdks/cli) `--dry-run`. Les actions d'écriture nécessitent un cookie ou `auth_token`.
  </Card>
</CardGroup>

## Recette 1 : handoff agent vers Slack

1. Le webhook personnalisé reçoit le JSON de handoff TwexAPI depuis un agent MCP.
2. L'Iterator traite chaque élément dans `tweets`.
3. Filtrez sur les mots-clés ou auteurs.
4. Le module Slack publie `author_username`, `text` et l'URL publique.

Prompt agent suggéré :

```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.
```

## Recette 2 : recherche quotidienne vers Google Sheets

1. Planifiez le scénario quotidiennement.
2. Le module HTTP appelle `POST /twitter/advanced_search/page`.
3. L'Iterator parcourt les lignes de tweet.
4. Google Sheets Append Row écrit `tweet_id`, auteur, texte, `created_at` et URL.

## Recette 3 : export d'abonnés vers CRM

1. Le module HTTP appelle `POST /v3/twitter/users/followers`.
2. L'Iterator traite les lignes d'abonnés.
3. Le CRM upsert par `user_id`.
4. Le data store sauvegarde `next_cursor` pour la prochaine exécution du scénario.

## Branches Router

| Branche | Condition | Action |
| --- | --- | --- |
| Résultats vides | longueur de `tweets` est `0` | Arrêter silencieusement. |
| Engagement élevé | `like_count` au-dessus du seuil | Envoyer une alerte Slack. |
| Continuer la page | `has_more` est `true` | Stocker `next_cursor`. |
| Erreur | statut est `401`, `403` ou `429` | Router vers une notification ops. |

## Checklist de test

* Exécutez une fois avec une petite taille de page, par exemple 5 tweets.
* Confirmez que l'Iterator reçoit un bundle par tweet.
* Confirmez que `tweet_id` est utilisé pour la déduplication avant l'écriture des lignes.
* Confirmez que le data store contient le dernier `next_cursor`.
* Sanitizez les clés API dans les logs du scénario.

## Prochaines étapes

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