Genel Bakış

Bu rehber, Hardal’ın Custom API entegrasyonunu kullanarak Hardal analitiğini Linear’ın sorun takip sistemiyle nasıl entegre edeceğinizi açıklıyor. Bu platformları bağlayarak, Hardal tarafından yakalanan analitik event’lerine dayanarak Linear sorunlarını otomatik olarak oluşturabilir, kullanıcı analitiği ve proje yönetimi arasındaki iş akışınızı kolaylaştırabilirsiniz.

Bu entegrasyon, Linear’da sorunları doğrudan oluşturmak için Linear’ın GraphQL API’sini kullanır.

Ön Koşullar

Entegrasyonu kurmadan önce, şunlara sahip olduğunuzdan emin olun:

  • Marketing Destinations’a erişimi olan bir Hardal hesabı
  • API erişimine sahip bir Linear hesabı
  • Yapılandırılmış Linear API anahtarı veya OAuth2 kimlik doğrulaması
  • Sorunların oluşturulacağı bir Linear Team ID’si

Linear Kimlik Doğrulamasını Kurma

1

Linear API Ayarlarına Erişin

  1. Linear hesabınıza giriş yapın
  2. Settings > Account > API’ye gidin
2

API Anahtarı Oluşturun

Yeni bir kişisel API anahtarı oluşturmak için “Create Key”e tıklayın

3

API Anahtarını Kopyalayın

Bu anahtarı güvenli bir şekilde kaydedin (yalnızca bir kez gösterilecektir)

4

İzinleri Doğrulayın

API anahtarınızın sorun oluşturmak için yeterli izinlere sahip olduğundan emin olun

API anahtarınızı güvende tutun! Asla client-side kodunda veya halka açık depolarda açığa çıkarmayın.

Linear Team ID’nizi Bulma

Doğru ekipte sorunlar oluşturmak için Team ID’ye ihtiyacınız var:

1

Komut Menüsünü Açın

Linear’da komut menüsünü açın (⌘/CTRL+K)

2

'Copy model UUID' Seçin

“Copy model UUID” yazın ve seçin

3

Ekip Sayfasına Gidin

Önce ekibinizin sayfasına gidin

4

Team UUID'yi Kopyalayın

Kopyalanan değer Team ID’nizdir

Hardal’da Custom API Hedefi Oluşturma

1

Destinations'a Erişin

  1. Hardal dashboard’unuza gidin
  2. Marketing Destinations’a gidin
2

Custom Destination Ekleyin

“Add Custom Destination” butonuna tıklayın

3

Şablon Seçin

Şablonlardan “Custom API”yi seçin

4

Temel Ayarları Yapılandırın

Aşağıdaki ayarları doldurun:

AyarDeğer
Endpoint LabelLinear Integration
Endpoint IDlinear-integration
Endpoint URLhttps://api.linear.app/graphql
Request MethodPOST
Content Typeapplication/json

Kimlik Doğrulama Başlıkları Ekleme

Linear kimlik doğrulaması için bir başlık ekleyin:

{
  "headers": {
    "Authorization": "Bearer YOUR_LINEAR_API_KEY"
  }
}

YOUR_LINEAR_API_KEY’i daha önce oluşturduğunuz API anahtarıyla değiştirin.

GraphQL Sorgusunu Yapılandırma

İstek formatı için bir GraphQL mutation’a ihtiyacınız olacak:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"##event_name## from Hardal\", description: \"Event details: ##properties##\", teamId: \"YOUR_TEAM_ID\" }) { success issue { id title } } }"
}

YOUR_TEAM_ID’yi daha önce kopyaladığınız Team ID ile değiştirin. Event’lerden dinamik olarak veri eklemek için ##event_name## ve ##properties## gibi Hardal değişkenlerini kullanabilirsiniz.

Örnek Kullanım Senaryoları

Örnek 1: NPS Yanıtlarını Linear Sorunlarına Dönüştürme

Bu örnek, bir NPS (Net Promoter Score) yanıtı alındığında bir Linear sorunu oluşturur:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"NPS Received: ##properties.user## - ##properties.score##\", description: \"NPS received from Hardal Connections.\\nUser: ##properties.user##\\nScore: ##properties.score##\\nFeedback: ##properties.feedback##\", teamId: \"a06dd9aa-72c4-4e0e-9814-03616f9297ab\" }) { success issue { id title } } }"
}

Yalnızca NPS event’leri için tetiklemek üzere bir koşul ekleyin:

  • Event Name: equals - nps_response

Örnek 2: Hata Event’lerini Hata Raporlarına Dönüştürme

Bu örnek, hata event’lerini Linear hata raporlarına dönüştürür:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"Bug: ##properties.error_message##\", description: \"**Error Details**\\n\\nMessage: ##properties.error_message##\\nURL: ##page.url##\\nUser ID: ##user_id##\\nBrowser: ##browser.name## ##browser.version##\\nTimestamp: ##created_at##\", teamId: \"YOUR_TEAM_ID\", stateId: \"YOUR_BUG_STATE_ID\" }) { success issue { id title } } }"
}

Bir koşul ekleyin:

  • Event Name: equals - error_tracked

Örnek 3: Kullanıcı Geri Bildirimlerinden Özellik İstekleri

Bu örnek, kullanıcı geri bildirim formlarından özellik isteği sorunları oluşturur:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"Feature Request: ##properties.feature_title##\", description: \"**Feature Request Details**\\n\\nRequested by: ##properties.user_email##\\nPriority (user rated): ##properties.priority##/5\\n\\n**Description**\\n##properties.feature_description##\", teamId: \"YOUR_TEAM_ID\", labelIds: [\"FEATURE_REQUEST_LABEL_ID\"] }) { success issue { id title } } }"
}

Bir koşul ekleyin:

  • Event Name: equals - feature_request_submitted

Gelişmiş Yapılandırma

Sorunları Ekip Üyelerine Atama

Sorunları ekip üyelerine otomatik olarak atamak için assigneeId alanını dahil edin:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"##properties.title##\", description: \"##properties.description##\", teamId: \"YOUR_TEAM_ID\", assigneeId: \"USER_ID\" }) { success issue { id title } } }"
}

Sorun Önceliğini Ayarlama

Linear sorunlarında öncelik belirlemek için:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"##properties.title##\", description: \"##properties.description##\", teamId: \"YOUR_TEAM_ID\", priority: ##properties.priority## }) { success issue { id title } } }"
}

Linear öncelik değerleri 0 (öncelik yok), 1 (acil), 2 (yüksek), 3 (orta), 4 (düşük) şeklindedir.

Sorunlara Etiket Ekleme

Sorunlarınıza etiket eklemek için:

{
  "query": "mutation IssueCreate { issueCreate(input: { title: \"##properties.title##\", description: \"##properties.description##\", teamId: \"YOUR_TEAM_ID\", labelIds: [\"LABEL_ID_1\", \"LABEL_ID_2\"] }) { success issue { id title } } }"
}

Etiket ID’lerini Team ID’leri bulmak için kullanılan aynı yöntemle bulmanız gerekecek.

Test & Sorun Giderme

1

Test Endpoint'i Kullanın

Yapılandırmanızı doğrulamak için Hardal’daki “Test Endpoint” butonunu kullanın

2

Yanıtı Kontrol Edin

Başarılı bir yanıt {"data":{"issueCreate":{"success":true}}} içermelidir

3

Linear'da Doğrulayın

Sorunun Linear çalışma alanınızda göründüğünü kontrol edin

4

Gerekirse Hata Ayıklayın

Sorunlar görünmüyorsa, aşağıdaki sorun giderme rehberini kontrol edin

Yaygın Sorunlar ve Çözümleri

Kaynaklar