---
title: "Jira-connector"
description: "Volledige Jira Cloud-integratiegids voor het synchroniseren van issues, projecten en teamactiviteit met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/custom/jira/
markdown: https://tajo.io/nl/docs/connectors/custom/jira.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# Jira-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbind je Jira Cloud-instantie met Brevo voor klantgerichte issue-tracking, zichtbaarheid van supporttickets en notificaties over projectmijlpalen via Tajo.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Jira Cloud |
| **Categorie** | Custom |
| **Setupcomplexiteit** | Gemiddeld |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Issues, Projecten, Gebruikers, Events |
| **API-type** | REST API v3 |
| **Authenticatie** | OAuth 2.0 (3LO) / API Token (Basic Auth) |
| **Base URL** | `https://your-domain.atlassian.net/rest/api/3/` |

## Functies

- **Issue-event-sync** - Stuur events voor issue creation, updates en resolves door naar Brevo-contacttimelines
- **Klantticket-tracking** - Koppel Jira-issues aan Brevo-contacten voor supportzichtbaarheid
- **Projectmijlpaal-alerts** - Trigger Brevo-campagnes bij versiereleases en sprintafrondingen
- **Teamcapaciteitsdata** - Synchroniseer workloadmetrics voor operationele dashboards
- **Statuswijziging-events** - Track issue-workflowovergangen als Brevo-events
- **Commentsynchronisatie** - Stuur klantgerichte comments door naar Brevo-activiteitslogs

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Jira Cloud-instantie (Jira Software, Jira Service Management of Jira Work Management)
2. Admin-toegang om OAuth-apps aan te maken of API-tokens te genereren
3. Het Atlassian-accountemailadres dat is gekoppeld aan je API-token
4. Een Brevo-account met API-toegang
5. Een Tajo-account met een actief abonnement

## Authenticatie

Jira Cloud ondersteunt meerdere authenticatiemethoden.

### Optie 1: OAuth 2.0 (3LO) - aanbevolen

1. Ga naar [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)
2. Klik op **Create** > **OAuth 2.0 integration**
3. Configureer de callback-URL: `https://app.tajo.io/callbacks/jira`
4. Voeg deze scopes toe:

```
read:jira-work
read:jira-user
write:jira-work
read:me
```

De API-URL-structuur voor OAuth 2.0:

```
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}
```

### Optie 2: API Token (Basic Auth)

1. Ga naar [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
2. Klik op **Create API token**
3. Noem het “Tajo Integration”

```bash
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
  -u "email@example.com:$JIRA_API_TOKEN" \
  -H "Accept: application/json"
```

API-tokenbeperkingen

API-tokens zijn gekoppeld aan individuele gebruikersaccounts. Als de gebruiker wordt gedeactiveerd, breekt de integratie. Gebruik OAuth 2.0 voor productiedeployments.

### Verbinden met Tajo

```bash
# Using OAuth 2.0
tajo connectors install jira \
  --client-id $JIRA_CLIENT_ID \
  --client-secret $JIRA_CLIENT_SECRET \
  --cloud-id $JIRA_CLOUD_ID

# Using API Token
tajo connectors install jira \
  --site-url your-domain.atlassian.net \
  --email admin@example.com \
  --api-token $JIRA_API_TOKEN
```

## Configuratie

### Basisinstelling

```yaml
connectors:
  jira:
    enabled: true
    site_url: "your-domain.atlassian.net"
    auth_type: "oauth2"  # or "basic"

    sync:
      issues: true
      projects: true
      users: true
      comments: true
      worklogs: false

    projects:
      - key: "SUPPORT"
        sync_to_list: 22
      - key: "PRODUCT"
        sync_to_list: 23

    issue_types:
      - Bug
      - Story
      - Task
      - Support Request
```

### Veldmapping

Map Jira-issue- en gebruikersvelden naar Brevo-attributen:

```yaml
field_mapping:
  # User fields
  accountId: JIRA_ACCOUNT_ID
  emailAddress: email
  displayName: FIRSTNAME

  # Issue fields mapped to contact events
  issue_key: LAST_TICKET_KEY
  issue_status: LAST_TICKET_STATUS
  issue_priority: LAST_TICKET_PRIORITY
  issue_created: LAST_TICKET_DATE
  resolution: LAST_TICKET_RESOLUTION
```

## API-endpoints

Tajo integreert met de volgende Jira Cloud REST API v3-endpoints:

| Endpoint | Method | Doel |
| --- | --- | --- |
| `/rest/api/3/search` | POST | Zoek issues met JQL |
| `/rest/api/3/issue/{issueIdOrKey}` | GET | Haal issuedetails op |
| `/rest/api/3/issue` | POST | Maak een issue aan |
| `/rest/api/3/project` | GET | Lijst alle projecten |
| `/rest/api/3/project/{projectIdOrKey}` | GET | Haal projectdetails op |
| `/rest/api/3/user/search` | GET | Zoek gebruikers |
| `/rest/api/3/myself` | GET | Haal huidige gebruiker op |
| `/rest/api/3/issue/{issueIdOrKey}/comment` | GET | Haal issue-comments op |
| `/rest/api/3/webhook` | POST | Registreer webhooks |
| `/rest/api/3/status` | GET | Haal alle statussen op |
| `/rest/api/3/priority` | GET | Haal alle prioriteiten op |

## Codevoorbeelden

### Connector initialiseren

```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('jira', {
  clientId: process.env.JIRA_CLIENT_ID,
  clientSecret: process.env.JIRA_CLIENT_SECRET,
  cloudId: process.env.JIRA_CLOUD_ID
});
```

### Support-issues synchroniseren

```javascript
// Sync Jira support issues to Brevo contacts
await tajo.connectors.sync('jira', {
  type: 'incremental',
  resources: ['issues'],
  jql: 'project = SUPPORT AND updated >= -24h',
  batchSize: 50
});

const status = await tajo.connectors.status('jira');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-03-15T12:00:00Z',
//   issuesTracked: 4560,
//   projectsMonitored: 3,
//   usersLinked: 890
// }
```

### Jira-webhooks afhandelen

```javascript
app.post('/webhooks/jira', async (req, res) => {
  const event = req.body;

  await tajo.connectors.handleWebhook('jira', {
    event: event.webhookEvent,
    payload: {
      issueKey: event.issue?.key,
      issueType: event.issue?.fields?.issuetype?.name,
      status: event.issue?.fields?.status?.name,
      reporter: event.issue?.fields?.reporter?.emailAddress,
      assignee: event.issue?.fields?.assignee?.emailAddress
    }
  });

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

### Issues zoeken per klant

```javascript
// Find all issues reported by a specific customer
const issues = await tajo.connectors.query('jira', {
  jql: 'reporter = "customer@example.com" ORDER BY created DESC',
  maxResults: 20,
  fields: ['summary', 'status', 'priority', 'created']
});
```

## Rate limits

Jira Cloud hanteert rate limits om platformstabiliteit te waarborgen:

| Context | Rate limit |
| --- | --- |
| **REST API** | ~100 requests per 10 seconden per gebruiker |
| **Gelijktijdige requests** | 10 gelijktijdige long-running requests |
| **Bulkoperaties** | Varieert per endpoint |

Paginering

Jira gebruikt offset-gebaseerde paginering met de parameters `startAt` en `maxResults`. De default pagegrootte is 50, maximum is 100. Tajo handelt paginering automatisch af.

Jira retourneert een `429 Too Many Requests`-response wanneer rate limits worden overschreden, met een `Retry-After`-header die aangeeft wanneer je opnieuw mag proberen.

## Probleemoplossing

### Veelvoorkomende problemen

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| 401 Unauthorized | Ongeldig token of verlopen OAuth | Ververs OAuth-token of regenereer API-token |
| 403 Forbidden | Onvoldoende rechten | Controleer of de gebruiker toegang heeft tot het project |
| JQL-fouten | Ongeldige querysyntax | Valideer JQL eerst in de issue-zoekopdracht van Jira |
| Webhook niet ontvangen | Firewall blokkeert | Zorg dat de webhook-URL publiek bereikbaar is |
| Ontbrekende velden | Veld niet in response | Voeg veld toe aan de `fields`-parameter of gebruik `expand` |

### Debugmodus

```yaml
connectors:
  jira:
    debug: true
    log_level: verbose
    log_api_calls: true
```

### Verbinding testen

```bash
tajo connectors test jira
# ✓ API authentication successful
# ✓ Project access verified
# ✓ Issue search operational
# ✓ User lookup available
# ✓ Webhook registration active
```

## Best practices

1. **Gebruik OAuth 2.0 voor productie** - Vermijdt afhankelijkheid van individuele gebruikersaccounts
2. **Filter met JQL** - Synchroniseer alleen relevante issues om API-calls te beperken
3. **Gebruik webhooks voor realtime** - Vermijd polling; registreer webhooks voor issuewijzigingen
4. **Respecteer ADF-format** - Jira v3 gebruikt Atlassian Document Format voor rich text-velden
5. **Map project-naar-lijst** - Maak aparte Brevo-lijsten per Jira-project
6. **Handel paginering af** - Doorloop altijd alle pagina’s voor volledige data

## Beveiliging

- **OAuth 2.0 (3LO)** - Veilige token-gebaseerde authenticatie met refresh tokens
- **API Token + Basic Auth** - Base64-gecodeerde credentials over HTTPS
- **Alleen HTTPS** - Alle API-communicatie is versleuteld via TLS 1.2+
- **Scoped Access** - OAuth-scopes beperken API-toegang tot benodigde resources
- **Atlassian Cloud Security** - SOC 2 Type II-gecertificeerde infrastructuur
- **Encrypted storage** - Credentials versleuteld opgeslagen bij Tajo

## Gerelateerde bronnen

- [GitHub-connector](https://tajo.io/nl/docs/connectors/custom/github)
- [Linear-connector](https://tajo.io/nl/docs/connectors/custom/linear)
- [Gorgias-connector](https://tajo.io/nl/docs/connectors/support/gorgias)
- [Brevo Contacts API](https://tajo.io/nl/docs/contact-management)
