---
title: "Jira Connector"
description: "Vollständiger Leitfaden zur Jira-Cloud-Integration für die Synchronisierung von Issues, Projekten und Team-Aktivitätsdaten mit Brevo über Tajo."
url: https://tajo.io/de/docs/connectors/custom/jira/
markdown: https://tajo.io/de/docs/connectors/custom/jira.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# Jira Connector

Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbinde deine Jira-Cloud-Instanz über Tajo mit Brevo für kundenorientiertes Issue-Tracking, Sichtbarkeit von Support-Tickets und Projekt-Meilenstein-Benachrichtigungen.

## Überblick

| Eigenschaft | Wert |
| --- | --- |
| **Plattform** | Jira Cloud |
| **Kategorie** | Custom |
| **Einrichtungsaufwand** | Mittel |
| **Offizielle Integration** | Nein |
| **Synchronisierte Daten** | Issues, Projekte, Nutzer:innen, Events |
| **API-Typ** | REST API v3 |
| **Authentifizierung** | OAuth 2.0 (3LO) / API-Token (Basic Auth) |
| **Basis-URL** | `https://your-domain.atlassian.net/rest/api/3/` |

## Funktionen

- **Issue-Event-Synchronisierung** - Leite Issue-Erstell-, Update- und Abschluss-Events in Brevo-Kontaktverläufe weiter
- **Customer-Ticket-Tracking** - Verknüpfe Jira-Issues mit Brevo-Kontakten für Support-Sichtbarkeit
- **Projekt-Meilenstein-Alarme** - Löse Brevo-Kampagnen bei Version-Releases und Sprint-Abschlüssen aus
- **Team-Kapazitätsdaten** - Synchronisiere Auslastungsmetriken für operative Dashboards
- **Statuswechsel-Events** - Verfolge Issue-Workflow-Übergänge als Brevo-Events
- **Kommentar-Synchronisierung** - Leite kundenrelevante Kommentare in Brevo-Aktivitätsprotokolle weiter

## Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

1. Eine Jira-Cloud-Instanz (Jira Software, Jira Service Management oder Jira Work Management)
2. Admin-Zugriff zum Erstellen von OAuth-Apps oder Generieren von API-Tokens
3. Die mit deinem API-Token verknüpfte Atlassian-Konto-E-Mail
4. Ein Brevo-Konto mit API-Zugriff
5. Ein Tajo-Konto mit aktivem Abonnement

## Authentifizierung

Jira Cloud unterstützt mehrere Authentifizierungsmethoden.

### Option 1: OAuth 2.0 (3LO) - Empfohlen

1. Gehe zu [developer.atlassian.com](https://developer.atlassian.com/console/myapps/)
2. Klicke auf **Create** > **OAuth 2.0 integration**
3. Konfiguriere die Callback-URL: `https://app.tajo.io/callbacks/jira`
4. Füge diese Scopes hinzu:

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

Die API-URL-Struktur für OAuth 2.0:

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

### Option 2: API-Token (Basic Auth)

1. Gehe zu [id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
2. Klicke auf **Create API token**
3. Benenne es mit “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"
```

Einschränkungen von API-Tokens

API-Tokens sind an einzelne Nutzer:innen-Konten gebunden. Wird der/die Nutzer:in deaktiviert, bricht die Integration ab. Verwende OAuth 2.0 für Produktiv-Deployments.

### Verbindung zu Tajo herstellen

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

## Konfiguration

### Grundeinrichtung

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

### Feldzuordnung

Ordne Jira-Issue- und Nutzer:innen-Felder Brevo-Attributen zu:

```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-Endpunkte

Tajo integriert die folgenden Endpunkte der Jira Cloud REST API v3:

| Endpunkt | Methode | Zweck |
| --- | --- | --- |
| `/rest/api/3/search` | POST | Issues per JQL durchsuchen |
| `/rest/api/3/issue/{issueIdOrKey}` | GET | Issue-Details abrufen |
| `/rest/api/3/issue` | POST | Issue erstellen |
| `/rest/api/3/project` | GET | Alle Projekte auflisten |
| `/rest/api/3/project/{projectIdOrKey}` | GET | Projektdetails abrufen |
| `/rest/api/3/user/search` | GET | Nutzer:innen suchen |
| `/rest/api/3/myself` | GET | Aktuelle:n Nutzer:in abrufen |
| `/rest/api/3/issue/{issueIdOrKey}/comment` | GET | Issue-Kommentare abrufen |
| `/rest/api/3/webhook` | POST | Webhooks registrieren |
| `/rest/api/3/status` | GET | Alle Status abrufen |
| `/rest/api/3/priority` | GET | Alle Prioritäten abrufen |

## Code-Beispiele

### Connector initialisieren

```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 synchronisieren

```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 verarbeiten

```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 nach Kund:innen durchsuchen

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

## Ratenbegrenzungen

Jira Cloud erzwingt Ratenbegrenzungen, um die Plattformstabilität zu gewährleisten:

| Kontext | Rate-Limit |
| --- | --- |
| **REST API** | ca. 100 Anfragen pro 10 Sekunden pro Nutzer:in |
| **Gleichzeitige Anfragen** | 10 gleichzeitige lang laufende Anfragen |
| **Bulk-Operationen** | Variiert je nach Endpunkt |

Paginierung

Jira nutzt offsetbasierte Paginierung mit den Parametern `startAt` und `maxResults`. Die Standard-Seitengröße beträgt 50, das Maximum 100. Tajo übernimmt die Paginierung automatisch.

Jira liefert eine `429 Too Many Requests`-Antwort, wenn Ratenbegrenzungen überschritten werden, mit einem `Retry-After`-Header, der angibt, wann erneut versucht werden soll.

## Fehlerbehebung

### Häufige Probleme

| Problem | Ursache | Lösung |
| --- | --- | --- |
| 401 Unauthorized | Ungültiges Token oder abgelaufener OAuth | OAuth-Token erneuern oder API-Token neu generieren |
| 403 Forbidden | Unzureichende Berechtigungen | Prüfe, ob der/die Nutzer:in Zugriff auf das angefragte Projekt hat |
| JQL-Fehler | Ungültige Abfragesyntax | JQL zunächst in der Jira-Issue-Suche validieren |
| Webhook wird nicht empfangen | Firewall blockiert | Sicherstellen, dass die Webhook-URL öffentlich erreichbar ist |
| Fehlende Felder | Feld nicht in der Antwort | Feld zum `fields`-Parameter hinzufügen oder `expand` verwenden |

### Debug-Modus

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

### Verbindung testen

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

## Best Practices

1. **OAuth 2.0 für die Produktion nutzen** - Vermeidet Abhängigkeit von einzelnen Nutzer:innen-Konten
2. **Mit JQL filtern** - Synchronisiere nur relevante Issues, um API-Aufrufe zu reduzieren
3. **Webhooks für Echtzeit nutzen** - Vermeide Polling; registriere Webhooks für Issue-Änderungen
4. **ADF-Format beachten** - Jira v3 nutzt das Atlassian Document Format für Rich-Text-Felder
5. **Projekt-zu-Liste zuordnen** - Lege separate Brevo-Listen pro Jira-Projekt an
6. **Paginierung handhaben** - Iteriere immer durch alle Seiten, um vollständige Daten zu erhalten

## Sicherheit

- **OAuth 2.0 (3LO)** - Sichere tokenbasierte Authentifizierung mit Refresh-Tokens
- **API-Token + Basic Auth** - Base64-kodierte Zugangsdaten über HTTPS
- **Nur HTTPS** - Die gesamte API-Kommunikation ist per TLS 1.2+ verschlüsselt
- **Scope-basierter Zugriff** - OAuth-Scopes beschränken den API-Zugriff auf erforderliche Ressourcen
- **Atlassian-Cloud-Sicherheit** - SOC-2-Type-II-zertifizierte Infrastruktur
- **Verschlüsselte Speicherung** - Zugangsdaten werden in Tajo verschlüsselt gespeichert

## Verwandte Ressourcen

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