Jira-koppling
Anslut din Jira Cloud-instans till Brevo för kundnära ärendespårning, supportbiljettöversikt och aviseringar om projektmilstolpar via Tajo.
Översikt
| Egenskap | Värde |
|---|---|
| Plattform | Jira Cloud |
| Kategori | Anpassad |
| Installationskomplexitet | Måttlig |
| Officiell integration | Nej |
| Data som synkas | Ärenden, projekt, användare, händelser |
| API-typ | REST API v3 |
| Autentisering | OAuth 2.0 (3LO) / API-token (Basic Auth) |
| Bas-URL | https://your-domain.atlassian.net/rest/api/3/ |
Funktioner
- Synk av ärendehändelser - Vidarebefordra händelser för skapande, uppdatering och lösning av ärenden till tidslinjer för Brevo-kontakter
- Spårning av kundbiljetter - Länka Jira-ärenden till Brevo-kontakter för supportöversikt
- Aviseringar om projektmilstolpar - Utlös Brevo-kampanjer vid versionsreleaser och sprintavslut
- Data om teamkapacitet - Synka arbetsbelastningsmått till operativa dashboards
- Statusförändringshändelser - Spåra ärendeflödets övergångar som Brevo-händelser
- Kommentarsynk - Vidarebefordra kundnära kommentarer till Brevos aktivitetsloggar
Förutsättningar
Innan du börjar, se till att du har:
- En Jira Cloud-instans (Jira Software, Jira Service Management eller Jira Work Management)
- Admin-åtkomst för att skapa OAuth-appar eller generera API-tokens
- Den Atlassian-kontoe-post som är kopplad till din API-token
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto med aktivt abonnemang
Autentisering
Jira Cloud stöder flera autentiseringsmetoder.
Alternativ 1: OAuth 2.0 (3LO) – rekommenderas
- Gå till developer.atlassian.com
- Klicka på Create > OAuth 2.0 integration
- Konfigurera callback-URL:
https://app.tajo.io/callbacks/jira - Lägg till dessa scopes:
read:jira-workread:jira-userwrite:jira-workread:meAPI-URL-strukturen för OAuth 2.0:
https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/{resource}Alternativ 2: API-token (Basic Auth)
- Gå till id.atlassian.com/manage/api-tokens
- Klicka på Create API token
- Namnge den “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"Begränsningar för API-tokens
API-tokens är kopplade till enskilda användarkonton. Om användaren avaktiveras slutar integrationen att fungera. Använd OAuth 2.0 för produktionsmiljöer.
Ansluta till 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_TOKENKonfiguration
Grundinställning
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 RequestFältmappning
Mappa Jira-ärende- och användarfält till Brevo-attribut:
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 integrerar med följande endpoints i Jira Cloud REST API v3:
| Endpoint | Metod | Syfte |
|---|---|---|
/rest/api/3/search | POST | Sök ärenden med JQL |
/rest/api/3/issue/{issueIdOrKey} | GET | Hämta ärendedetaljer |
/rest/api/3/issue | POST | Skapa ett ärende |
/rest/api/3/project | GET | Lista alla projekt |
/rest/api/3/project/{projectIdOrKey} | GET | Hämta projektdetaljer |
/rest/api/3/user/search | GET | Sök användare |
/rest/api/3/myself | GET | Hämta aktuell användare |
/rest/api/3/issue/{issueIdOrKey}/comment | GET | Hämta ärendekommentarer |
/rest/api/3/webhook | POST | Registrera webhooks |
/rest/api/3/status | GET | Hämta alla statusar |
/rest/api/3/priority | GET | Hämta alla prioriteter |
Kodexempel
Initiera kopplingen
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});Synka supportärenden
// 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// }Hantera Jira-webhooks
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');});Sök ärenden per kund
// Find all issues reported by a specific customerconst issues = await tajo.connectors.query('jira', { maxResults: 20, fields: ['summary', 'status', 'priority', 'created']});Hastighetsbegränsningar
Jira Cloud tillämpar hastighetsbegränsningar för att säkerställa plattformsstabilitet:
| Kontext | Hastighetsbegränsning |
|---|---|
| REST API | ~100 förfrågningar per 10 sekunder per användare |
| Samtidiga förfrågningar | 10 samtidiga långvariga förfrågningar |
| Bulkoperationer | Varierar per endpoint |
Paginering
Jira använder offsetbaserad paginering med parametrarna startAt och maxResults. Standardsidstorleken är 50, max är 100. Tajo hanterar paginering automatiskt.
Jira returnerar ett 429 Too Many Requests-svar när hastighetsbegränsningar överskrids, med en Retry-After-header som anger när det är dags att försöka igen.
Felsökning
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig token eller utgången OAuth | Uppdatera OAuth-token eller regenerera API-token |
| 403 Forbidden | Otillräckliga behörigheter | Kontrollera att användaren har åtkomst till aktuellt projekt |
| JQL-fel | Ogiltig frågesyntax | Validera JQL i Jiras ärendesök först |
| Webhook tas inte emot | Brandvägg blockerar | Se till att webhook-URL:en är offentligt tillgänglig |
| Saknade fält | Fält saknas i svar | Lägg till fältet i fields-parametern eller använd expand |
Felsökningsläge
connectors: jira: debug: true log_level: verbose log_api_calls: trueTesta anslutning
tajo connectors test jira# ✓ API authentication successful# ✓ Project access verified# ✓ Issue search operational# ✓ User lookup available# ✓ Webhook registration activeBästa praxis
- Använd OAuth 2.0 i produktion - Undviker beroende av enskilda användarkonton
- Filtrera med JQL - Synka bara relevanta ärenden för att minska API-anrop
- Använd webhooks för realtid - Undvik polling; registrera webhooks för ärendeändringar
- Respektera ADF-format - Jira v3 använder Atlassian Document Format för rik text
- Mappa projekt-till-lista - Skapa separata Brevo-listor per Jira-projekt
- Hantera paginering - Iterera alltid genom alla sidor för fullständig data
Säkerhet
- OAuth 2.0 (3LO) - Säker tokenbaserad autentisering med refresh-tokens
- API-token + Basic Auth - Base64-kodade uppgifter över HTTPS
- Endast HTTPS - All API-kommunikation krypterad via TLS 1.2+
- Scopad åtkomst - OAuth-scopes begränsar API-åtkomst till nödvändiga resurser
- Atlassian Cloud-säkerhet - SOC 2 Type II-certifierad infrastruktur
- Krypterad lagring - Uppgifter krypterade i vila i Tajo