|
GRATULACJE! Właśnie wykonałeś pierwszy, najważniejszy krok w kierunku swojej wymarzonej sylwetki!
UWAGA! Twoje materiały są już gotowe:
Za chwilę odkryjesz moją sprawdzoną metodę, dzięki której:
- ✓ Schudłem 29 kg bez efektu jo-jo (i utrzymuję wagę od 2 lat!)
- ✓ Pomogłem 347+ osobom osiągnąć ich wymarzoną sylwetkę
- ✓ Stworzysz nawyki na całe życie, nie tylko chwilową dietę
Po tym czasie link wygaśnie.
Kliknij poniżej i obejrzyj 4-minutowe wideo, które zmieni Twoje podejście do odchudzania:
TWOJE BONUSY (wartość 497 zł - dziś ZA DARMO):
- E-book "ZMIANA" - Mój najnowszy poradnik (wartość 147 zł)
- Darmowa dieta startowa - 7-dniowy jadłospis (wartość 97 zł)
- Dostęp do grupy wsparcia na FB - 2000+ osób (wartość 67 zł/mies.)
- BONUS SPECJALNY: Bezpłatna konsultacja online (wartość 250 zł) - tylko dla pierwszych 10 osób!
"W 3 miesiące schudłam 18 kg! Metoda Kamila to nie kolejna dieta cud, ale realny plan, który da się stosować na co dzień. Najlepsze? Zero efektu jo-jo od roku!"
- Katarzyna M., 34 lata
PS. Pamiętaj - na konsultacji przygotuję dla Ciebie DARMOWY 12-tygodniowy plan działania dostosowany do Twoich potrzeb. Pokażę Ci go jeszcze ZANIM zdecydujesz się na współpracę!
TAK, CHCĘ OBEJRZEĆ WIDEO I OTRZYMAĆ BONUSY
Nie przegap tej szansy - to może być dzień, który zmieni Twoje życie!
Cześć ${imie}!
Jeśli jeszcze nie, to koniecznie zrób to teraz, ponieważ:
BEZPŁATNA KONSULTACJA - Tylko dla Ciebie!
Co otrzymasz na konsultacji?
- 12-tygodniowy indywidualny plan działania (wartość 250 zł)
- Analizę Twoich największych przeszkód w odchudzaniu
- Konkretne rozwiązania dopasowane do Twojego trybu życia
- Plan treningowy i żywieniowy "szyty na miarę"
Wszystko POKAŻĘ Ci jeszcze PRZED podjęciem decyzji o współpracy!
3 osoby właśnie rezerwują swoje terminy...
Dla Ciebie dziś: GRATIS
Ale tylko jeśli wypełnisz formularz w ciągu 48h!
OBEJRZYJ WIDEO I ZAREZERWUJ KONSULTACJĘ
✓ Jak przygotować się do konsultacji?
- Obejrzyj wideo do końca - poznasz moją metodę
- Wypełnij formularz pod wideo - to zajmie max 3 minuty
- Pobierz aplikację Google Meet - spotkamy się online
- Przygotuj pytania - odpowiem na wszystkie Twoje wątpliwości
Kamerka NIE jest wymagana! Wystarczy, że będziesz mnie słyszeć i widzieć mój ekran.
PS. Wiesz co jest najgorsze? 80% osób, które odkładają decyzję "na później", nigdy nie wraca do tematu. Nie pozwól, aby Twoja szansa na zmianę przeszła Ci koło nosa!
"Najlepszy moment na zmianę był wczoraj. Drugi najlepszy jest TERAZ."
Witaj ${imie}!
Może się zastanawiasz: "Czy to naprawdę działa?"
Pozwól, że pokażę Ci, co osiągnęli ludzie DOKŁADNIE w Twojej sytuacji:
"Minus 22 kg w 4 miesiące!"
"Myślałam, że po 40-tce już nie schudnę. Kamil udowodnił mi, że się myliłam. Jego plan był prosty do wdrożenia, a efekty przeszły moje oczekiwania!"
- Anna K., 42 lata, mama 3 dzieci
"Z rozmiaru XXL do M!"
"Pracuję po 12 godzin dziennie. Myślałem, że nie dam rady. Plan Kamila był idealnie dopasowany do mojego trybu życia. Schudłem 31 kg!"
- Piotr M., 38 lat, kierowca
"Najlepsza inwestycja w siebie!"
"15 kg w 3 miesiące i czuję się jak nastolatka! Mam więcej energii niż 10 lat temu. Żałuję tylko, że nie zaczęłam wcześniej!"
- Małgorzata W., 35 lat
Zobacz wszystkie 284 opinie na naszej stronie
Twoja kolej na sukces!
Za 3 miesiące możesz być kolejną osobą, która napisze swoją historię sukcesu!
Ale tylko jeśli ZACZNIESZ DZIAŁAĆ TERAZ.
Co musisz zrobić?
- Obejrzyj moje 4-minutowe wideo
- Wypełnij krótki formularz (3 minuty)
- Odbierz DARMOWĄ konsultację (wartość 250 zł)
Potem koszt: 250 zł
DOŁĄCZ DO 347+ OSÓB, KTÓRE ZMIENIŁY SWOJE ŻYCIE
Specjalna wiadomość od mojej ostatniej klientki:
"${imie}, jeśli to czytasz - NIE ZWLEKAJ! Ja też się wahałam 2 tygodnie. To były 2 stracone tygodnie, w których mogłam już działać. Dziś, 3 miesiące później, jestem lżejsza o 17 kg i żałuję tylko jednego - że nie zaczęłam od razu!"
- Dorota, rozpoczęła program 3 miesiące temu
PS. Pamiętaj - na konsultacji POKAŻĘ Ci cały 12-tygodniowy plan jeszcze ZANIM podejmiesz decyzję. Zero ryzyka, same korzyści!
Cześć ${imie}!
To Twoja OSTATNIA SZANSA na darmową konsultację!
Jutro o tej porze będzie za późno...
Mam dla Ciebie świetne wieści! Przygotowałem wszystkie obiecane bonusy. Są już dostępne do pobrania!
TWOJE EKSKLUZYWNE BONUSY:
BONUS #1: E-book "ZMIANA" - Mój najnowszy poradnik
147 zł GRATIS!Kompletny przewodnik po transformacji sylwetki. 87 stron praktycznej wiedzy!
BONUS #2: Darmowa 7-dniowa dieta startowa
97 zł GRATIS!Gotowy jadłospis z listą zakupów i przepisami. Zacznij już jutro!
BONUS #3: Dostęp do ekskluzywnej grupy na Facebooku
67 zł/mies GRATIS!2137+ osób na tej samej drodze. Wsparcie, motywacja, sprawdzone porady!
BONUS SPECJALNY: Indywidualna konsultacja + Plan 12-tyg
250 zł OSTATNIA SZANSA!UWAGA: Ten bonus jest dostępny TYLKO DZIŚ! Jutro konsultacja będzie kosztować 250 zł.
Całkowita wartość Twoich bonusów:
561 zł 0 zł
Oszczędzasz ponad 500 złotych!
POBIERZ E-BOOK I DIETĘ DOŁĄCZ DO GRUPY FB
Jak się przygotować do DARMOWEJ konsultacji?
To bardzo proste - tylko 4 kroki:
- Pobierz Google Meet na telefon lub komputer (darmowa aplikacja)
- Obejrzyj moje wideo do końca (4 minuty)
- Wypełnij formularz pod wideo (3 minuty)
- Wybierz termin, który Ci pasuje
✓ Ważne: Kamerka NIE jest wymagana! Możesz uczestniczyć anonimowo. Udostępnię Ci mój ekran i pokażę przygotowany plan.
${imie}, TO NAPRAWDĘ OSTATNI MOMENT!
Za 24 godziny stracisz szansę na:
- Darmową konsultację wartą 250 zł
- Indywidualny plan 12-tygodniowy
- Moją osobistą pomoc w starcie
Nie żałuj później, że nie skorzystałeś!
OSTATNIA SZANSA - ZAREZERWUJ KONSULTACJĘ TERAZ!
Moja osobista obietnica dla Ciebie:
"${imie}, wiem, że możesz mieć wątpliwości. Dlatego daję Ci moją gwarancję: na konsultacji pokażę Ci DOKŁADNY plan działania na 12 tygodni. Zobaczysz co, kiedy i jak masz robić. Jeśli uznasz, że to nie dla Ciebie - po prostu podziękujesz i tyle. Zero presji, zero nacisków.
Ale jestem pewien, że gdy zobaczysz swój spersonalizowany plan, będziesz chciał zacząć od razu!"
- Kamil Owsianik
PS. To jest mój ostatni email w tej sprawie. Jeśli teraz nie skorzystasz, stracisz tę okazję na zawsze. Konsultacja warta 250 zł czeka na Ciebie ZA DARMO - ale tylko DZIŚ!
PPS. Pamiętaj - już ponad 347 osób zmieniło swoje życie. Następny możesz być Ty!
Świetna decyzja! Właśnie wykonałeś najważniejszy krok w kierunku swojej wymarzonej sylwetki.
CO DZIEJE SIĘ DALEJ?
1POTWIERDŹ ZGŁOSZENIE (WAŻNE!)
Kliknij poniżej i potwierdź swoje zgłoszenie przez WhatsApp lub email:
POTWIERDŹ ZGŁOSZENIE TUTAJ
2W ciągu 24-48h skontaktujemy się z Tobą
Zadzwonimy z numeru: +48 733 705 478
Zapisz ten numer, aby nie przegapić połączenia!
3Ustalimy dogodny termin konsultacji
Znajdziemy termin, który będzie Ci najbardziej odpowiadał.
Konsultacja trwa około 20-30 minut.
4Przygotuję Twój indywidualny plan
Na podstawie Twoich danych przygotuję spersonalizowany
12-tygodniowy plan działania, który pokażę Ci na konsultacji.
POTWIERDŹ SWOJE ZGŁOSZENIE TERAZ
JAK PRZYGOTOWAĆ SIĘ DO KONSULTACJI?
- Pobierz aplikację Google Meet - to tam się spotkamy (link otrzymasz SMS-em)
- Znajdź spokojne miejsce - gdzie będziesz mógł swobodnie rozmawiać
- Przygotuj pytania - zapisz wszystko, co chcesz wiedzieć
- Kamerka NIE jest wymagana - możesz uczestniczyć tylko głosowo
- Weź notes - będziesz chciał zapisać ważne informacje
Nie zapomnij pobrać swoich BONUSÓW!
Jako osoba zapisana na konsultację otrzymujesz:
- E-book "ZMIANA" (wartość 147 zł)
- 7-dniową dietę startową (wartość 97 zł)
- Dostęp do grupy wsparcia na FB
Masz pytania? Potrzebujesz szybkiego kontaktu?
Napisz do mnie na WhatsApp:
WhatsApp: +48 733 705 478Lub zadzwoń: +48 733 705 478
Jestem dostępny pon-pt: 9:00-18:00, sob: 10:00-14:00
WAŻNE:
Na konsultacji pokażę Ci DOKŁADNY plan na 12 tygodni.
Zobaczysz wszystko jeszcze ZANIM podejmiesz decyzję o współpracy.
To konsultacja wartości 250 zł - dla Ciebie całkowicie ZA DARMO!
Do zobaczenia na konsultacji!
Pozdrawiam serdecznie,
Kamil Owsianik
Twój trener przemian
PS. Jeśli z jakiegoś powodu będziesz musiał przełożyć termin - daj znać.
Zawsze możemy ustalić inny, dogodny dla Ciebie moment.
Cześć ${data.imie}!
Świetnie! Twoja konsultacja jest potwierdzona!
Szczegóły spotkania:
Data: ${formattedDate}
Godzina: ${formattedTime}
Miejsce: Online - Google Meet
${data.meetLink ? `Link do spotkania:
${data.meetLink}
Link: Otrzymasz w osobnej wiadomości
'}JAK PRZYGOTOWAĆ SIĘ DO KONSULTACJI?
- Pobierz Google Meet - darmowa aplikacja na telefon/komputer
- Przygotuj spokojne miejsce - gdzie będziesz mógł swobodnie rozmawiać
- Weź notes i długopis - będziesz chciał zapisać ważne informacje
- Przygotuj pytania - zapisz wszystko, co chcesz wiedzieć
Kamerka NIE jest wymagana! Udostępnię Ci mój ekran i pokażę przygotowany plan.
WAŻNE: Jeśli coś wypadnie i nie będziesz mógł uczestniczyć w konsultacji, koniecznie daj znać minimum 10 godzin wcześniej! Wtedy ustalimy nowy termin i nie stracisz swojej bezpłatnej szansy.
WhatsApp/Tel: +48 733 705 478
Na konsultacji pokażę Ci DOKŁADNY plan na 12 tygodni!
Do zobaczenia jutro!
Kamil Owsianik
Hej ${data.imie}!
Jutro o ${formattedTime} mamy konsultację!
Przygotuj się na jutro:
- Pobierz Google Meet (jeśli jeszcze nie masz)
- Znajdź spokojne miejsce na rozmowę
- Przygotuj pytania które Cię nurtują
Link do spotkania: ${data.meetLink}
` : 'Link otrzymasz w kolejnej wiadomości
'}
Pamiętaj: Jeśli nie możesz uczestniczyć, daj znać minimum 10h wcześniej!
WhatsApp: +48 733 705 478
Do zobaczenia jutro!
Kamil
Za 2 godziny spotykamy się online!
Cześć ${data.imie}!
Ostatnie przygotowania:
- Sprawdź czy masz Google Meet
- Przygotuj notes do zapisków
- Znajdź spokojne miejsce
Link: ${data.meetLink}
` : ''}Pokażę Ci Twój spersonalizowany plan na 12 tygodni!
Do zobaczenia!
Kamil
STARTUJEMY ZA 15 MINUT!
${data.imie}, czekam na Ciebie online!
${data.meetLink ? `DOŁĄCZ DO SPOTKANIA` : 'Sprawdź link w poprzednich wiadomościach
'}Pamiętaj - udostępnię Ci ekran i pokażę cały plan!
${createEmailFooter()}Dziękuję za spotkanie, ${data.imie}!
Jak obiecałem, przesyłam materiały:
Pozdrawiam,
Kamil
Cześć ${data.imie}!
Mam nadzieję, że nasza wczorajsza rozmowa dała Ci jasny obraz tego, jak możesz osiągnąć swoją wymarzoną sylwetkę.
TWÓJ PLAN JEST TUTAJ:
OFERTA SPECJALNA - TYLKO 48 GODZIN!
Jak wspomniałem na konsultacji, przygotowałem dla Ciebie specjalną ofertę:
1350 zł (zamiast 1500 zł)
Oszczędzasz 150 zł!
Opcje płatności:
Ta oferta jest ważna tylko 48 godzin od naszej rozmowy.
Kamil
${createEmailFooter()}OSTATNIE GODZINY!
Cześć ${data.imie},
Oferta 1350 zł wygasa dziś o północy!
OSTATNIA SZANSA
1350 zł zamiast 1500 zł
Oszczędzasz 150 zł!
Kamil
${createEmailFooter()}Cześć ${data.imie}
Minął tydzień od naszej konsultacji.
Chciałbym poznać Twoją opinię i dowiedzieć się, co mogę poprawić.
Wypełnij krótką ankietę (2 minuty):
W podziękowaniu otrzymasz:
KOD -10% na wszystkie programy
Pozdrawiam,
Kamil
WITAJ W ZESPOLE!
Cześć ${data.imie}!
Cieszę się, że jesteś z nami! Teraz zaczynamy prawdziwą pracę nad Twoją sylwetką.
CO DALEJ?
Napisz "START" na WhatsApp: +48 733 705 478
Otrzymasz dostęp do platformy i wszystkie materiały startowe.
Witaj w rodzinie Kliniki Formy!
Kamil
${createEmailFooter()}Test Email
System działa poprawnie.
', name: "Kamil Owsianik - TEST", replyTo: CONFIG.EMAIL_SENDER } ); incrementEmailCounter(); Logger.log(`[Test] Email testowy wysłany do: ${email}`); return 'Email testowy wysłany'; } catch (error) { Logger.log(`[Test] Błąd wysyłania: ${error.toString()}`); return 'Błąd: ' + error.toString(); } }function addTestClient(imie = 'Test', nazwisko = 'Testowy', email = 'test@example.com', telefon = '+48123456789') { const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); const sheet = spreadsheet.getSheetByName(CONFIG.PROGRAM_SHEET_NAME); const rowData = [ new Date(), imie, nazwisko, email, telefon, '80', // waga '180', // wzrost '35', // wiek 'Test systemu', '3 miesiące', 'Dobrze', 'Pilne', '1500', '10-18', 'Test', 'Brak' ]; sheet.appendRow(rowData); Logger.log(`[Test] Dodano klienta testowego: ${email}`); return 'Klient testowy dodany'; }// ==================== MENU INTERFACE ==================== function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('Klinika Formy CRM v3.3') .addItem('📊 Status systemu', 'showSystemStatus') .addItem('⚡ Przetwórz kolejkę TERAZ', 'forceProcessQueue') .addItem('📈 Sprawdź limity emaili', 'showEmailQuotaStatus') .addSeparator() .addSubMenu(ui.createMenu('📅 Kalendarz') .addItem('Skanuj kalendarz TERAZ', 'manualCalendarScan') .addItem('Pokaż najbliższe konsultacje', 'showUpcomingConsultations')) .addSubMenu(ui.createMenu('📧 Email & GetResponse') .addItem('Test GetResponse', 'testGetResponseAPI') .addItem('Test wysyłki email', 'promptTestEmail') .addItem('Sprawdź limity emaili', 'showEmailQuotaStatus')) .addSubMenu(ui.createMenu('⚙️ Administracja') .addItem('Konfiguruj system v3.3', 'setupOptimizedSystem') .addItem('Ręczna konserwacja', 'dailyMaintenance') .addItem('Dodaj klienta testowego', 'addTestClient') .addItem('Wyczyść WSZYSTKO', 'clearAllData')) .addSeparator() .addItem('📚 Dokumentacja', 'showDocumentation') .addToUi(); }function showEmailQuotaStatus() { const status = getEmailQuotaStatus(); const ui = SpreadsheetApp.getUi(); const message = ` LIMITY EMAILI - STATUS:📊 DZIENNY LIMIT: • Wykorzystano: ${status.daily.used}/${status.daily.limit} • Pozostało: ${status.daily.remaining} • Wykorzystanie: ${status.daily.percentage}%⏰ GODZINOWY LIMIT: • Wykorzystano: ${status.hourly.used}/${status.hourly.limit} • Pozostało: ${status.hourly.remaining}${status.daily.remaining === 0 ? '⚠️ UWAGA: Limit dzienny wyczerpany! Emaile zostaną wysłane jutro.' : ''} ${status.daily.remaining < 10 && status.daily.remaining > 0 ? '⚠️ UWAGA: Zbliżasz się do limitu dziennego!' : ''} `; ui.alert('Status limitów emaili', message, ui.ButtonSet.OK); }function showSystemStatus() { const status = checkSystemStatus(); const html = HtmlService.createHtmlOutput(`System Status - v${status.version}
Limity emaili
System
Rekordy w arkuszach
| Arkusz | Liczba rekordów |
|---|---|
| Ebook | ${status.sheets.ebook} |
| Program | ${status.sheets.program} |
Typy w kolejce
| Typ | Liczba |
|---|---|
| ${type} | ${count} |
Najbliższe konsultacje (24h)
${status.nextEvents.length > 0 ? `| Tytuł | Czas | Goście |
|---|---|---|
| ${e.title} | ${e.time} | ${e.guests.join(', ')} |
Brak konsultacji w najbliższych 24h
' } `) .setTitle('Status Systemu') .setWidth(800) .setHeight(700); SpreadsheetApp.getUi().showModalDialog(html, 'Status Systemu CRM v3.3'); }function showUpcomingConsultations() { const consultations = getUpcomingConsultations(); const html = HtmlService.createHtmlOutput(`Konsultacje w najbliższych 24h
${consultations.length > 0 ? `| Tytuł | Czas | Goście |
|---|---|---|
| ${c.title} | ${c.time.toLocaleString('pl-PL')} | ${c.guests.join(' ')} |
Brak konsultacji w najbliższych 24 godzinach
' } `) .setTitle('Najbliższe konsultacje') .setWidth(600) .setHeight(400); SpreadsheetApp.getUi().showModalDialog(html, 'Najbliższe konsultacje'); }function promptTestEmail() { const ui = SpreadsheetApp.getUi(); const response = ui.prompt( 'Test email', 'Podaj adres email do testu:', ui.ButtonSet.OK_CANCEL ); if (response.getSelectedButton() === ui.Button.OK) { const result = testEmailDelivery(response.getResponseText()); ui.alert('Wynik', result, ui.ButtonSet.OK); } } function showDocumentation() { const html = HtmlService.createHtmlOutput(`Klinika Formy CRM v3.3 - Dokumentacja
- Kontrola limitów emaili - automatyczne zarządzanie limitami Google (90/dzień)
- Nocny processor - wysyłanie zaległych emaili o 2 w nocy
- Batch processing - przetwarzanie max 5 emaili na raz
- Monitoring limitów - wizualizacja wykorzystania
- Automatyczne odkładanie - emaile przekraczające limit są odkładane na jutro
- Triggery co 2 godziny zamiast co godzinę
- Dzienny limit: 90 emaili (bezpieczny margines od limitu Google 100)
- Godzinowy limit: 20 emaili
- Batch: 5 emaili na jedno przetworzenie
- Reset: Automatyczny o północy
- Zaległe: Wysyłane automatycznie o 2:00 w nocy
- Emaile są automatycznie odkładane na jutro o 2:00
- System informuje w logach o przekroczeniu limitu
- Można sprawdzić status w menu "Sprawdź limity emaili"
Główne funkcje:
- 4 emaile dla ebooka (natychmiast, 5h, 24h, 48h)
- 7 emaili konsultacyjnych (przed i po spotkaniu)
- Wszystkie z kontrolą limitów
- Skanowanie co 2 godziny
- Automatyczne wykrywanie konsultacji
- Pomijanie skanowania przy małej ilości limitów
- Sprawdzanie limitu przed każdym emailem
- Automatyczne odkładanie przy przekroczeniu
- Priorytetyzacja ważnych emaili
Jak działa kontrola limitów?
- Przed wysłaniem: System sprawdza czy nie przekroczono limitu
- Jeśli limit OK: Email jest wysyłany, licznik zwiększany
- Jeśli limit przekroczony: Email odkładany na jutro o 2:00
- Nocne przetwarzanie: O 2:00 system przetwarza zaległe emaile
- Reset liczników: O północy liczniki są resetowane
Triggery systemowe:
- mainProcessor: Co 2 godziny - główne przetwarzanie
- nightProcessor: O 2:00 - zaległe emaile
- dailyMaintenance: O 3:00 - czyszczenie systemu
Monitoring:
- Menu → "📊 Status systemu" - pełny przegląd
- Menu → "📈 Sprawdź limity emaili" - szybki status limitów
- Logi pokazują wykorzystanie po każdym emailu
Rozwiązywanie problemów:
- Emaile nie wysyłają się: Sprawdź limity, może być przekroczony
- Limit wyczerpany: Poczekaj do jutra lub do 2:00
- Zaległe emaile: Zostaną wysłane automatycznie o 2:00
- Chcesz wymusić: "Przetwórz kolejkę TERAZ" - ale limity nadal obowiązują
Kontakt wsparcia:
Email: owsiany1995@gmail.com
WhatsApp: +48 733 705 478
`) .setTitle('Dokumentacja') .setWidth(700) .setHeight(600); SpreadsheetApp.getUi().showModalDialog(html, 'Dokumentacja CRM v3.3'); }// ==================== FUNKCJE TESTOWE ==================== function testGetResponseAPI() { const url = 'https://api.getresponse.com/v3/campaigns'; const options = { 'method': 'get', 'contentType': 'application/json', 'headers': { 'X-Auth-Token': 'api-key ' + CONFIG.GETRESPONSE_API_KEY }, 'muteHttpExceptions': true }; try { const response = UrlFetchApp.fetch(url, options); Logger.log('[GetResponse Test] Kod: ' + response.getResponseCode()); if (response.getResponseCode() === 200) { const campaigns = JSON.parse(response.getContentText()); Logger.log('[GetResponse Test] Znaleziono kampanii: ' + campaigns.length); // Test dodania kontaktu const testEmail = "test_" + new Date().getTime() + "@example.com"; const testResult = addContactToGetResponse("Test", testEmail); Logger.log('[GetResponse Test] Dodanie testowego kontaktu: ' + testResult); return "GetResponse działa poprawnie"; } else { return "Błąd GetResponse: " + response.getResponseCode(); } } catch (error) { Logger.log('[GetResponse Test] Błąd: ' + error.toString()); return "Błąd testu: " + error.toString(); } }// ==================== INICJALIZACJA ==================== function init() { Logger.log('[Init] Inicjalizacja systemu CRM v3.3...'); // Sprawdź czy arkusze istnieją const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); const ebookSheet = spreadsheet.getSheetByName(CONFIG.EBOOK_SHEET_NAME); const programSheet = spreadsheet.getSheetByName(CONFIG.PROGRAM_SHEET_NAME); if (!ebookSheet || !programSheet) { throw new Error('Brak wymaganych arkuszy! Sprawdź nazwy arkuszy.'); } // Ustaw system const result = setupOptimizedSystem(); Logger.log('[Init] System v3.3 z kontrolą limitów gotowy do pracy!'); Logger.log('[Init] Limity: 90 emaili/dzień, 20 emaili/godzinę, batch 5 emaili'); Logger.log('[Init] Triggery: mainProcessor (co 2h), nightProcessor (2:00), dailyMaintenance (3:00)'); return result; }// ==================== DEBUGOWANIE ==================== function debugQueue() { const queue = new QueueManager(); const status = queue.getStatus(); console.log('=== STATUS KOLEJKI ==='); console.log('Całkowita liczba: ' + status.total); console.log('Oczekujące: ' + status.pending); console.log('Zaległe: ' + status.overdue); console.log('\nPo typach:'); for (const type in status.byType) { console.log(` ${type}: ${status.byType[type]}`); } // Pokaż szczegóły pierwszych 5 elementów const properties = PropertiesService.getScriptProperties().getProperties(); let shown = 0; console.log('\n=== PIERWSZE 5 ELEMENTÓW ==='); for (const key in properties) { if (!key.startsWith('queue_')) continue; if (shown >= 5) break; const item = JSON.parse(properties[key]); const sendTime = new Date(item.sendTime); console.log(`\n${item.type}:`); console.log(` Email: ${item.data.email}`); console.log(` Czas wysyłki: ${sendTime}`); console.log(` Próby: ${item.attempts}`); shown++; } return status; }function resetEmailCounters() { const properties = PropertiesService.getScriptProperties(); const allProperties = properties.getProperties(); let removed = 0; for (const key in allProperties) { if (key.startsWith('email_count_')) { properties.deleteProperty(key); removed++; } } console.log(`Usunięto ${removed} liczników emaili`); return `Zresetowano ${removed} liczników`; }function simulateDayChange() { // Ta funkcja symuluje zmianę dnia dla testów const properties = PropertiesService.getScriptProperties(); // Ustaw wczorajszą datę dla obecnych liczników const today = new Date().toDateString(); const yesterday = new Date(); yesterday.setDate(yesterday.getDate() - 1); const yesterdayString = yesterday.toDateString(); const allProperties = properties.getProperties(); for (const key in allProperties) { if (key.includes(today)) { const newKey = key.replace(today, yesterdayString); properties.setProperty(newKey, allProperties[key]); properties.deleteProperty(key); } } console.log('Symulacja zmiany dnia zakończona - liczniki przeniesione na wczoraj'); return 'Dzień zmieniony'; }// ==================== MONITORING WYDAJNOŚCI ==================== function performanceReport() { const startTime = new Date(); const report = { timestamp: startTime, emailQuota: getEmailQuotaStatus(), queueStatus: new QueueManager().getStatus(), systemHealth: checkSystemHealth(), recommendations: [] }; // Analiza i rekomendacje if (report.emailQuota.daily.percentage > 80) { report.recommendations.push('Zbliżasz się do limitu dziennego emaili - rozważ przesunięcie niektórych na jutro'); } if (report.queueStatus.overdue > 10) { report.recommendations.push('Masz ' + report.queueStatus.overdue + ' zaległych emaili - uruchom forceProcessQueue()'); } if (report.systemHealth.properties > 400) { report.recommendations.push('Dużo properties - uruchom dailyMaintenance() aby wyczyścić stare'); } const duration = (new Date() - startTime) / 1000; report.checkDuration = duration; console.log('=== RAPORT WYDAJNOŚCI ==='); console.log(`Czas sprawdzenia: ${duration}s`); console.log(`\nLimity emaili: ${report.emailQuota.daily.used}/${report.emailQuota.daily.limit}`); console.log(`Kolejka: ${report.queueStatus.total} (zaległe: ${report.queueStatus.overdue})`); console.log(`\nRekomendacje:`); report.recommendations.forEach(r => console.log(' • ' + r)); return report; }function checkSystemHealth() { return { triggers: ScriptApp.getProjectTriggers().length, properties: Object.keys(PropertiesService.getScriptProperties().getProperties()).length, executionsToday: getExecutionCount(), lastRun: PropertiesService.getScriptProperties().getProperty('last_main_run') }; }function getExecutionCount() { // Przybliżona liczba wykonań dzisiaj const properties = PropertiesService.getScriptProperties(); const today = new Date().toDateString(); const count = properties.getProperty('executions_' + today) || 0; return parseInt(count); }// ==================== BACKUP I RESTORE ==================== function backupConfiguration() { const backup = { version: CONFIG.SYSTEM_VERSION, timestamp: new Date().toISOString(), config: CONFIG, properties: PropertiesService.getScriptProperties().getProperties() }; // Zapisz backup w arkuszu const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); let backupSheet = spreadsheet.getSheetByName('BACKUP_CONFIG'); if (!backupSheet) { backupSheet = spreadsheet.insertSheet('BACKUP_CONFIG'); backupSheet.appendRow(['Timestamp', 'Version', 'Backup Data']); } backupSheet.appendRow([ backup.timestamp, backup.version, JSON.stringify(backup) ]); console.log('Backup utworzony: ' + backup.timestamp); return backup; }function restoreConfiguration(backupRow) { if (!backupRow) { console.log('Podaj numer wiersza backup do przywrócenia'); return 'Błąd: brak numeru wiersza'; } const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); const backupSheet = spreadsheet.getSheetByName('BACKUP_CONFIG'); if (!backupSheet) { return 'Błąd: brak arkusza BACKUP_CONFIG'; } const backupData = backupSheet.getRange(backupRow, 3).getValue(); const backup = JSON.parse(backupData); // Przywróć properties const properties = PropertiesService.getScriptProperties(); properties.setProperties(backup.properties); console.log('Przywrócono konfigurację z: ' + backup.timestamp); return 'Przywrócono backup z ' + backup.timestamp; }// ==================== KOŃCOWA WALIDACJA ==================== function validateSystem() { const errors = []; const warnings = []; const info = []; // Sprawdź arkusze try { const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); const ebookSheet = spreadsheet.getSheetByName(CONFIG.EBOOK_SHEET_NAME); const programSheet = spreadsheet.getSheetByName(CONFIG.PROGRAM_SHEET_NAME); if (!ebookSheet) errors.push('Brak arkusza: ' + CONFIG.EBOOK_SHEET_NAME); if (!programSheet) errors.push('Brak arkusza: ' + CONFIG.PROGRAM_SHEET_NAME); info.push('Arkusze: OK'); } catch (e) { errors.push('Nie można otworzyć arkusza: ' + e.toString()); } // Sprawdź triggery const triggers = ScriptApp.getProjectTriggers(); if (triggers.length === 0) { warnings.push('Brak triggerów - uruchom setupOptimizedSystem()'); } else { info.push('Triggery: ' + triggers.length); } // Sprawdź limity const quota = getEmailQuotaStatus(); if (quota.daily.remaining < 10) { warnings.push('Mało limitów emaili: ' + quota.daily.remaining); } else { info.push('Limit emaili: ' + quota.daily.remaining + ' pozostało'); } // Sprawdź kolejkę const queueStatus = new QueueManager().getStatus(); if (queueStatus.overdue > 0) { warnings.push('Zaległe emaile w kolejce: ' + queueStatus.overdue); } console.log('=== WALIDACJA SYSTEMU ==='); if (errors.length > 0) { console.log('\n❌ BŁĘDY:'); errors.forEach(e => console.log(' • ' + e)); } if (warnings.length > 0) { console.log('\n⚠️ OSTRZEŻENIA:'); warnings.forEach(w => console.log(' • ' + w)); } console.log('\n✅ INFORMACJE:'); info.forEach(i => console.log(' • ' + i)); return { valid: errors.length === 0, errors: errors, warnings: warnings, info: info }; }
|
GRATULACJE! Właśnie wykonałeś pierwszy, najważniejszy krok w kierunku swojej wymarzonej sylwetki!
UWAGA! Twoje materiały są już gotowe:
Za chwilę odkryjesz moją sprawdzoną metodę, dzięki której:
- ✓ Schudłem 29 kg bez efektu jo-jo (i utrzymuję wagę od 2 lat!)
- ✓ Pomogłem 347+ osobom osiągnąć ich wymarzoną sylwetkę (tylko przez ostatni rok)
- ✓ Stworzysz nawyki na całe życie, nie tylko chwilową dietę
Po tym czasie link wygaśnie.
Kliknij poniżej i obejrzyj 4-minutowe wideo, które zmieni Twoje podejście do odchudzania:
TWOJE BONUSY (wartość 497 zł - dziś ZA DARMO):
- E-book "ZMIANA" - Mój najnowszy poradnik (wartość 147 zł)
- Darmowa dieta startowa - 7-dniowy jadłospis (wartość 97 zł)
- Dostęp do grupy wsparcia na FB - 2000+ osób (wartość 67 zł/mies.)
- BONUS SPECJALNY: Bezpłatna konsultacja online (wartość 250 zł) - tylko dla pierwszych 10 osób!
"W 3 miesiące schudłam 18 kg! Metoda Kamila to nie kolejna dieta cud, ale realny plan, który da się stosować na co dzień. Najlepsze? Zero efektu jo-jo od roku!"
- Katarzyna M., 34 lata
PS. Pamiętaj - na konsultacji przygotuję dla Ciebie DARMOWY 12-tygodniowy plan działania dostosowany do Twoich potrzeb. Pokażę Ci go jeszcze ZANIM zdecydujesz się na współpracę. To wartość 250 zł - dziś możesz otrzymać go ZA DARMO!
TAK, CHCĘ OBEJRZEĆ WIDEO I OTRZYMAĆ BONUSY
Nie przegap tej szansy - to może być dzień, który zmieni Twoje życie!
Cześć ${imie}!
Jeśli jeszcze nie, to koniecznie zrób to teraz, ponieważ:
BEZPŁATNA KONSULTACJA - Tylko dla Ciebie!
Co otrzymasz na konsultacji?
- 12-tygodniowy indywidualny plan działania (wartość 250 zł)
- Analizę Twoich największych przeszkód w odchudzaniu
- Konkretne rozwiązania dopasowane do Twojego trybu życia
- Plan treningowy i żywieniowy "szyty na miarę"
Wszystko POKAŻĘ Ci jeszcze PRZED podjęciem decyzji o współpracy!
3 osoby właśnie rezerwują swoje terminy...
Dla Ciebie dziś: GRATIS
Ale tylko jeśli wypełnisz formularz w ciągu 48h!
OBEJRZYJ WIDEO I ZAREZERWUJ KONSULTACJĘ
✓ Jak przygotować się do konsultacji?
- Obejrzyj wideo do końca - poznasz moją metodę
- Wypełnij formularz pod wideo - to zajmie max 3 minuty
- Pobierz aplikację Google Meet - spotkamy się online
- Przygotuj pytania - odpowiem na wszystkie Twoje wątpliwości
Kamerka NIE jest wymagana! Wystarczy, że będziesz mnie słyszeć i widzieć mój ekran.
PS. Wiesz co jest najgorsze? 80% osób, które odkładają decyzję "na później", nigdy nie wraca do tematu. Nie pozwól, aby Twoja szansa na zmianę przeszła Ci koło nosa!
"Najlepszy moment na zmianę był wczoraj. Drugi najlepszy jest TERAZ."
Witaj ${imie}!
Może się zastanawiasz: "Czy to naprawdę działa?"
Pozwól, że pokażę Ci, co osiągnęli ludzie DOKŁADNIE w Twojej sytuacji:
"Minus 22 kg w 4 miesiące!"
"Myślałam, że po 40-tce już nie schudnę. Kamil udowodnił mi, że się myliłam. Jego plan był prosty do wdrożenia, a efekty przeszły moje oczekiwania!"
- Anna K., 42 lata, mama 3 dzieci
"Z rozmiaru XXL do M!"
"Pracuję po 12 godzin dziennie. Myślałem, że nie dam rady. Plan Kamila był idealnie dopasowany do mojego trybu życia. Schudłem 31 kg!"
- Piotr M., 38 lat, kierowca
"Najlepsza inwestycja w siebie!"
"15 kg w 3 miesiące i czuję się jak nastolatka! Mam więcej energii niż 10 lat temu. Żałuję tylko, że nie zaczęłam wcześniej!"
- Małgorzata W., 35 lat
Zobacz wszystkie 284 opinie na naszej stronie
Twoja kolej na sukces!
Za 3 miesiące możesz być kolejną osobą, która napisze swoją historię sukcesu!
Ale tylko jeśli ZACZNIESZ DZIAŁAĆ TERAZ.
Co musisz zrobić?
- Obejrzyj moje 4-minutowe wideo
- Wypełnij krótki formularz (3 minuty)
- Odbierz DARMOWĄ konsultację (wartość 250 zł)
Potem koszt: 250 zł
DOŁĄCZ DO 347+ OSÓB, KTÓRE ZMIENIŁY SWOJE ŻYCIE
Specjalna wiadomość od mojej ostatniej klientki:
"${imie}, jeśli to czytasz - NIE ZWLEKAJ! Ja też się wahałam 2 tygodnie. To były 2 stracone tygodnie, w których mogłam już działać. Dziś, 3 miesiące później, jestem lżejsza o 17 kg i żałuję tylko jednego - że nie zaczęłam od razu!"
- Dorota, rozpoczęła program 3 miesiące temu
PS. Pamiętaj - na konsultacji POKAŻĘ Ci cały 12-tygodniowy plan jeszcze ZANIM podejmiesz decyzję. Zero ryzyka, same korzyści!
Cześć ${imie}!
To Twoja OSTATNIA SZANSA na darmową konsultację!
Jutro o tej porze będzie za późno...
Mam dla Ciebie świetne wieści! Przygotowałem wszystkie obiecane bonusy. Są już dostępne do pobrania!
TWOJE EKSKLUZYWNE BONUSY:
BONUS #1: E-book "ZMIANA" - Mój najnowszy poradnik
147 zł GRATIS!Kompletny przewodnik po transformacji sylwetki. 87 stron praktycznej wiedzy!
BONUS #2: Darmowa 7-dniowa dieta startowa
97 zł GRATIS!Gotowy jadłospis z listą zakupów i przepisami. Zacznij już jutro!
BONUS #3: Dostęp do ekskluzywnej grupy na Facebooku
67 zł/mies GRATIS!2137+ osób na tej samej drodze. Wsparcie, motywacja, sprawdzone porady!
BONUS SPECJALNY: Indywidualna konsultacja + Plan 12-tyg
250 zł OSTATNIA SZANSA!UWAGA: Ten bonus jest dostępny TYLKO DZIŚ! Jutro konsultacja będzie kosztować 250 zł.
Całkowita wartość Twoich bonusów:
561 zł 0 zł
Oszczędzasz ponad 500 złotych!
POBIERZ E-BOOK I DIETĘ DOŁĄCZ DO GRUPY FB
Jak się przygotować do DARMOWEJ konsultacji?
To bardzo proste - tylko 4 kroki:
- Pobierz Google Meet na telefon lub komputer (darmowa aplikacja)
- Obejrzyj moje wideo do końca (4 minuty)
- Wypełnij formularz pod wideo (3 minuty)
- Wybierz termin, który Ci pasuje
✓ Ważne: Kamerka NIE jest wymagana! Możesz uczestniczyć anonimowo. Udostępnię Ci mój ekran i pokażę przygotowany plan.
${imie}, TO NAPRAWDĘ OSTATNI MOMENT!
Za 24 godziny stracisz szansę na:
- Darmową konsultację wartą 250 zł
- Indywidualny plan 12-tygodniowy
- Moją osobistą pomoc w starcie
Nie żałuj później, że nie skorzystałeś!
OSTATNIA SZANSA - ZAREZERWUJ KONSULTACJĘ TERAZ!
Moja osobista obietnica dla Ciebie:
"${imie}, wiem, że możesz mieć wątpliwości. Dlatego daję Ci moją gwarancję: na konsultacji pokażę Ci DOKŁADNY plan działania na 12 tygodni. Zobaczysz co, kiedy i jak masz robić. Jeśli uznasz, że to nie dla Ciebie - po prostu podziękujesz i tyle. Zero presji, zero nacisków.
Ale jestem pewien, że gdy zobaczysz swój spersonalizowany plan, będziesz chciał zacząć od razu!"
- Kamil Owsianik
PS. To jest mój ostatni email w tej sprawie. Jeśli teraz nie skorzystasz, stracisz tę okazję na zawsze. Konsultacja warta 250 zł czeka na Ciebie ZA DARMO - ale tylko DZIŚ!
PPS. Pamiętaj - już ponad 347 osób zmieniło swoje życie. Następny możesz być Ty!
Świetna decyzja! Właśnie wykonałeś najważniejszy krok w kierunku swojej wymarzonej sylwetki.
CO DZIEJE SIĘ DALEJ?
1POTWIERDŹ ZGŁOSZENIE (WAŻNE!)
Kliknij poniżej i potwierdź swoje zgłoszenie przez WhatsApp lub email:
POTWIERDŹ ZGŁOSZENIE TUTAJ
2W ciągu 24-48h skontaktujemy się z Tobą
Zadzwonimy z numeru: +48 733 705 478
Zapisz ten numer, aby nie przegapić połączenia!
3Ustalimy dogodny termin konsultacji
Znajdziemy termin, który będzie Ci najbardziej odpowiadał.
Konsultacja trwa około 20-30 minut.
4Przygotuję Twój indywidualny plan
Na podstawie Twoich danych przygotuję spersonalizowany
12-tygodniowy plan działania, który pokażę Ci na konsultacji.
POTWIERDŹ SWOJE ZGŁOSZENIE TERAZ
JAK PRZYGOTOWAĆ SIĘ DO KONSULTACJI?
- Pobierz aplikację Google Meet - to tam się spotkamy (link otrzymasz SMS-em)
- Znajdź spokojne miejsce - gdzie będziesz mógł swobodnie rozmawiać
- Przygotuj pytania - zapisz wszystko, co chcesz wiedzieć
- Kamerka NIE jest wymagana - możesz uczestniczyć tylko głosowo
- Weź notes - będziesz chciał zapisać ważne informacje
Nie zapomnij pobrać swoich BONUSÓW!
Jako osoba zapisana na konsultację otrzymujesz:
- E-book "ZMIANA" (wartość 147 zł)
- 7-dniową dietę startową (wartość 97 zł)
- Dostęp do grupy wsparcia na FB
Masz pytania? Potrzebujesz szybkiego kontaktu?
Napisz do mnie na WhatsApp:
WhatsApp: +48 733 705 478Lub zadzwoń: +48 733 705 478
Jestem dostępny pon-pt: 9:00-18:00, sob: 10:00-14:00
WAŻNE:
Na konsultacji pokażę Ci DOKŁADNY plan na 12 tygodni.
Zobaczysz wszystko jeszcze ZANIM podejmiesz decyzję o współpracy.
To konsultacja wartości 250 zł - dla Ciebie całkowicie ZA DARMO!
Do zobaczenia na konsultacji!
Pozdrawiam serdecznie,
Kamil Owsianik
Twój trener przemian
PS. Jeśli z jakiegoś powodu będziesz musiał przełożyć termin - daj znać.
Zawsze możemy ustalić inny, dogodny dla Ciebie moment.
Cześć ${data.imie}!
Świetnie! Twoja konsultacja jest potwierdzona!
Szczegóły spotkania:
Data: ${formattedDate}
Godzina: ${formattedTime}
Miejsce: Online - Google Meet
${data.meetLink ? `Link do spotkania:
${data.meetLink}
Link: Otrzymasz w osobnej wiadomości
'}JAK PRZYGOTOWAĆ SIĘ DO KONSULTACJI?
- Pobierz Google Meet - darmowa aplikacja na telefon/komputer
- Przygotuj spokojne miejsce - gdzie będziesz mógł swobodnie rozmawiać
- Weź notes i długopis - będziesz chciał zapisać ważne informacje
- Przygotuj pytania - zapisz wszystko, co chcesz wiedzieć
Kamerka NIE jest wymagana! Udostępnię Ci mój ekran i pokażę przygotowany plan.
WAŻNE: Jeśli coś wypadnie i nie będziesz mógł uczestniczyć w konsultacji, koniecznie daj znać minimum 10 godzin wcześniej! Wtedy ustalimy nowy termin i nie stracisz swojej bezpłatnej szansy.
WhatsApp/Tel: +48 733 705 478
Na konsultacji pokażę Ci DOKŁADNY plan na 12 tygodni!
Do zobaczenia jutro!
Kamil Owsianik
Hej ${data.imie}!
Jutro o ${formattedTime} mamy konsultację!
Przygotuj się na jutro:
- Pobierz Google Meet (jeśli jeszcze nie masz)
- Znajdź spokojne miejsce na rozmowę
- Przygotuj pytania które Cię nurtują
Link do spotkania: ${data.meetLink}
` : 'Link otrzymasz w kolejnej wiadomości
'}
Pamiętaj: Jeśli nie możesz uczestniczyć, daj znać minimum 10h wcześniej!
WhatsApp: +48 733 705 478
Do zobaczenia jutro!
Kamil
Za 2 godziny spotykamy się online!
Cześć ${data.imie}!
Ostatnie przygotowania:
- Sprawdź czy masz Google Meet
- Przygotuj notes do zapisków
- Znajdź spokojne miejsce
Link: ${data.meetLink}
` : ''}Pokażę Ci Twój spersonalizowany plan na 12 tygodni!
Do zobaczenia!
Kamil
STARTUJEMY ZA 15 MINUT!
${data.imie}, czekam na Ciebie online!
${data.meetLink ? `DOŁĄCZ DO SPOTKANIA` : 'Sprawdź link w poprzednich wiadomościach
'}Pamiętaj - udostępnię Ci ekran i pokażę cały plan!
${createEmailFooter()}Dziękuję za spotkanie, ${data.imie}!
Jak obiecałem, przesyłam materiały:
Pozdrawiam,
Kamil
Cześć ${data.imie}!
Mam nadzieję, że nasza wczorajsza rozmowa dała Ci jasny obraz tego, jak możesz osiągnąć swoją wymarzoną sylwetkę.
TWÓJ PLAN JEST TUTAJ:
OFERTA SPECJALNA - TYLKO 48 GODZIN!
Jak wspomniałem na konsultacji, przygotowałem dla Ciebie specjalną ofertę:
1350 zł (zamiast 1500 zł)
Oszczędzasz 150 zł!
Opcje płatności:
Ta oferta jest ważna tylko 48 godzin od naszej rozmowy.
Kamil
${createEmailFooter()}OSTATNIE GODZINY!
Cześć ${data.imie},
Oferta 1350 zł wygasa dziś o północy!
OSTATNIA SZANSA
1350 zł zamiast 1500 zł
Oszczędzasz 150 zł!
Kamil
${createEmailFooter()}Cześć ${data.imie}
Minął tydzień od naszej konsultacji.
Chciałbym poznać Twoją opinię i dowiedzieć się, co mogę poprawić.
Wypełnij krótką ankietę (2 minuty):
W podziękowaniu otrzymasz:
KOD -10% na wszystkie programy
Pozdrawiam,
Kamil
WITAJ W ZESPOLE!
Cześć ${data.imie}!
Cieszę się, że jesteś z nami! Teraz zaczynamy prawdziwą pracę nad Twoją sylwetką.
CO DALEJ?
Napisz "START" na WhatsApp: +48 733 705 478
Otrzymasz dostęp do platformy i wszystkie materiały startowe.
Witaj w rodzinie Kliniki Formy!
Kamil
${createEmailFooter()}Test Email
System działa poprawnie.
', name: "Kamil Owsianik - TEST", replyTo: CONFIG.EMAIL_SENDER } ); Logger.log(`[Test] Email testowy wysłany do: ${email}`); return 'Email testowy wysłany'; } catch (error) { Logger.log(`[Test] Błąd wysyłania: ${error.toString()}`); return 'Błąd: ' + error.toString(); } }function addTestClient(imie = 'Test', nazwisko = 'Testowy', email = 'test@example.com', telefon = '+48123456789') { const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); const sheet = spreadsheet.getSheetByName(CONFIG.PROGRAM_SHEET_NAME); const rowData = [ new Date(), imie, nazwisko, email, telefon, '80', // waga '180', // wzrost '35', // wiek 'Test systemu', '3 miesiące', 'Dobrze', 'Pilne', '1500', '10-18', 'Test', 'Brak' ]; sheet.appendRow(rowData); Logger.log(`[Test] Dodano klienta testowego: ${email}`); return 'Klient testowy dodany'; }// ==================== MENU INTERFACE ==================== function onOpen() { const ui = SpreadsheetApp.getUi(); ui.createMenu('Klinika Formy CRM v3.2') .addItem('Status systemu', 'showSystemStatus') .addItem('Przetwórz kolejkę TERAZ', 'forceProcessQueue') .addSeparator() .addSubMenu(ui.createMenu('Kalendarz') .addItem('Skanuj kalendarz TERAZ', 'manualCalendarScan') .addItem('Pokaż najbliższe konsultacje', 'showUpcomingConsultations')) .addSubMenu(ui.createMenu('Email & GetResponse') .addItem('Test GetResponse', 'testGetResponseAPI') .addItem('Test wysyłki email', 'promptTestEmail')) .addSubMenu(ui.createMenu('Administracja') .addItem('Konfiguruj system v3.2', 'setupOptimizedSystem') .addItem('Ręczna konserwacja', 'dailyMaintenance') .addItem('Dodaj klienta testowego', 'addTestClient') .addItem('Wyczyść WSZYSTKO', 'clearAllData')) .addSeparator() .addItem('Dokumentacja', 'showDocumentation') .addToUi(); }function showSystemStatus() { const status = checkSystemStatus(); const html = HtmlService.createHtmlOutput(`System Status - v${status.version}
Rekordy w arkuszach
| Arkusz | Liczba rekordów |
|---|---|
| Ebook | ${status.sheets.ebook} |
| Program | ${status.sheets.program} |
Typy w kolejce
| Typ | Liczba |
|---|---|
| ${type} | ${count} |
Najbliższe konsultacje (24h)
${status.nextEvents.length > 0 ? `| Tytuł | Czas | Goście |
|---|---|---|
| ${e.title} | ${e.time} | ${e.guests.join(', ')} |
Brak konsultacji w najbliższych 24h
' } `) .setTitle('Status Systemu') .setWidth(800) .setHeight(600); SpreadsheetApp.getUi().showModalDialog(html, 'Status Systemu CRM v3.2'); }function showUpcomingConsultations() { const consultations = getUpcomingConsultations(); const html = HtmlService.createHtmlOutput(`Konsultacje w najbliższych 24h
${consultations.length > 0 ? `| Tytuł | Czas | Goście |
|---|---|---|
| ${c.title} | ${c.time.toLocaleString('pl-PL')} | ${c.guests.join(' ')} |
Brak konsultacji w najbliższych 24 godzinach
' } `) .setTitle('Najbliższe konsultacje') .setWidth(600) .setHeight(400); SpreadsheetApp.getUi().showModalDialog(html, 'Najbliższe konsultacje'); }function promptTestEmail() { const ui = SpreadsheetApp.getUi(); const response = ui.prompt( 'Test email', 'Podaj adres email do testu:', ui.ButtonSet.OK_CANCEL ); if (response.getSelectedButton() === ui.Button.OK) { const result = testEmailDelivery(response.getResponseText()); ui.alert('Wynik', result, ui.ButtonSet.OK); } }function showDocumentation() { const html = HtmlService.createHtmlOutput(`Klinika Formy CRM v3.2 - Dokumentacja
- Usunięte problematyczne emoji z wszystkich emaili
- Dodana stopka ze zdjęciem do wszystkich wiadomości
- Potwierdzenie zgłoszenia przez WhatsApp/Email
- Poprawione linki do kalendarza
- Rozbudowane emaile konsultacyjne
- Poprawione treści (2 lata, 4 min wideo)
Główne funkcje:
- 4 emaile dla ebooka (natychmiast, 5h, 24h, 48h)
- 7 emaili konsultacyjnych (przed i po spotkaniu)
- Skanowanie co godzinę
- Automatyczne wykrywanie konsultacji
- Słowa kluczowe: konsultacja, spotkanie, meet, zmiana, rozmowa, call
Wpisz "KUPIŁ" w kolumnie R aby zatrzymać emaile promocyjne
Sekwencja emaili follow-up:
- Email 1 (natychmiast): 4-min wideo + 3 bonusy + wartość 497 zł gratis
- Email 2 (po 5h): Przypomnienie + instrukcje konsultacji
- Email 3 (po 24h): Opinie klientów + dowody społeczne
- Email 4 (po 48h): Ostatnia szansa + wszystkie bonusy do pobrania
Potwierdzenie zgłoszenia:
Po wypełnieniu formularza program, klient otrzymuje email z prośbą o potwierdzenie przez:
- WhatsApp: +48 733 705 478
- Stronę: ${CONFIG.URLS.CONFIRMATION_PAGE}
Jak dodać klienta do konsultacji?
- Klient musi najpierw wypełnić formularz (być w arkuszu)
- Dodaj wydarzenie w kalendarzu z słowem "KONSULTACJA"
- Dodaj email klienta jako gościa
- System automatycznie wyśle 7 emaili
Ważne informacje o konsultacji:
- Jeśli klient nie może uczestniczyć, musi dać znać min. 10h wcześniej
- Link do Google Meet jest automatycznie pobierany z kalendarza
- Kamerka NIE jest wymagana
Płatności:
- Stripe: 1350 zł jednorazowo
- TubaPay: 3 raty (533 zł) lub 6 rat (291 zł)
Bonusy dla klientów:
- E-book "ZMIANA" (wartość 147 zł)
- 7-dniowa dieta startowa (wartość 97 zł)
- Grupa wsparcia na FB (wartość 67 zł/mies)
- Bezpłatna konsultacja z planem 12-tyg (wartość 250 zł)
Monitoring:
Użyj checkSystemStatus() aby sprawdzić stan systemu
Rozwiązywanie problemów:
- Emaile nie wysyłają się: Kliknij "Przetwórz kolejkę TERAZ"
- Konsultacja nie wykryta: Sprawdź czy klient jest w arkuszu
- Za dużo triggerów: System automatycznie zarządza triggerami
Kontakt wsparcia:
Email: owsiany1995@gmail.com
WhatsApp: +48 733 705 478
`) .setTitle('Dokumentacja') .setWidth(700) .setHeight(600); SpreadsheetApp.getUi().showModalDialog(html, 'Dokumentacja CRM v3.2'); }// ==================== FUNKCJE TESTOWE ==================== function testGetResponseAPI() { const url = 'https://api.getresponse.com/v3/campaigns'; const options = { 'method': 'get', 'contentType': 'application/json', 'headers': { 'X-Auth-Token': 'api-key ' + CONFIG.GETRESPONSE_API_KEY }, 'muteHttpExceptions': true }; try { const response = UrlFetchApp.fetch(url, options); Logger.log('[GetResponse Test] Kod: ' + response.getResponseCode()); if (response.getResponseCode() === 200) { const campaigns = JSON.parse(response.getContentText()); Logger.log('[GetResponse Test] Znaleziono kampanii: ' + campaigns.length); // Test dodania kontaktu const testEmail = "test_" + new Date().getTime() + "@example.com"; const testResult = addContactToGetResponse("Test", testEmail); Logger.log('[GetResponse Test] Dodanie testowego kontaktu: ' + testResult); return "GetResponse działa poprawnie"; } else { return "Błąd GetResponse: " + response.getResponseCode(); } } catch (error) { Logger.log('[GetResponse Test] Błąd: ' + error.toString()); return "Błąd testu: " + error.toString(); } }// ==================== INICJALIZACJA ==================== function init() { Logger.log('[Init] Inicjalizacja systemu CRM v3.2...'); // Sprawdź czy arkusze istnieją const spreadsheet = SpreadsheetApp.openById(CONFIG.SPREADSHEET_ID); const ebookSheet = spreadsheet.getSheetByName(CONFIG.EBOOK_SHEET_NAME); const programSheet = spreadsheet.getSheetByName(CONFIG.PROGRAM_SHEET_NAME); if (!ebookSheet || !programSheet) { throw new Error('Brak wymaganych arkuszy! Sprawdź nazwy arkuszy.'); } // Ustaw system const result = setupOptimizedSystem(); Logger.log('[Init] System gotowy do pracy!'); return result; }