Jira-koppling

Anslut din Jira Cloud-instans till Brevo för kundnära ärendespårning, supportbiljettöversikt och aviseringar om projektmilstolpar via Tajo.

Översikt

EgenskapVärde
PlattformJira Cloud
KategoriAnpassad
InstallationskomplexitetMåttlig
Officiell integrationNej
Data som synkasÄrenden, projekt, användare, händelser
API-typREST API v3
AutentiseringOAuth 2.0 (3LO) / API-token (Basic Auth)
Bas-URLhttps://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:

  1. En Jira Cloud-instans (Jira Software, Jira Service Management eller Jira Work Management)
  2. Admin-åtkomst för att skapa OAuth-appar eller generera API-tokens
  3. Den Atlassian-kontoe-post som är kopplad till din API-token
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto med aktivt abonnemang

Autentisering

Jira Cloud stöder flera autentiseringsmetoder.

Alternativ 1: OAuth 2.0 (3LO) – rekommenderas

  1. Gå till developer.atlassian.com
  2. Klicka på Create > OAuth 2.0 integration
  3. Konfigurera callback-URL: https://app.tajo.io/callbacks/jira
  4. Lägg till dessa scopes:
read:jira-work
read:jira-user
write:jira-work
read:me

API-URL-strukturen för OAuth 2.0:

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

Alternativ 2: API-token (Basic Auth)

  1. Gå till id.atlassian.com/manage/api-tokens
  2. Klicka på Create API token
  3. Namnge den “Tajo Integration”
Terminal window
# Basic Auth: email as username, API token as password
curl -X GET "https://your-domain.atlassian.net/rest/api/3/myself" \
-u "[email protected]:$JIRA_API_TOKEN" \
-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

Terminal window
# 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 \
--api-token $JIRA_API_TOKEN

Konfiguration

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 Request

Fä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_RESOLUTION

API-endpoints

Tajo integrerar med följande endpoints i Jira Cloud REST API v3:

EndpointMetodSyfte
/rest/api/3/searchPOSTSök ärenden med JQL
/rest/api/3/issue/{issueIdOrKey}GETHämta ärendedetaljer
/rest/api/3/issuePOSTSkapa ett ärende
/rest/api/3/projectGETLista alla projekt
/rest/api/3/project/{projectIdOrKey}GETHämta projektdetaljer
/rest/api/3/user/searchGETSök användare
/rest/api/3/myselfGETHämta aktuell användare
/rest/api/3/issue/{issueIdOrKey}/commentGETHämta ärendekommentarer
/rest/api/3/webhookPOSTRegistrera webhooks
/rest/api/3/statusGETHämta alla statusar
/rest/api/3/priorityGETHä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 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
// }

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 customer
const issues = await tajo.connectors.query('jira', {
jql: 'reporter = "[email protected]" ORDER BY created DESC',
maxResults: 20,
fields: ['summary', 'status', 'priority', 'created']
});

Hastighetsbegränsningar

Jira Cloud tillämpar hastighetsbegränsningar för att säkerställa plattformsstabilitet:

KontextHastighetsbegränsning
REST API~100 förfrågningar per 10 sekunder per användare
Samtidiga förfrågningar10 samtidiga långvariga förfrågningar
BulkoperationerVarierar 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

ProblemOrsakLösning
401 UnauthorizedOgiltig token eller utgången OAuthUppdatera OAuth-token eller regenerera API-token
403 ForbiddenOtillräckliga behörigheterKontrollera att användaren har åtkomst till aktuellt projekt
JQL-felOgiltig frågesyntaxValidera JQL i Jiras ärendesök först
Webhook tas inte emotBrandvägg blockerarSe till att webhook-URL:en är offentligt tillgänglig
Saknade fältFält saknas i svarLägg till fältet i fields-parametern eller använd expand

Felsökningsläge

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

Testa anslutning

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

Bästa praxis

  1. Använd OAuth 2.0 i produktion - Undviker beroende av enskilda användarkonton
  2. Filtrera med JQL - Synka bara relevanta ärenden för att minska API-anrop
  3. Använd webhooks för realtid - Undvik polling; registrera webhooks för ärendeändringar
  4. Respektera ADF-format - Jira v3 använder Atlassian Document Format för rik text
  5. Mappa projekt-till-lista - Skapa separata Brevo-listor per Jira-projekt
  6. 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

Relaterade resurser

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-assistent

Hej! Fråga mig om dokumentationen.