import { ok, badRequest, serverError } from "wix-http-functions"; import wixCrmBackend from "wix-crm-backend"; // CRM label keys — must match labels created in Wix CRM dashboard const CRM_LABELS = { base: "custom.lcg-lead", resilience: "custom.lcg-resilience", ai: "custom.lcg-ai-strategy", }; // LinkedIn URL helpers const liCompanyUrl = (slug) => slug ? `https://www.linkedin.com/company/${slug}` : ""; const liPersonUrl = (slug) => slug ? `https://www.linkedin.com/in/${slug}` : ""; // ───────────────────────────────────────────────────────────────────────────── // POST /_functions/lcgLead // // Expected JSON payload from Clay / Zapier: // { // company: string (required) // contactName: string // contactTitle: string // sector: string // size: "Small" | "Mid Cap" | "Large Cap" // hq: string // linkedinUrl: string (full contact profile URL) // liPersonSlug: string (e.g. "firstname-lastname") // liCompanySlug: string (e.g. "company-name") // email: string // phone: string // liSignals: string (comma-separated signal labels) // score: number (0–100) // focus: "resilience" | "ai" | "general" // notes: string // } // ───────────────────────────────────────────────────────────────────────────── export async function post_lcgLead(request) { let body; try { body = await request.body.json(); } catch (e) { return badRequest({ body: JSON.stringify({ error: "Invalid JSON body" }) }); } const { company, contactName, contactTitle, sector, size, hq, liPersonSlug, liCompanySlug, email, phone, liSignals, score, focus, notes } = body; if (!company) { return badRequest({ body: JSON.stringify({ error: "company is required" }) }); } // Build label list for CRM contact const labelKeys = [CRM_LABELS.base]; if (focus === "resilience") labelKeys.push(CRM_LABELS.resilience); if (focus === "ai") labelKeys.push(CRM_LABELS.ai); // Build extended fields const extendedFields = { "custom.lcg-company": company, "custom.lcg-title": contactTitle || "", "custom.lcg-sector": sector || "", "custom.lcg-size": size || "", "custom.lcg-hq": hq || "", "custom.lcg-li-person": liPersonUrl(liPersonSlug), "custom.lcg-li-company": liCompanyUrl(liCompanySlug), "custom.lcg-signals": liSignals || "", "custom.lcg-score": String(score || 0), "custom.lcg-focus": focus || "general", "custom.lcg-notes": notes || "", "custom.lcg-created": new Date().toISOString(), }; try { // Split name into first/last for CRM const nameParts = (contactName || company).trim().split(" "); const firstName = nameParts[0] || company; const lastName = nameParts.slice(1).join(" ") || ""; // Create or update contact in Wix CRM const contactInfo = { name: { first: firstName, last: lastName }, emails: email ? [{ email, tag: "MAIN" }] : [], phones: phone ? [{ phone, tag: "MAIN" }] : [], labelKeys, extendedFields, }; await wixCrmBackend.contacts.createContact(contactInfo); return ok({ body: JSON.stringify({ success: true, message: `Lead created: ${contactName || company}`, company, score: score || 0, }), }); } catch (err) { console.error("LCG CRM error:", err); return serverError({ body: JSON.stringify({ error: "CRM write failed", detail: err.message || String(err), }), }); } }
top of page

LCG Det Robuste Selskab Workbook

DKK 1,900.00Price
Excluding Sales Tax

DET ROBUSTE SELSKAB Workbook— Sådan bygger du en organisation, der trives under pres

 

De fleste virksomheder fejler ikke på grund af en dårlig strategi. De fejler, fordi ledelsen knækker under pres.

Denne bilinguale guide giver dig syv konkrete træk til at bygge en organisation, der ikke bare overlever pres — men præsterer igennem det.

Hvad du får:

  • 7 konkrete træk fra beslutningskultur under pres til strukturel robusthed
  • De fire søjler: Regulering, Genopretning, Relationer, Omramning
  • Det ugentlige 15-minutters robusthedscheck
  • Et fuldt krisescenarie-rollespil: ransomware, mediepres, kundekrise, datalæk
  • En ledelsesdiagnostik til hele ledelsesteamet

LCG er prækvalificeret rådgiver under SMV:PRO-programmet — op til 50% tilskud, op til 100.000 DKK.

bottom of page