Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs.twenty.com/llms.txt

Use this file to discover all available pages before exploring further.

Fırsat verilerini faturalama sisteminize (Stripe, QuickBooks, Xero, vb.) otomatik olarak gönderin bir fırsat kazanıldığında.

İş Akışı Yapısı

  1. Tetikleme: Kayıt Güncellendi (Fırsat)
  2. Filtre: Aşama = Closed Won
  3. Kayıt Ara: Şirket ayrıntılarını alın
  4. Kod (isteğe bağlı): Yükü biçimlendirin
  5. HTTP İsteği: Faturalama sistemine gönderin

Adım 1: Tetiklemeyi Ayarlayın

  1. Yeni bir iş akışı oluşturun
  2. Kayıt Güncellendi tetikleyicisini seçin
  3. Nesne olarak Fırsat’ı seçin

Adım 2: Closed Won için filtreleyin

Yalnızca fırsat kazanıldığında devam etmek için bir Filtre eylemi ekleyin:
AyarDeğer
AlanAşama
KoşulEşittir
DeğerCLOSED_WON (veya aşama adınız)
Tetikleyici, herhangi bir Fırsat güncellemesinde tetiklenir. Filtre, aşama Closed Won olduğunda iş akışının devam etmesini sağlar.

Adım 3: Şirket Ayrıntılarını Alın

Fırsat kaydı, fatura için ihtiyaç duyduğunuz tüm Şirket alanlarını içermeyebilir. Bir Kayıt Ara eylemi ekleyin:
AyarDeğer
NesneŞirket
Şuna göre eşleştirID, {{trigger.object.companyId}} değerine eşittir
Bu, fatura adresi, vergi kimliği vb. ile birlikte tam Şirket kaydını getirir.

Adım 4: Yükü Biçimlendirin (İsteğe Bağlı)

Faturalama sisteminiz belirli bir biçim bekliyorsa bir Kod eylemi ekleyin:
export const main = async (params: {
  opportunity: any;
  company: any;
}): Promise<object> => {
  const { opportunity, company } = params;

  return {
    invoice: {
      // Customer info from Company
      customer_name: company.name,
      customer_email: company.email || "",
      billing_address: {
        line1: company.address?.street || "",
        city: company.address?.city || "",
        postal_code: company.address?.postalCode || "",
        country: company.address?.country || ""
      },
      tax_id: company.taxId || null,

      // Invoice details from Opportunity
      amount: opportunity.amount,
      currency: opportunity.currency || "USD",
      description: `Invoice for ${opportunity.name}`,
      due_days: 30,

      // Reference back to Twenty
      metadata: {
        opportunity_id: opportunity.id,
        company_id: company.id
      }
    }
  };
};

Adım 5: Faturalama Sistemine Gönderin

Bir HTTP İsteği eylemi ekleyin:
AyarDeğer
YöntemPOST
URLFaturalama API uç noktanız
BaşlıklarAuthorization: Bearer YOUR_API_KEY
Gövde{{code.invoice}} veya alanları doğrudan eşleyin

Örnek: Stripe Faturası

POST https://api.stripe.com/v1/invoices
Headers:
  Authorization: Bearer sk_live_xxx
  Content-Type: application/x-www-form-urlencoded

Body:
  customer: {{company.stripeCustomerId}}
  collection_method: send_invoice
  days_until_due: 30

Örnek: QuickBooks Faturası

POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
Headers:
  Authorization: Bearer YOUR_ACCESS_TOKEN
  Content-Type: application/json

Body: {{code.invoice}}

Tam İş Akışı Özeti

AdımEylemAmaç
1Tetikleme: Kayıt GüncellendiHerhangi bir Fırsat değiştiğinde tetiklenir
2FiltreYalnızca Aşama = Closed Won ise devam edin
3Kayıt AraFaturalama için tam Şirket ayrıntılarını alın
4KodFaturalama API’si için verileri biçimlendirin
5HTTP İsteğiHarici sistemde fatura oluşturun

İpuçları

  • Harici kimlikleri saklayın: API tarafından döndürülen fatura kimliğini bir Kayıt Güncelle eylemi kullanarak Fırsat’a geri kaydedin
  • Hata işleme: HTTP isteği başarısız olursa bir bildirim göndermek için bir dal ekleyin
  • Önce test edin: Canlıya almadan önce faturalama sisteminizin sandbox/test modunu kullanın

İlgili