Typeform کنیکٹر

فارم جوابات کو خودکار طور پر سنک کرنے، conversational فارمز سے لیڈز capture کرنے، اور سروے سبمیشنز اور quiz نتائج کی بنیاد پر مارکیٹنگ آٹومیشنز کو ٹرگر کرنے کے لیے Tajo کے ذریعے Typeform کو Brevo سے منسلک کریں۔

جائزہ

خاصیتقدر
پلیٹ فارمTypeform
زمرہفارمز اور سروے (کسٹم)
سیٹ اپ کی پیچیدگیآسان
آفیشل انٹیگریشننہیں
سنک شدہ ڈیٹاجوابات، رابطے، ایونٹس، فارمز
تصدیق کا طریقہOAuth 2.0 / Personal Access Token

خصوصیات

  • ریئل ٹائم جواب سنک - webhooks کے ذریعے فارم سبمیشنز خودکار طور پر capture کریں
  • رابطہ تخلیق - فارم جوابات سے Brevo رابطے بنائیں یا اپ ڈیٹ کریں
  • لیڈ اسکورنگ - لیڈ اہلیت کے لیے quiz اسکورز اور فارم ڈیٹا استعمال کریں
  • Hidden Fields - ذاتی نوعیت کے فارمز کے لیے Hidden Fields کے ذریعے گاہک ڈیٹا منتقل کریں
  • مشروط میپنگ - جواب لاجک کی بنیاد پر مختلف فارم فیلڈز میپ کریں
  • ملٹی فارم سپورٹ - مختلف Brevo فہرستوں سے متعدد typeforms منسلک کریں

شرائط

شروع کرنے سے پہلے، یقینی بنائیں کہ آپ کے پاس ہے:

  1. Typeform اکاؤنٹ (webhooks کے لیے Basic plan یا اس سے اوپر)
  2. Typeform Account Settings سے Personal Access Token
  3. API رسائی کے ساتھ Brevo اکاؤنٹ
  4. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ

تصدیق

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'
})
});

تشکیل

بنیادی سیٹ اپ

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}"

فیلڈ میپنگ

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 اینڈ پوائنٹس

اینڈ پوائنٹطریقہتفصیل
https://api.typeform.com/formsGETتمام فارمز کی فہرست
https://api.typeform.com/forms/{form_id}GETفارم حاصل کریں
https://api.typeform.com/formsPOSTفارم بنائیں
https://api.typeform.com/forms/{form_id}PUTفارم اپ ڈیٹ کریں
https://api.typeform.com/forms/{form_id}/responsesGETجوابات حاصل کریں
https://api.typeform.com/forms/{form_id}/responsesDELETEجوابات حذف کریں
https://api.typeform.com/forms/{form_id}/webhooks/{tag}PUTwebhook بنائیں/اپ ڈیٹ کریں
https://api.typeform.com/forms/{form_id}/webhooks/{tag}GETwebhook حاصل کریں
https://api.typeform.com/forms/{form_id}/webhooksGETwebhooks کی فہرست

کوڈ کی مثالیں

کنیکٹر کو انیشیلائز کریں

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']
});

فارم جوابات حاصل کریں

// 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 سیٹ اپ کریں

// 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.tajo.io/webhooks/typeform',
enabled: true,
secret: process.env.TYPEFORM_WEBHOOK_SECRET
})
}
);

Webhook ایونٹس کو سنبھالیں

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');
});

شرح کی حدود

اینڈ پوائنٹشرح کی حدنوٹس
Create API2 درخواستیں/سیکنڈفارم تخلیق اور اپ ڈیٹس
Responses API2 درخواستیں/سیکنڈجواب کی بازیابی
Webhooks API2 درخواستیں/سیکنڈwebhook کا انتظام
تمام اینڈ پوائنٹس120 درخواستیں/منٹعالمی شرح کی حد

جواب پیجینیشن

Responses API فی درخواست زیادہ سے زیادہ 1,000 جوابات واپس کرتی ہے۔ بڑے جواب سیٹس بازیافت کرتے وقت پیجینیشن کے لیے before یا after cursor پیرامیٹرز استعمال کریں۔

ٹربل شوٹنگ

مسئلہوجہحل
Webhook موصول نہیں ہواWebhook غیر فعالTypeform dashboard میں webhook فعال کریں
غائب جواباتفلٹر لاگوsince/until اور completed پیرامز چیک کریں
Auth کی غلطی 401Token میعاد ختمنیا Personal Access Token تیار کریں
شرح کی حد 429بہت زیادہ درخواستیںدرخواست throttling نافذ کریں
خالی جواباتاختیاری فیلڈزnull/undefined جواب اقدار کو سنبھالیں

ڈیبگ موڈ

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

بہترین طرز عمل

  1. Webhooks استعمال کریں - ریئل ٹائم جواب capture کے لیے polling پر webhooks کو ترجیح دیں
  2. دستخطوں کی تصدیق کریں - سیکیورٹی کے لیے ہمیشہ webhook دستخطوں کی تصدیق کریں
  3. Hidden Fields استعمال کریں - فارمز میں معروف گاہک ڈیٹا پہلے سے بھریں
  4. فیلڈ ریفرنسز میپ کریں - فیلڈ IDs کے بجائے مستحکم فیلڈ ref اقدار استعمال کریں
  5. جزوی جوابات کو سنبھالیں - اختیاری اور skipped سوالات کا حساب رکھیں
  6. ری ٹرائی لاجک سیٹ اپ کریں - idempotent webhook پروسیسنگ نافذ کریں

سیکیورٹی

  • OAuth 2.0 - اسکوپڈ token پر مبنی تصدیق
  • Webhook دستخط - SHA-256 HMAC دستخط کی توثیق
  • HTTPS صرف - تمام API اینڈ پوائنٹس کو TLS درکار ہے
  • Token اسکوپنگ - کم از کم مطلوبہ OAuth اسکوپس کی درخواست کریں
  • Secret کا انتظام - environment variables یا secret managers میں tokens اسٹور کریں
  • GDPR کمپلائنس - ڈیٹا erasure درخواستوں کے لیے Delete Responses API استعمال کریں

متعلقہ وسائل

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI معاون

السلام علیکم! دستاویزات کے بارے میں کچھ بھی پوچھیں۔