---
title: "Σύνδεσμος Zoom"
description: "Πλήρης οδηγός ενσωμάτωσης Zoom για συγχρονισμό συμμετεχόντων σύσκεψης, παρευρισκόμενων σε webinar και δεδομένων αφοσίωσης με το Brevo μέσω Tajo."
url: https://tajo.io/gr/docs/connectors/custom/zoom/
markdown: https://tajo.io/gr/docs/connectors/custom/zoom.md
lang: el-GR
robots: noindex
---

Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το μικρό σας όνομα και την επαγγελματική διεύθυνση email. Θα σας στείλουμε σύνδεσμο για να επιβεβαιώσετε το αίτημα πρόσβασης στο Tajo.

# Σύνδεσμος Zoom

Κατάσταση συνδέσμου: Προγραμματισμένο Δεν έχει κατασκευαστεί ακόμη. Το Tajo δεν εκτελεί σήμερα αυτόν τον σύνδεσμο.

| Πεδίο πηγής | Πεδίο προορισμού | Ενδεικτική τιμή |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Συνδέστε το Zoom με το Brevo μέσω Tajo για αυτόματο συγχρονισμό συμμετεχόντων σύσκεψης και παρευρισκόμενων σε webinar ως επαφές, ενεργοποίηση ακολουθιών παρακολούθησης μετά τη σύσκεψη και παρακολούθηση μετρικών αφοσίωσης για τους αυτοματισμούς marketing σας.

## Επισκόπηση

| Ιδιότητα | Τιμή |
| --- | --- |
| **Πλατφόρμα** | Zoom |
| **Κατηγορία** | Τηλεδιάσκεψη (Προσαρμοσμένο) |
| **Πολυπλοκότητα Ρύθμισης** | Μεσαία |
| **Επίσημη Ενσωμάτωση** | Όχι |
| **Δεδομένα που Συγχρονίζονται** | Συμμετέχοντες, Εκδηλώσεις, Webinars, Επαφές |
| **Μέθοδος Πιστοποίησης** | OAuth 2.0 / Server-to-Server OAuth |

## Χαρακτηριστικά

- **Συγχρονισμός συμμετεχόντων** - Αυτόματη δημιουργία επαφών Brevo από συμμετέχοντες σύσκεψης
- **Καταγραφή παρευρισκόμενων webinar** - Συγχρονισμός εγγεγραμμένων και παρευρισκόμενων σε webinar
- **Ενεργοποιητές εκδηλώσεων σύσκεψης** - Εκκίνηση αυτοματισμών κατά έναρξη, λήξη σύσκεψης και εκδηλώσεις ηχογράφησης
- **Παρακολούθηση αφοσίωσης** - Παρακολούθηση διάρκειας παρουσίας και μετρικών συμμετοχής
- **Παρακολούθηση webinar** - Ενεργοποίηση στοχευμένων ακολουθιών email βάσει παρουσίας σε webinar
- **Ειδοποιήσεις ηχογράφησης** - Αποστολή συνδέσμων ηχογράφησης μέσω καμπανιών email Brevo

## Προαπαιτούμενα

Πριν ξεκινήσετε, βεβαιωθείτε ότι διαθέτετε:

1. Λογαριασμό Zoom (Pro πλάνο ή παραπάνω)
2. Εφαρμογή Zoom Server-to-Server OAuth ή OAuth μέσω [Zoom App Marketplace](https://marketplace.zoom.us/)
3. Λογαριασμό Brevo με πρόσβαση API
4. Λογαριασμό Tajo με δικαιώματα συνδέσμου

## Πιστοποίηση

### Server-to-Server OAuth (Συνιστάται)

```bash
# Create a Server-to-Server OAuth app at marketplace.zoom.us
export ZOOM_ACCOUNT_ID=your_account_id
export ZOOM_CLIENT_ID=your_client_id
export ZOOM_CLIENT_SECRET=your_client_secret
```

```javascript
// Get access token via Server-to-Server OAuth
const tokenResponse = await fetch('https://zoom.us/oauth/token', {
  method: 'POST',
  headers: {
    'Authorization': `Basic ${Buffer.from(
      `${process.env.ZOOM_CLIENT_ID}:${process.env.ZOOM_CLIENT_SECRET}`
    ).toString('base64')}`,
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: new URLSearchParams({
    grant_type: 'account_credentials',
    account_id: process.env.ZOOM_ACCOUNT_ID
  })
});

const { access_token } = await tokenResponse.json();
```

### OAuth 2.0 (Επίπεδο Χρήστη)

```javascript
// Authorization URL for user-level OAuth
const authUrl = 'https://zoom.us/oauth/authorize?' +
  new URLSearchParams({
    client_id: process.env.ZOOM_CLIENT_ID,
    redirect_uri: 'https://your-app.com/callback',
    response_type: 'code'
  });

// Exchange code for tokens
const tokenResponse = await fetch('https://zoom.us/oauth/token', {
  method: 'POST',
  headers: {
    'Authorization': `Basic ${Buffer.from(
      `${process.env.ZOOM_CLIENT_ID}:${process.env.ZOOM_CLIENT_SECRET}`
    ).toString('base64')}`,
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: new URLSearchParams({
    grant_type: 'authorization_code',
    code: authorizationCode,
    redirect_uri: 'https://your-app.com/callback'
  })
});
```

## Διαμόρφωση

### Βασική Ρύθμιση

```yaml
connectors:
  zoom:
    enabled: true
    account_id: "${ZOOM_ACCOUNT_ID}"
    client_id: "${ZOOM_CLIENT_ID}"
    client_secret: "${ZOOM_CLIENT_SECRET}"

    sync:
      participants: true
      webinars: true
      recordings: true

    webhook:
      secret_token: "${ZOOM_WEBHOOK_SECRET}"
      verification_token: "${ZOOM_VERIFICATION_TOKEN}"

    lists:
      meeting_participants: 15
      webinar_attendees: 16
      webinar_registrants: 17
```

### Αντιστοίχιση Πεδίων

```yaml
field_mapping:
  email: email
  name: FIRSTNAME
  join_time: MEETING_JOIN_DATE
  duration: MEETING_DURATION
  webinar_title: WEBINAR_NAME
  attendance_status: ATTENDANCE_STATUS
  registration_source: UTM_SOURCE
```

## Endpoints API

| Endpoint | Μέθοδος | Περιγραφή |
| --- | --- | --- |
| `https://api.zoom.us/v2/users` | GET | Λίστα χρηστών |
| `https://api.zoom.us/v2/users/{userId}/meetings` | GET | Λίστα συσκέψεων |
| `https://api.zoom.us/v2/meetings/{meetingId}` | GET | Λήψη λεπτομερειών σύσκεψης |
| `https://api.zoom.us/v2/past_meetings/{meetingId}/participants` | GET | Λίστα συμμετεχόντων παρελθοντικής σύσκεψης |
| `https://api.zoom.us/v2/users/{userId}/webinars` | GET | Λίστα webinars |
| `https://api.zoom.us/v2/webinars/{webinarId}/registrants` | GET | Λίστα εγγεγραμμένων webinar |
| `https://api.zoom.us/v2/webinars/{webinarId}/participants` | GET | Λίστα συμμετεχόντων webinar |
| `https://api.zoom.us/v2/meetings/{meetingId}/recordings` | GET | Λήψη ηχογραφήσεων σύσκεψης |
| `https://api.zoom.us/v2/webhooks` | POST | Εγγραφή σε 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('zoom', {
  accountId: process.env.ZOOM_ACCOUNT_ID,
  clientId: process.env.ZOOM_CLIENT_ID,
  clientSecret: process.env.ZOOM_CLIENT_SECRET
});
```

### Συγχρονισμός Συμμετεχόντων Σύσκεψης

```javascript
// Retrieve past meeting participants
const response = await fetch(
  `https://api.zoom.us/v2/past_meetings/${meetingId}/participants`,
  {
    headers: {
      'Authorization': `Bearer ${accessToken}`,
      'Content-Type': 'application/json'
    }
  }
);

const { participants } = await response.json();

for (const participant of participants) {
  if (participant.user_email) {
    await tajo.contacts.sync({
      email: participant.user_email,
      attributes: {
        FIRSTNAME: participant.name,
        MEETING_DURATION: participant.duration,
        MEETING_JOIN_DATE: participant.join_time,
        ATTENDANCE_STATUS: 'attended'
      },
      listIds: [15]
    });
  }
}
```

### Συγχρονισμός Παρευρισκόμενων Webinar

```javascript
// Get webinar attendees and sync to Brevo
const attendeesResponse = await fetch(
  `https://api.zoom.us/v2/past_webinars/${webinarId}/participants`,
  {
    headers: { 'Authorization': `Bearer ${accessToken}` }
  }
);

const { participants: attendees } = await attendeesResponse.json();

for (const attendee of attendees) {
  await tajo.contacts.sync({
    email: attendee.user_email,
    attributes: {
      FIRSTNAME: attendee.name,
      WEBINAR_NAME: webinarTitle,
      ATTENDANCE_STATUS: 'attended',
      MEETING_DURATION: attendee.duration
    },
    listIds: [16]
  });
}
```

### Χειρισμός Webhooks Zoom

```javascript
app.post('/webhooks/zoom', async (req, res) => {
  // Handle Zoom URL validation challenge
  if (req.body.event === 'endpoint.url_validation') {
    const hashForValidation = crypto
      .createHmac('sha256', process.env.ZOOM_WEBHOOK_SECRET)
      .update(req.body.payload.plainToken)
      .digest('hex');

    return res.json({
      plainToken: req.body.payload.plainToken,
      encryptedToken: hashForValidation
    });
  }

  // Verify webhook signature
  const message = `v0:${req.headers['x-zm-request-timestamp']}:${JSON.stringify(req.body)}`;
  const hash = crypto
    .createHmac('sha256', process.env.ZOOM_WEBHOOK_SECRET)
    .update(message)
    .digest('hex');
  const signature = `v0=${hash}`;

  if (req.headers['x-zm-signature'] !== signature) {
    return res.status(401).send('Unauthorized');
  }

  const { event, payload } = req.body;

  await tajo.connectors.handleWebhook('zoom', {
    topic: event,
    payload: payload
  });

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

## Όρια Ρυθμού

| Κατηγορία | Όριο | Σημειώσεις |
| --- | --- | --- |
| Ελαφριές κλήσεις API | 30 αιτ./δευτ. | GET χρήστη, πληροφορίες σύσκεψης |
| Μεσαίες κλήσεις API | 20 αιτ./δευτ. | Λίστα συμμετεχόντων, webinars |
| Βαριές κλήσεις API | 10 αιτ./δευτ. | Αναφορές, ηχογραφήσεις |
| Ημερήσιο όριο | 5.000+ | Εξαρτάται από το επίπεδο πλάνου |

Headers Ορίου Ρυθμού

Το Zoom επιστρέφει headers `X-RateLimit-Limit`, `X-RateLimit-Remaining` και `Retry-After`. Εφαρμόστε λογική backoff βάσει αυτών των headers για αποφυγή σφαλμάτων 429.

## Αντιμετώπιση Προβλημάτων

| Πρόβλημα | Αιτία | Λύση |
| --- | --- | --- |
| 401 Unauthorized | Ληγμένο token | Ανανεώστε Server-to-Server OAuth token |
| Λείπουν συμμετέχοντες | Η σύσκεψη δεν έχει λήξει | Αναμείνετε τη λήξη σύσκεψης για πλήρη δεδομένα |
| Αποτυχία επικύρωσης webhook | Λανθασμένο μυστικό | Επαληθεύστε το μυστικό webhook στο Zoom Marketplace |
| Δεν υπάρχουν δεδομένα email | Επισκέπτες συμμετέχοντες | Ενεργοποιήστε εγγραφή για καταγραφή emails |
| Όριο ρυθμού 429 | Υπερβολικά πολλά αιτήματα | Εφαρμόστε εκθετική καθυστέρηση |

### Λειτουργία Εντοπισμού Σφαλμάτων

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

## Βέλτιστες Πρακτικές

1. **Χρησιμοποιήστε Server-to-Server OAuth** - Απλούστερη πιστοποίηση χωρίς αλληλεπίδραση χρήστη
2. **Ενεργοποιήστε εγγραφή webinar** - Απαιτείται για καταγραφή διευθύνσεων email παρευρισκόμενων
3. **Επεξεργαστείτε μετά τη λήξη σύσκεψης** - Τα δεδομένα συμμετεχόντων είναι πλήρη μόνο μετά τη λήξη συσκέψεων
4. **Τμηματοποιήστε κατά τύπο εκδήλωσης** - Αναθέστε διαφορετικές λίστες Brevo για συσκέψεις έναντι webinars
5. **Παρακολουθήστε μετρικές αφοσίωσης** - Χρησιμοποιήστε διάρκεια και ώρα σύνδεσης για βαθμολόγηση lead
6. **Αποστέλλετε παρακολούθηση ηχογράφησης** - Αυτοματοποιήστε παράδοση συνδέσμου ηχογράφησης μέσω Brevo

## Ασφάλεια

- **OAuth 2.0** - Server-to-Server ή OAuth πιστοποίηση επιπέδου χρήστη
- **Επικύρωση webhook** - Επικύρωση υπογραφής HMAC-SHA256
- **Επικύρωση URL** - Επαλήθευση challenge-response για endpoints webhook
- **Δικαιώματα με εύρος** - Αίτηση ελάχιστων απαιτούμενων OAuth scopes
- **Εναλλαγή token** - Τα Server-to-Server tokens λήγουν αυτόματα (1 ώρα)
- **Κρυπτογραφημένη μεταφορά** - TLS 1.2+ για όλες τις επικοινωνίες API

## Σχετικοί Πόροι

- [Σύνδεσμος Calendly](https://tajo.io/gr/docs/connectors/custom/calendly)
- [Σύνδεσμος Zapier](https://tajo.io/gr/docs/connectors/custom/zapier)
- [Δεξιότητα Συγχρονισμού Πελατών](https://tajo.io/gr/docs/skills/data-sync/customer-sync)
- [Τεκμηρίωση API Zoom](https://developers.zoom.us/docs/api/)
