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

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

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

# Calendly کنیکٹر

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

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

میٹنگ مدعوئین کو خود بخود رابطوں کے طور پر سنک کرنے، بکنگ ایونٹس کی بنیاد پر ای میل سیکوئنسز کو متحرک کرنے، اور اپنی سیلز اور onboarding ورک فلوز کو ہموار کرنے کے لیے Tajo کے ذریعے Calendly کو Brevo سے منسلک کریں۔

## جائزہ

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

## خصوصیات

- **مدعو سنک** - میٹنگ مدعوئین سے خود بخود Brevo رابطے بنائیں
- **بکنگ ٹرگرز** - جب میٹنگز بک ہوں تو Brevo آٹومیشنز کو چلائیں
- **منسوخی کی ہینڈلنگ** - منسوخیوں پر ری-انگیجمنٹ فلوز کو متحرک کریں
- **No-show کا پتہ لگانا** - جب مدعوئین میٹنگز سے محروم ہوں تو رابطے کی حیثیت کو اپ ڈیٹ کریں
- **ایونٹ کی قسم میپنگ** - مختلف Calendly ایونٹ اقسام کو Brevo فہرستوں سے میپ کریں
- **Scheduling API** - ری ڈائریکٹس کے بغیر اپنی ایپ میں براہ راست شیڈولنگ بنائیں

## ضروریات

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

1. Calendly اکاؤنٹ (API رسائی کے لیے Professional پلان یا اوپر)
2. [Calendly Integrations](https://calendly.com/integrations) سے Personal Access Token
3. API رسائی کے ساتھ Brevo اکاؤنٹ
4. کنیکٹر اجازتوں کے ساتھ Tajo اکاؤنٹ

## توثیق

### Personal Access Token

```bash
# https://calendly.com/integrations/api_webhooks پر تخلیق کریں
export CALENDLY_ACCESS_TOKEN=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 Code Flow
const authUrl = 'https://auth.calendly.com/oauth/authorize?' +
  new URLSearchParams({
    client_id: process.env.CALENDLY_CLIENT_ID,
    redirect_uri: 'https://your-app.com/callback',
    response_type: 'code'
  });

// کوڈ کو ٹوکن کے لیے تبدیل کریں
const tokenResponse = await fetch('https://auth.calendly.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.CALENDLY_CLIENT_ID,
    client_secret: process.env.CALENDLY_CLIENT_SECRET,
    redirect_uri: 'https://your-app.com/callback'
  })
});
```

## کنفیگریشن

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

```yaml
connectors:
  calendly:
    enabled: true
    access_token: "${CALENDLY_ACCESS_TOKEN}"

    sync:
      contacts: true
      events: true
      cancellations: true

    event_mapping:
      discovery_call:
        list_id: 10
        event_type_uri: "https://api.calendly.com/event_types/abc123"
      demo:
        list_id: 11
        event_type_uri: "https://api.calendly.com/event_types/xyz789"

    webhook:
      signing_key: "${CALENDLY_WEBHOOK_SIGNING_KEY}"
```

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

```yaml
field_mapping:
  email: email
  name: FIRSTNAME
  questions_and_answers:
    company: COMPANY
    role: JOB_TITLE
    phone: SMS
  event_type_name: CALENDLY_EVENT_TYPE
  scheduled_at: MEETING_DATE
  status: BOOKING_STATUS
```

## API اینڈ پوائنٹس

| اینڈ پوائنٹ | طریقہ | تفصیل |
| --- | --- | --- |
| `https://api.calendly.com/users/me` | GET | موجودہ صارف حاصل کریں |
| `https://api.calendly.com/event_types` | GET | ایونٹ اقسام کی فہرست |
| `https://api.calendly.com/scheduled_events` | GET | شیڈول شدہ ایونٹس کی فہرست |
| `https://api.calendly.com/scheduled_events/{uuid}` | GET | ایک شیڈول شدہ ایونٹ حاصل کریں |
| `https://api.calendly.com/scheduled_events/{uuid}/invitees` | GET | مدعوئین کی فہرست |
| `https://api.calendly.com/scheduling_links` | POST | شیڈولنگ لنک بنائیں |
| `https://api.calendly.com/webhook_subscriptions` | POST | ویب ہک بنائیں |
| `https://api.calendly.com/webhook_subscriptions` | GET | ویب ہکس کی فہرست |
| `https://api.calendly.com/invitee_no_shows/{uuid}` | GET | No-show کی حیثیت حاصل کریں |

## کوڈ مثالیں

### کنیکٹر کو شروع کریں

```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('calendly', {
  accessToken: process.env.CALENDLY_ACCESS_TOKEN
});
```

### شیڈول شدہ ایونٹس کی فہرست

```javascript
// شیڈول شدہ ایونٹس حاصل کریں
const response = await fetch(
  'https://api.calendly.com/scheduled_events?' +
    new URLSearchParams({
      user: 'https://api.calendly.com/users/YOUR_USER_ID',
      min_start_time: '2024-01-01T00:00:00Z',
      max_start_time: '2024-12-31T23:59:59Z',
      status: 'active',
      count: 100
    }),
  {
    headers: {
      'Authorization': `Bearer ${process.env.CALENDLY_ACCESS_TOKEN}`,
      'Content-Type': 'application/json'
    }
  }
);

const events = await response.json();
```

### مدعوئین کو Brevo سے سنک کریں

```javascript
// شیڈول شدہ ایونٹ کے لیے مدعوئین حاصل کریں اور Brevo سے سنک کریں
const inviteesResponse = await fetch(
  `https://api.calendly.com/scheduled_events/${eventUuid}/invitees`,
  {
    headers: {
      'Authorization': `Bearer ${process.env.CALENDLY_ACCESS_TOKEN}`
    }
  }
);

const { collection } = await inviteesResponse.json();

for (const invitee of collection) {
  await tajo.contacts.sync({
    email: invitee.email,
    attributes: {
      FIRSTNAME: invitee.name,
      CALENDLY_EVENT_TYPE: invitee.event,
      MEETING_DATE: invitee.created_at,
      BOOKING_STATUS: invitee.status
    },
    listIds: [10]
  });
}
```

### ویب ہک سبسکرپشن سیٹ اپ کریں

```javascript
// Calendly ایونٹس کو سبسکرائب کریں
const webhook = await fetch(
  'https://api.calendly.com/webhook_subscriptions',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.CALENDLY_ACCESS_TOKEN}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'https://api.example.com/webhooks/calendly',
      events: [
        'invitee.created',
        'invitee.canceled',
        'invitee_no_show.created'
      ],
      organization: 'https://api.calendly.com/organizations/YOUR_ORG_ID',
      scope: 'organization',
      signing_key: process.env.CALENDLY_WEBHOOK_SIGNING_KEY
    })
  }
);
```

Caution

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

### ویب ہک ایونٹس کو ہینڈل کریں

```javascript
app.post('/webhooks/calendly', async (req, res) => {
  // ویب ہک سگنیچر کی تصدیق کریں
  const signature = req.headers['calendly-webhook-signature'];
  const isValid = verifyCalendlySignature(
    req.rawBody, signature, process.env.CALENDLY_WEBHOOK_SIGNING_KEY
  );

  if (!isValid) return res.status(401).send('Unauthorized');

  const { event, payload } = req.body;

  switch (event) {
    case 'invitee.created':
      await tajo.contacts.sync({
        email: payload.email,
        attributes: { BOOKING_STATUS: 'booked' },
        listIds: [10]
      });
      break;
    case 'invitee.canceled':
      await tajo.contacts.update(payload.email, {
        attributes: { BOOKING_STATUS: 'cancelled' }
      });
      break;
    case 'invitee_no_show.created':
      await tajo.contacts.update(payload.email, {
        attributes: { BOOKING_STATUS: 'no_show' }
      });
      break;
  }

  res.status(200).send('OK');
});
```

## ریٹ کی حدود

| وسیلہ | حد | نوٹس |
| --- | --- | --- |
| API درخواستیں | 6,000/منٹ | تنظیم وسیع حد |
| ویب ہک سبسکرپشنز | فی تنظیم 30 | تمام ایونٹ اقسام میں |
| شیڈولنگ لنکس | لامحدود | فی منٹ کوئی حد نہیں |

پیجینیشن

Calendly API ریسپانسز کرسر پر مبنی پیجینیشن استعمال کرتے ہیں۔ اضافی نتائج حاصل کرنے کے لیے `pagination` آبجیکٹ سے `next_page_token` استعمال کریں۔ ڈیفالٹ پیج سائز 20 آئٹمز ہے، زیادہ سے زیادہ 100۔

## مسائل کا سراغ

| مسئلہ | وجہ | حل |
| --- | --- | --- |
| ویب ہک موصول نہیں ہوا | غلط اسکوپ | ویب ہکس کے لیے `organization` اسکوپ استعمال کریں |
| 401 Unauthorized | ٹوکن کی میعاد ختم | نیا ٹوکن تخلیق کریں یا OAuth ٹوکن ریفریش کریں |
| مدعو کا ڈیٹا غائب | سوالات کنفیگر نہیں | ایونٹ کی قسم میں حسب ضرورت سوالات شامل کریں |
| ڈپلیکیٹ رابطے | کوئی ڈی ڈپ منطق نہیں | upserts کے لیے ای میل کو منفرد شناخت کنندہ کے طور پر استعمال کریں |
| ریٹ کی حد 429 | بہت زیادہ درخواستیں | بیک آف اور درخواست بیچنگ نافذ کریں |

### ڈیبگ موڈ

```yaml
connectors:
  calendly:
    debug: true
    log_level: verbose
    log_webhooks: true
```

## بہترین طریقے

1. **ویب ہکس استعمال کریں** - ریئل ٹائم سنک کے لیے `invitee.created` اور `invitee.canceled` کو سبسکرائب کریں
2. **حسب ضرورت سوالات شامل کریں** - امیر رابطہ پروفائلز کے لیے کمپنی، رول، اور فون ڈیٹا جمع کریں
3. **ایونٹ اقسام کو میپ کریں** - فی Calendly ایونٹ کی قسم مختلف Brevo فہرستیں تفویض کریں
4. **No-shows کو ہینڈل کریں** - لیڈ اسکورنگ اور فالو اپ سیکوئنسز کو ایڈجسٹ کرنے کے لیے no-shows کو ٹریک کریں
5. **شیڈولنگ لنکس استعمال کریں** - ذاتی بکنگ تجربات کے لیے منفرد شیڈولنگ لنکس تخلیق کریں
6. **تنظیم کا اسکوپ سیٹ کریں** - تمام ٹیم ممبران سے ایونٹس حاصل کرنے کے لیے org-level ویب ہکس استعمال کریں

## سیکیورٹی

- **OAuth 2.0** - اسکوپڈ ٹوکن پر مبنی توثیق
- **ویب ہک سگنیچرز** - آنے والے ویب ہکس کے لیے HMAC سگنیچر کی توثیق
- **صرف HTTPS** - تمام API اینڈ پوائنٹس کو TLS انکرپشن کی ضرورت ہوتی ہے
- **ٹوکن کی میعاد** - OAuth ٹوکنز کی میعاد ختم ہوتی ہے اور ریفریش فلوز کی ضرورت ہوتی ہے
- **کم از کم اسکوپس** - صرف ضروری OAuth اسکوپس درخواست کریں
- **محفوظ اسٹوریج** - ٹوکنز کو ماحولیاتی متغیرات یا سیکریٹ مینیجرز میں محفوظ کریں

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

- [Typeform کنیکٹر](https://tajo.io/ur/docs/connectors/custom/typeform)
- [Zoom کنیکٹر](https://tajo.io/ur/docs/connectors/custom/zoom)
- [Customer Sync Skill](https://tajo.io/ur/docs/skills/data-sync/customer-sync)
- [Calendly Developer API Documentation](https://developer.calendly.com/api-docs)
