Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

Typeform Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

Illustration · Beispieldaten

Sync-Beispiel

Einen Datensatz prüfen

Quelle

Typeform

Connector-Status: Geplant

Ziel

Ihr anderes Tool

Connector-Status: Eigenes Tool

QuellfeldZielfeldBeispielwert
record.id source_id record_1042
record.updated_at updated_at 2026-10-18T08:00:00Z
record.value value sample_value
  1. Entwerfen
  2. Einen Datensatz prüfen
  3. Diese Version freigeben

Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.

Verbinde Typeform über Tajo mit Brevo, um Formular-Antworten automatisch zu synchronisieren, Leads aus konversationellen Formularen zu erfassen und Marketing-Automationen basierend auf Umfragen und Quiz-Ergebnissen auszulösen.

Überblick

EigenschaftWert
PlattformTypeform
KategorieForms & Surveys (Custom)
EinrichtungsaufwandEinfach
Offizielle IntegrationNein
Synchronisierte DatenAntworten, Kontakte, Events, Formulare
AuthentifizierungOAuth 2.0 / Personal Access Token

Funktionen

  • Echtzeit-Antwort-Synchronisation - Erfasse Formular-Einreichungen automatisch via Webhooks
  • Kontakterstellung - Erstelle oder aktualisiere Brevo-Kontakte aus Formular-Antworten
  • Lead Scoring - Nutze Quiz-Ergebnisse und Formulardaten zur Lead-Qualifizierung
  • Hidden Fields - Übergib Kund:innen-Daten über Hidden Fields für personalisierte Formulare
  • Bedingtes Mapping - Mappe verschiedene Formularfelder basierend auf Antwortlogik
  • Multi-Form-Support - Verbinde mehrere Typeforms mit verschiedenen Brevo-Listen

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Ein Typeform-Konto (Basic-Plan oder höher für Webhooks)
  2. Einen Personal Access Token aus den Typeform-Konto-Einstellungen
  3. Ein Brevo-Konto mit API-Zugriff
  4. Ein Tajo-Konto mit Connector-Berechtigungen

Authentifizierung

Personal Access Token

Terminal window
# Generate a token at https://admin.typeform.com/account#/section/tokens
export TYPEFORM_ACCESS_TOKEN=tfp_your_personal_access_token
export TAJO_API_KEY=your_tajo_api_key
export BREVO_API_KEY=your_brevo_api_key

OAuth 2.0

// OAuth 2.0 Authorization Flow
const authUrl = 'https://api.typeform.com/oauth/authorize?' +
new URLSearchParams({
client_id: process.env.TYPEFORM_CLIENT_ID,
redirect_uri: 'https://your-app.com/callback',
scope: 'forms:read responses:read webhooks:write accounts:read',
state: generateState()
});
// Exchange authorization code for access token
const tokenResponse = await fetch('https://api.typeform.com/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
grant_type: 'authorization_code',
code: authorizationCode,
client_id: process.env.TYPEFORM_CLIENT_ID,
client_secret: process.env.TYPEFORM_CLIENT_SECRET,
redirect_uri: 'https://your-app.com/callback'
})
});

Konfiguration

Grundeinrichtung

connectors:
typeform:
enabled: true
access_token: "${TYPEFORM_ACCESS_TOKEN}"
forms:
- form_id: "abc123"
list_id: 5
mapping:
email_field: "email"
name_field: "full_name"
- form_id: "xyz789"
list_id: 6
mapping:
email_field: "work_email"
sync:
responses: true
contacts: true
events: true
webhook:
enabled: true
secret: "${TYPEFORM_WEBHOOK_SECRET}"

Feld-Mapping

field_mapping:
# Map Typeform field references to Brevo attributes
email: email
name: FIRSTNAME
company: COMPANY
phone: SMS
score: LEAD_SCORE
quiz_result: QUIZ_SCORE
nps_rating: NPS_SCORE
feedback: LAST_FEEDBACK

API-Endpoints

EndpointMethodeBeschreibung
https://api.typeform.com/formsGETAlle Formulare auflisten
https://api.typeform.com/forms/{form_id}GETFormular abrufen
https://api.typeform.com/formsPOSTFormular erstellen
https://api.typeform.com/forms/{form_id}PUTFormular aktualisieren
https://api.typeform.com/forms/{form_id}/responsesGETAntworten abrufen
https://api.typeform.com/forms/{form_id}/responsesDELETEAntworten löschen
https://api.typeform.com/forms/{form_id}/webhooks/{tag}PUTWebhook erstellen/aktualisieren
https://api.typeform.com/forms/{form_id}/webhooks/{tag}GETWebhook abrufen
https://api.typeform.com/forms/{form_id}/webhooksGETWebhooks auflisten

Code-Beispiele

Connector initialisieren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
await tajo.connectors.connect('typeform', {
accessToken: process.env.TYPEFORM_ACCESS_TOKEN,
forms: ['abc123', 'xyz789']
});

Formular-Antworten abrufen

// Fetch responses using the Responses API
const response = await fetch(
'https://api.typeform.com/forms/abc123/responses?' +
new URLSearchParams({
page_size: 25,
since: '2024-01-01T00:00:00Z',
completed: 'true'
}),
{
headers: {
'Authorization': `Bearer ${process.env.TYPEFORM_ACCESS_TOKEN}`
}
}
);
const data = await response.json();
// Sync each response to Brevo
for (const item of data.items) {
const answers = item.answers;
const email = answers.find(a => a.field.ref === 'email')?.email;
if (email) {
await tajo.contacts.sync({
email,
attributes: {
FIRSTNAME: answers.find(a => a.field.ref === 'name')?.text,
LEAD_SCORE: item.calculated?.score || 0
},
listIds: [5]
});
}
}

Webhooks einrichten

// Register a webhook for real-time response notifications
await fetch(
'https://api.typeform.com/forms/abc123/webhooks/tajo-sync',
{
method: 'PUT',
headers: {
'Authorization': `Bearer ${process.env.TYPEFORM_ACCESS_TOKEN}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://api.example.com/webhooks/typeform',
enabled: true,
secret: process.env.TYPEFORM_WEBHOOK_SECRET
})
}
);

Caution

Die Adresse example.com oben ist ein Platzhalter, bis der Tajo-Endpunkt verfügbar ist.

Webhook-Events verarbeiten

app.post('/webhooks/typeform', async (req, res) => {
// Verify webhook signature
const signature = req.headers['typeform-signature'];
const isValid = verifyTypeformSignature(
req.rawBody, signature, process.env.TYPEFORM_WEBHOOK_SECRET
);
if (!isValid) return res.status(401).send('Unauthorized');
const { form_response } = req.body;
await tajo.connectors.handleWebhook('typeform', {
topic: 'form_response',
payload: form_response
});
res.status(200).send('OK');
});

Rate Limits

EndpointRate LimitHinweise
Create-API2 Anfragen/Sek.Formularerstellung und -aktualisierungen
Responses-API2 Anfragen/Sek.Antwort-Abruf
Webhooks-API2 Anfragen/Sek.Webhook-Management
Alle Endpoints120 Anfragen/Min.Globales Rate Limit

Antwort-Pagination

Die Responses-API liefert maximal 1.000 Antworten pro Anfrage. Nutze die Cursor-Parameter before oder after für die Pagination, wenn du große Antwortmengen abrufst.

Fehlerbehebung

ProblemUrsacheLösung
Webhook nicht empfangenWebhook deaktiviertWebhook im Typeform-Dashboard aktivieren
Fehlende AntwortenFilter angewendetsince/until und completed-Parameter prüfen
Auth-Fehler 401Token abgelaufenNeuen Personal Access Token generieren
Rate Limit 429Zu viele AnfragenAnfrage-Throttling implementieren
Leere AntwortenOptionale FelderNull-/undefined-Antwortwerte behandeln

Debug-Modus

connectors:
typeform:
debug: true
log_level: verbose
log_webhooks: true
log_responses: true

Best Practices

  1. Webhooks nutzen - Bevorzuge Webhooks gegenüber Polling für Echtzeit-Antwort-Erfassung
  2. Signaturen validieren - Verifiziere Webhook-Signaturen zur Sicherheit
  3. Hidden Fields nutzen - Befülle bekannte Kund:innen-Daten in Formularen vor
  4. Feldreferenzen mappen - Nutze stabile Feld-ref-Werte statt Feld-IDs
  5. Teilantworten behandeln - Berücksichtige optionale und übersprungene Fragen
  6. Retry-Logik einrichten - Implementiere idempotente Webhook-Verarbeitung

Sicherheit

  • OAuth 2.0 - Gescopte Token-basierte Authentifizierung
  • Webhook-Signaturen - SHA-256-HMAC-Signatur-Validierung
  • Nur HTTPS - Alle API-Endpoints erfordern TLS
  • Token-Scoping - Fordere minimal erforderliche OAuth-Scopes an
  • Secret-Management - Speichere Tokens in Umgebungsvariablen oder Secret-Managern
  • DSGVO-Konformität - Nutze die Delete-Responses-API für Datenlöschungsanfragen

Verwandte Ressourcen

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.

Diese Seite als Markdown: typeform.md

Markdown wird geladen …
In Claude öffnen In ChatGPT öffnen