Jira Connector
Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
Jira
Connector-Status: Geplant
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
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:
- Eine Jira-Cloud-Instanz (Jira Software, Jira Service Management oder Jira Work Management)
- Admin-Zugriff zum Erstellen von OAuth-Apps oder Generieren von API-Tokens
- Die mit deinem API-Token verknüpfte Atlassian-Konto-E-Mail
- Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto mit aktivem Abonnement
Authentifizierung
Jira Cloud unterstützt mehrere Authentifizierungsmethoden.
Option 1: OAuth 2.0 (3LO) - Empfohlen
- Gehe zu developer.atlassian.com
- Klicke auf Create > OAuth 2.0 integration
- Konfiguriere die Callback-URL:
https://app.tajo.io/callbacks/jira - Füge diese Scopes hinzu:
read:jira-workread:jira-userwrite:jira-workread:meDie 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)
- Gehe zu id.atlassian.com/manage/api-tokens
- Klicke auf Create API token
- Benenne es mit “Tajo Integration”
# Basic Auth: email as username, API token as passwordcurl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \ -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
# Using OAuth 2.0tajo connectors install jira \ --client-id $JIRA_CLIENT_ID \ --client-secret $JIRA_CLIENT_SECRET \ --cloud-id $JIRA_CLOUD_ID
# Using API Tokentajo connectors install jira \ --site-url your-domain.atlassian.net \ --api-token $JIRA_API_TOKENKonfiguration
Grundeinrichtung
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 RequestFeldzuordnung
Ordne Jira-Issue- und Nutzer:innen-Felder Brevo-Attributen zu:
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_RESOLUTIONAPI-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
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
// Sync Jira support issues to Brevo contactsawait 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
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
// Find all issues reported by a specific customerconst issues = await tajo.connectors.query('jira', { 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
connectors: jira: debug: true log_level: verbose log_api_calls: trueVerbindung testen
tajo connectors test jira# ✓ API authentication successful# ✓ Project access verified# ✓ Issue search operational# ✓ User lookup available# ✓ Webhook registration activeBest Practices
- OAuth 2.0 für die Produktion nutzen - Vermeidet Abhängigkeit von einzelnen Nutzer:innen-Konten
- Mit JQL filtern - Synchronisiere nur relevante Issues, um API-Aufrufe zu reduzieren
- Webhooks für Echtzeit nutzen - Vermeide Polling; registriere Webhooks für Issue-Änderungen
- ADF-Format beachten - Jira v3 nutzt das Atlassian Document Format für Rich-Text-Felder
- Projekt-zu-Liste zuordnen - Lege separate Brevo-Listen pro Jira-Projekt an
- 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