Jira-connector
Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.
Illustratie · voorbeelddata
Voorbeeld van synchronisatie
Bron
Jira
Connectorstatus: Gepland
Bestemming
Je andere tool
Connectorstatus: Eigen tool
Veldtoewijzing
| Bronveld | Doelveld | Voorbeeldwaarde |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Opstellen
- Eén record controleren
- Deze versie goedkeuren
Statussen gelden per connector en garanderen niet dat deze synchronisatie klaar is. De velden zijn illustratief. Controleer het echte schema en de rechten voordat een synchronisatie draait.
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:
- Een Jira Cloud-instantie (Jira Software, Jira Service Management of Jira Work Management)
- Admin-toegang om OAuth-apps aan te maken of API-tokens te genereren
- Het Atlassian-accountemailadres dat is gekoppeld aan je API-token
- Een Brevo-account met API-toegang
- Een Tajo-account met een actief abonnement
Authenticatie
Jira Cloud ondersteunt meerdere authenticatiemethoden.
Optie 1: OAuth 2.0 (3LO) - aanbevolen
- Ga naar developer.atlassian.com
- Klik op Create > OAuth 2.0 integration
- Configureer de callback-URL:
https://app.tajo.io/callbacks/jira - Voeg deze scopes toe:
read:jira-workread:jira-userwrite:jira-workread:meDe API-URL-structuur voor OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Optie 2: API Token (Basic Auth)
- Ga naar id.atlassian.com/manage/api-tokens
- Klik op Create API token
- Noem het “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"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
# 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_TOKENConfiguratie
Basisinstelling
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 RequestVeldmapping
Map Jira-issue- en gebruikersvelden naar Brevo-attributen:
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-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
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
// 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 afhandelen
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
// Find all issues reported by a specific customerconst issues = await tajo.connectors.query('jira', { 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
connectors: jira: debug: true log_level: verbose log_api_calls: trueVerbinding testen
tajo connectors test jira# ✓ API authentication successful# ✓ Project access verified# ✓ Issue search operational# ✓ User lookup available# ✓ Webhook registration activeBest practices
- Gebruik OAuth 2.0 voor productie - Vermijdt afhankelijkheid van individuele gebruikersaccounts
- Filter met JQL - Synchroniseer alleen relevante issues om API-calls te beperken
- Gebruik webhooks voor realtime - Vermijd polling; registreer webhooks voor issuewijzigingen
- Respecteer ADF-format - Jira v3 gebruikt Atlassian Document Format voor rich text-velden
- Map project-naar-lijst - Maak aparte Brevo-lijsten per Jira-project
- 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