Retour au blog
DevOps

Automatisation d'APIs avec Zapier

28 Nov 2024 6 min
Zapier API Automatisation

Zapier pour l'automatisation métier

Dans un contexte d'entreprise comme chez ORPI, l'automatisation des processus métier via les APIs est essentielle pour gagner en efficacité.

Cas d'usage courants

  • Synchronisation CRM vers base de données interne
  • Notification Slack sur événements métier
  • Génération automatique de rapports
  • Intégration de formulaires web avec le SI

Créer un webhook personnalisé

// Endpoint Symfony pour recevoir les webhooks Zapier
#[Route('/api/webhook/zapier', methods: ['POST'])]
class ZapierWebhookController extends AbstractController
{
    public function __invoke(
        Request $request,
        MessageBusInterface $bus,
    ): JsonResponse {
        $data = json_decode($request->getContent(), true);

        // Valider le token
        if ($request->headers->get('X-Zapier-Token') !== $this->zapierToken) {
            return $this->json(['error' => 'Unauthorized'], 401);
        }

        // Dispatcher le traitement
        $bus->dispatch(new ProcessZapierDataMessage($data));

        return $this->json(['status' => 'received']);
    }
}

API pour Zapier Triggers

#[Route('/api/zapier/new-leads', methods: ['GET'])]
public function newLeads(LeadRepository $repo): JsonResponse
{
    $leads = $repo->findRecent(limit: 50);
    return $this->json(array_map(fn(Lead $l) => [
        'id' => $l->getId(),
        'name' => $l->getName(),
        'email' => $l->getEmail(),
        'created_at' => $l->getCreatedAt()->format('c'),
    ], $leads));
}

Bonnes pratiques

  • Sécuriser les webhooks avec des tokens
  • Logger toutes les interactions pour le débogage
  • Utiliser des files d'attente pour le traitement asynchrone
  • Documenter les APIs avec OpenAPI pour l'intégration Zapier