Přejít na hlavní obsah
Twenty zatím nepodporuje nativní vzorcová pole (dostupná v roce 2026), ale stejného výsledku můžete dosáhnout pomocí pracovních postupů. Toto dočasné řešení vám umožní automaticky počítat a vyplňovat hodnoty polí — od jednoduchých zřetězení až po složitou obchodní logiku.

Běžné scénáře použití

Případ použitíPříklad vzorce
Celé jménoKřestní jméno + ” ” + Příjmení
Očekávaná částkaČástka × Pravděpodobnost
Počet dní do termínuTermín splnění - Dnes
Počet dní ve fáziDnes - Datum vstupu do fáze
Skóre leaduBody podle více kritérií
Kompletní příklad sledování času ve fázích kanálu najdete v článku Jak dlouho zůstávají příležitosti v jednotlivých fázích.

Základní vzorec: Zřetězení

Příklad: Automatické vyplnění celého jména

Cíl: Automaticky spojit křestní jméno a příjmení do pole pro celé jméno.

Nastavení

  1. Spouštěč: Záznam je aktualizován nebo vytvořen (Lidé)
  2. Filtr: Ověřte, že se změnilo křestní jméno nebo příjmení
  3. Akce kódu:
export const main = async (params) => {
  const { firstName, lastName } = params;

  const fullName = [firstName, lastName]
    .filter(Boolean)
    .join(' ');

  return { fullName };
};
  1. Aktualizovat záznam: Nastavte Celé jméno na {{code.fullName}}

Číselný vzorec: Očekávaná částka

Příklad: Výpočet očekávaných tržeb

Cíl: Vynásobit částku příležitosti pravděpodobností a získat očekávanou částku. Viz Jak zobrazit očekávanou částku v kanálu pro kompletní pracovní postup.

Rychlé nastavení

  1. Spouštěč: Záznam je aktualizován (Příležitosti, pole Částka NEBO Pravděpodobnost)
  2. Akce kódu:
export const main = async (params) => {
  const { amount, probability } = params;

  const expectedAmount = (amount || 0) * (probability || 0) / 100;

  return { expectedAmount };
};
  1. Aktualizovat záznam: Nastavte Očekávanou částku na {{code.expectedAmount}}

Datumový vzorec: Výpočet počtu dní

Příklad: Počet dní do termínu úkolu

Cíl: Spočítat, kolik dní zbývá do termínu úkolu.

Nastavení

  1. Spouštěč: Záznam je aktualizován nebo vytvořen (Úkoly, pole Termín)
  2. Akce kódu:
export const main = async (params) => {
  const { dueDate } = params;

  if (!dueDate) {
    return { daysUntilDue: null };
  }

  const due = new Date(dueDate);
  const today = new Date();
  const diffTime = due - today;
  const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

  return { daysUntilDue: diffDays };
};
  1. Aktualizovat záznam: Nastavte Počet dní do termínu na {{code.daysUntilDue}}
Záporné hodnoty označují úkoly po termínu. Toto pole můžete použít k filtrování nebo řazení úkolů podle naléhavosti.

Podmíněný vzorec: Skóre leadu

Příklad: Výpočet skóre leadu na základě kritérií

Cíl: Ohodnotit leady podle velikosti společnosti, odvětví a zapojení.

Nastavení

  1. Spouštěč: Záznam je aktualizován (Lidé nebo Společnosti)
  2. Akce kódu:
export const main = async (params) => {
  const { companySize, industry, hasEmail, hasPhone, source } = params;

  let score = 0;

  // Company size scoring
  if (companySize === 'Enterprise') score += 30;
  else if (companySize === 'Mid-Market') score += 20;
  else if (companySize === 'SMB') score += 10;

  // Industry scoring
  const targetIndustries = ['Technology', 'Finance', 'Healthcare'];
  if (targetIndustries.includes(industry)) score += 25;

  // Contact info scoring
  if (hasEmail) score += 10;
  if (hasPhone) score += 15;

  // Source scoring
  if (source === 'Referral') score += 20;
  else if (source === 'Website') score += 10;

  return { leadScore: score };
};
  1. Aktualizovat záznam: Nastavte Skóre leadu na {{code.leadScore}}

Textový vzorec: Extrakce domény

Příklad: Získání domény z e-mailu

Cíl: Automaticky získat a uložit doménu e-mailu.

Nastavení

  1. Spouštěč: Záznam je aktualizován (Lidé, pole E-mail)
  2. Akce kódu:
export const main = async (params) => {
  const { email } = params;

  if (!email) return { domain: null };

  const domain = email.split('@')[1]?.toLowerCase();

  return { domain };
};
  1. Aktualizovat záznam: Nastavte pole Doména na {{code.domain}}

Osvědčené postupy

Výkon

  • Spouštějte pouze při relevantních změnách polí
  • Pomocí filtrů přeskočte záznamy, které nevyžadují výpočet
  • Vyhněte se složitým výpočtům v pracovních postupech s vysokým objemem

Zpracování chyb

  • Před výpočty kontrolujte hodnoty null/undefined
  • Používejte výchozí hodnoty, když data chybí
  • Vracejte jasné chybové zprávy, když výpočty selžou

Testování

  • Testujte okrajové případy (prázdná pole, nulové hodnoty)
  • Před aktivací ručně ověřte výpočty
  • Sledujte běhy pracovních postupů kvůli neočekávaným výsledkům

Související