---
title: "Typeform کنیکٹر"
description: "Tajo کے ذریعے فارم جوابات، سروے، اور conversational ڈیٹا اکٹھا کرنے کو Brevo کے ساتھ سنک کرنے کے لیے مکمل Typeform انٹیگریشن گائیڈ۔"
url: https://tajo.io/ur/docs/connectors/custom/typeform/
markdown: https://tajo.io/ur/docs/connectors/custom/typeform.md
lang: ur-PK
robots: noindex
---

ابتدائی رسائی کی درخواست کریں

اپنا پہلا نام اور دفتری ای میل پتہ درج کریں۔ ہم Tajo تک رسائی کی درخواست کی تصدیق کے لیے ایک لنک ای میل کریں گے۔

# Typeform کنیکٹر

کنیکٹر کی حیثیت: منصوبہ بند ابھی تیار نہیں ہوا۔ Tajo آج یہ کنیکٹر نہیں چلاتا۔

| ماخذ فیلڈ | منزل فیلڈ | نمونہ قدر |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

فارم جوابات کو خودکار طور پر سنک کرنے، 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](https://admin.typeform.com/account#/section/tokens) سے Personal Access Token
3. API رسائی کے ساتھ Brevo اکاؤنٹ
4. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ

## تصدیق

### Personal Access Token

```bash
# 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

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

## تشکیل

### بنیادی سیٹ اپ

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

### فیلڈ میپنگ

```yaml
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/forms` | GET | تمام فارمز کی فہرست |
| `https://api.typeform.com/forms/{form_id}` | GET | فارم حاصل کریں |
| `https://api.typeform.com/forms` | POST | فارم بنائیں |
| `https://api.typeform.com/forms/{form_id}` | PUT | فارم اپ ڈیٹ کریں |
| `https://api.typeform.com/forms/{form_id}/responses` | GET | جوابات حاصل کریں |
| `https://api.typeform.com/forms/{form_id}/responses` | DELETE | جوابات حذف کریں |
| `https://api.typeform.com/forms/{form_id}/webhooks/{tag}` | PUT | webhook بنائیں/اپ ڈیٹ کریں |
| `https://api.typeform.com/forms/{form_id}/webhooks/{tag}` | GET | webhook حاصل کریں |
| `https://api.typeform.com/forms/{form_id}/webhooks` | GET | webhooks کی فہرست |

## کوڈ کی مثالیں

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

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

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

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

```javascript
// 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

اوپر دیا گیا `example.com` پتہ Tajo اینڈ پوائنٹ دستیاب ہونے تک صرف ایک پلیس ہولڈر ہے۔

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

```javascript
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 API | 2 درخواستیں/سیکنڈ | فارم تخلیق اور اپ ڈیٹس |
| Responses API | 2 درخواستیں/سیکنڈ | جواب کی بازیابی |
| Webhooks API | 2 درخواستیں/سیکنڈ | webhook کا انتظام |
| تمام اینڈ پوائنٹس | 120 درخواستیں/منٹ | عالمی شرح کی حد |

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

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

## ٹربل شوٹنگ

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

### ڈیبگ موڈ

```yaml
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 استعمال کریں

## متعلقہ وسائل

- [Calendly کنیکٹر](https://tajo.io/ur/docs/connectors/custom/calendly)
- [Zapier کنیکٹر](https://tajo.io/ur/docs/connectors/custom/zapier)
- [گاہک سنک اسکل](https://tajo.io/ur/docs/skills/data-sync/customer-sync)
- [Typeform Developer دستاویزات](https://www.typeform.com/developers/)
