Jabphap Sales CRM คู่มือการติดตั้ง
⏱ ติดตั้งประมาณ 10 นาที · ไม่ต้องเขียนโค้ด

ติดตั้ง Jabphap Sales CRM บน Google ของคุณเอง

ระบบ CRM ลูกค้าและติดตามดีลขาย ทำงานบน Google Sheets + Google Apps Script ในบัญชี Google ของบริษัทเอง ข้อมูลลูกค้าทั้งหมดอยู่ใน Drive ของคุณ ไม่มีค่าเซิร์ฟเวอร์รายเดือน

👤บัญชี GoogleGmail หรือ Google Workspace 1 บัญชี (เป็นเจ้าของระบบ)
💻คอมพิวเตอร์ใช้ตอนติดตั้งครั้งแรก หลังจากนั้นใช้มือถือได้
📄ไฟล์ 3 ไฟล์Code.gs · Index.html · appsscript.json
💬LINE OA (ไม่บังคับ)ถ้าต้องการรับสรุปงานติดตามทาง LINE
📑 สารบัญ
ส่วนที่ 1

ติดตั้งบน Google

ทำครั้งเดียวบนคอมพิวเตอร์ ประมาณ 10 นาที

1

เริ่มต้น

สร้างไฟล์ Google Sheets ใหม่

ไฟล์นี้คือ “ฐานข้อมูล” ของระบบ เก็บลูกค้า ดีล กิจกรรม ผู้ใช้ และการตั้งค่า

  1. เข้า sheets.new ด้วยบัญชี Google ที่จะเป็นเจ้าของระบบ (แนะนำบัญชีของบริษัท ไม่ใช่บัญชีส่วนตัวของพนักงาน)
  2. คลิกชื่อไฟล์มุมซ้ายบน ตั้งชื่อ เช่น CRM บริษัทของเรา
💡 ใช้ไฟล์ที่มีอยู่แล้วได้ไหม

ได้ แต่แนะนำไฟล์ใหม่เปล่า ๆ ระบบจะสร้างชีต Settings Users Customers Deals Activities ให้เอง และจะไม่แตะชีตอื่นที่มีอยู่

2

ใส่ระบบ

วางไฟล์ Code.gs, Index.html และ appsscript.json

  1. ในไฟล์ชีต ไปที่เมนู ส่วนขยาย›Apps Script (Extensions › Apps Script)
  2. ตั้งชื่อโปรเจกต์มุมซ้ายบนเป็น Jabphap Sales CRM
  3. เปิดไฟล์ Code.gs ที่มีอยู่ กด Ctrl+A ลบโค้ดเดิม แล้ววางเนื้อหาจากไฟล์ Code.gs ที่ได้รับทั้งไฟล์
  4. กดปุ่ม + ข้างคำว่า “ไฟล์” › HTML ตั้งชื่อว่า Index (ตัว I ใหญ่ ไม่ต้องพิมพ์ .html) ลบเนื้อหาเดิม แล้ววางเนื้อหาจาก Index.html
  5. ไปที่ ⚙ การตั้งค่าโปรเจกต์ ติ๊ก แสดงไฟล์ Manifest “appsscript.json” ในเครื่องมือแก้ไข กลับมาที่หน้าแก้ไข เปิด appsscript.json แล้ววางเนื้อหาจากไฟล์ที่ได้รับแทนทั้งหมด
  6. กด Ctrl+S บันทึกทุกไฟล์
✓ ตรวจชื่อไฟล์

ต้องมี 3 ไฟล์: Code.gs, Index.html, appsscript.json — ชื่อ Index ต้องตรงทุกตัวอักษร

⚠ วางให้ครบทั้งไฟล์

ถ้าคัดลอกขาดท้ายไฟล์ จะเกิดข้อผิดพลาด “SyntaxError” ตอนบันทึก ให้คัดลอกใหม่ทั้งไฟล์

appsscript.json ทำหน้าที่อะไร

กำหนดเขตเวลา Asia/Bangkok (นัดติดตามและสรุปประจำวันใช้เวลาไทย) กำหนดสิทธิ์ที่ระบบขอใช้ให้น้อยที่สุด (ชีต, เมนูในชีต, ทริกเกอร์, ส่งอีเมล, เรียก LINE API) และตั้งค่าเว็บแอปให้ทำงานในนามเจ้าของ เข้าใช้ผ่านลิงก์โดยมีการล็อกอินด้วย PIN ภายในแอป

3

สร้างฐานข้อมูล

รันฟังก์ชัน setup

  1. ที่แถบเครื่องมือด้านบนของหน้าแก้ไขโค้ด เลือกฟังก์ชัน setup ในช่องรายการฟังก์ชัน
  2. กด ▶ เรียกใช้ (Run) — ครั้งแรก Google จะขออนุญาตสิทธิ์ ทำตามขั้นตอนที่ 4
  3. รอจนบันทึกการดำเนินการขึ้นว่า “ติดตั้ง Jabphap Sales CRM เรียบร้อย”
สร้างชีต5 ชีตพร้อมหัวตาราง

Settings · Users · Customers · Deals · Activities

ข้อมูลตัวอย่างทีมขายจำลอง

ลูกค้า 14 ราย ดีล 22 ดีล กิจกรรมและนัดติดตาม ให้ลองใช้ได้ทันที

ทริกเกอร์สรุปงานทุกเช้า

ตั้งทริกเกอร์รายวัน 08:00 สำหรับส่งสรุปงานติดตาม (ปิดได้ในหน้าตั้งค่า)

หลังจากนี้ เมื่อเปิดไฟล์ชีตจะมีเมนู 📇 Sales CRM บนแถบเมนู ใช้ซ่อมฐานข้อมูล (รัน setup ซ้ำได้ ไม่ลบข้อมูลเดิม) แสดงลิงก์เว็บแอป รีเซ็ต PIN ผู้ดูแล และล้างข้อมูลตัวอย่าง

4

ความปลอดภัย

อนุญาตสิทธิ์ให้สคริปต์

  1. หน้าต่าง “ต้องมีการให้สิทธิ์” กด ตรวจสอบสิทธิ์ แล้วเลือกบัญชี Google ของคุณ
  2. ถ้าเจอหน้า “Google ยังไม่ได้ยืนยันแอปนี้” กด ขั้นสูง › ไปที่ Jabphap Sales CRM (ไม่ปลอดภัย) — เป็นข้อความปกติของสคริปต์ที่คุณติดตั้งเอง
  3. ตรวจรายการสิทธิ์ แล้วกด อนุญาต จากนั้นกลับไปรัน setup อีกครั้งถ้ายังไม่ขึ้นข้อความติดตั้งเรียบร้อย
หน้าต่างขออนุญาตสิทธิ์ของ Google Apps Script
หน้าต่างขอสิทธิ์ — กด “ตรวจสอบสิทธิ์” แล้วเลือกบัญชี (ชื่อโปรเจกต์ในหน้าต่างของคุณจะเป็น Jabphap Sales CRM)
หน้าเตือน Google ยังไม่ได้ยืนยันแอป
คลิก “ขั้นสูง” แล้วเลือก “ไปที่ … (ไม่ปลอดภัย)” เพื่อดำเนินการต่อ
สิทธิ์ที่ขอใช้ทำอะไร
ดู แก้ไข สร้าง สเปรดชีตอ่าน/เขียนข้อมูลลูกค้า ดีล กิจกรรม ในไฟล์ชีตของคุณ
แสดงเนื้อหาในแอป Googleเมนู 📇 Sales CRM บนไฟล์ชีต
จัดการทริกเกอร์ตั้งเวลาส่งสรุปงานติดตามทุกวัน
ส่งอีเมลในนามคุณส่งสรุปงานติดตามถึงพนักงานขายแต่ละคน
เชื่อมต่อบริการภายนอกส่งข้อความเข้า LINE ผ่าน LINE Messaging API (ใช้เมื่อเปิดใช้เท่านั้น)
5

เปิดให้ทีมใช้

เผยแพร่เป็นเว็บแอป

  1. มุมขวาบนของหน้าแก้ไขโค้ด กด การทำให้ใช้งานได้›การทำให้ใช้งานได้รายการใหม่ (Deploy › New deployment)
  2. กดรูปเฟือง ⚙ ข้าง “เลือกประเภท” แล้วเลือก เว็บแอป
  3. ตั้งค่า: เรียกใช้ในฐานะ = ฉัน (อีเมลของคุณ) · ผู้ที่มีสิทธิ์เข้าถึง = ทุกคน แล้วกด ทำให้ใช้งานได้
  4. คัดลอก URL ของเว็บแอป (ลงท้ายด้วย /exec) ส่งให้ทีมขาย บันทึกเป็นบุ๊กมาร์กหรือ “เพิ่มไปยังหน้าจอหลัก” บนมือถือ
เมนูการทำให้ใช้งานได้รายการใหม่
เมนู Deploy › New deployment มุมขวาบน
เลือกประเภทการทำให้ใช้งานได้เป็นเว็บแอป
กดรูปเฟืองแล้วเลือก “เว็บแอป”
ตั้งค่าเว็บแอป เรียกใช้ในฐานะฉัน ทุกคนเข้าถึงได้
เรียกใช้ในฐานะ “ฉัน” และผู้มีสิทธิ์เข้าถึง “ทุกคน” — ทีมขายไม่ต้องมีบัญชี Google แต่ต้องล็อกอินด้วยชื่อผู้ใช้และ PIN ของระบบ
URL ของเว็บแอปหลังเผยแพร่
คัดลอก URL ของเว็บแอป (ลงท้าย /exec) ไปใช้งาน
⚠ ทำไมต้องเลือก “ทุกคน”

ข้อมูลไม่ได้เปิดเผยต่อสาธารณะ ทุกคนที่เปิดลิงก์จะเห็นแค่หน้าล็อกอิน ต้องมีชื่อผู้ใช้และ PIN ที่ผู้ดูแลสร้างให้ ระบบล็อกบัญชี 5 นาทีเมื่อใส่ PIN ผิด 5 ครั้ง และไฟล์ชีตยังเป็นของคุณคนเดียว (อย่าแชร์ไฟล์ชีตให้คนอื่นถ้าไม่จำเป็น)

6

ใช้งานได้แล้ว

เข้าสู่ระบบครั้งแรกและเปลี่ยน PIN

  1. เปิด URL เว็บแอป ใส่ชื่อผู้ใช้ admin และ PIN 1234
  2. ระบบจะบังคับตั้ง PIN ใหม่ทันที (ตัวเลข 4–8 หลัก ห้ามใช้ 1234 หรือ 0000)
  3. ไปที่ ตั้งค่า › ทั่วไป ใส่ชื่อบริษัท เป้ายอดขายต่อเดือน และที่มาของลูกค้าที่ทีมใช้จริง
หน้าเข้าสู่ระบบ Jabphap Sales CRM
หน้าเข้าสู่ระบบ — ฝั่งซ้ายแนะนำระบบ ฝั่งขวากรอกชื่อผู้ใช้และ PIN (บนมือถือแสดงเฉพาะฟอร์ม)
💡 ลืม PIN ผู้ดูแล

เปิดไฟล์ชีต › เมนู 📇 Sales CRM › 🔑 รีเซ็ต PIN ผู้ดูแล (admin) เป็น 1234 แล้วเข้าสู่ระบบใหม่ ส่วนพนักงานขายที่ลืม PIN ให้ผู้ดูแลรีเซ็ตที่หน้าตั้งค่า › ผู้ใช้งาน

ส่วนที่ 2

ตั้งค่าเพิ่มเติม

ทำหลังติดตั้งเสร็จ จากหน้าเว็บแอปโดยใช้บัญชีผู้ดูแล

7

ทีมขาย

เพิ่มพนักงานขาย

  1. ไปที่ ตั้งค่า › ผู้ใช้งาน กด เพิ่มผู้ใช้
  2. กรอกชื่อ-สกุล ชื่อผู้ใช้ภาษาอังกฤษ (เช่น somchai) สิทธิ์ สีประจำตัว อีเมล (สำหรับรับสรุปงานติดตาม) และ PIN เริ่มต้น
  3. ส่งลิงก์เว็บแอป ชื่อผู้ใช้ และ PIN เริ่มต้นให้พนักงาน — ครั้งแรกที่เข้าระบบจะถูกขอให้ตั้ง PIN ใหม่
หน้าตั้งค่าผู้ใช้งาน
รายชื่อผู้ใช้ สิทธิ์ อีเมลรับสรุปงาน เวลาเข้าใช้ล่าสุด และสถานะ — คลิกแถวเพื่อแก้ไข รีเซ็ต PIN หรือปิดบัญชีพนักงานที่ลาออก
สิทธิ์ทำอะไรได้
ผู้ดูแลระบบทุกอย่าง · แก้ไข/ลบดีลของทุกคน · ลบลูกค้า · ตั้งค่าขั้นตอนการขาย ผู้ใช้ และการแจ้งเตือน
พนักงานขายสร้างดีลและลูกค้า · บันทึกกิจกรรม · แก้ไข/ย้าย/ปิดดีลของตัวเอง · เห็นดีลทั้งทีมหรือเฉพาะของตัวเองตามที่ผู้ดูแลกำหนด
ดูอีเมลหลักของบัญชี Googleตรวจว่าผู้รันฟังก์ชันผู้ดูแล (ติดตั้ง / รีเซ็ตรหัสผ่าน) เป็นเจ้าของไฟล์ — กันไม่ให้ผู้เปิดเว็บแอปเรียกใช้ได้
8

ไม่พลาดนัด

ตั้งค่าแจ้งเตือนทางอีเมลและ LINE

ทุกเช้าตามเวลาที่ตั้ง ระบบจะรวบรวมงานติดตามที่ถึงกำหนดวันนี้และที่เลยกำหนด ส่งอีเมลถึงเจ้าของดีลแต่ละคน และ/หรือส่งสรุปทั้งทีมเข้า LINE

  1. ไปที่ ตั้งค่า › การแจ้งเตือน ติ๊ก ส่งสรุปงานติดตามประจำวัน ตั้งชั่วโมงที่จะส่ง (0–23) แล้วเลือกช่องทาง
  2. อีเมล: ใส่อีเมลให้ผู้ใช้แต่ละคนที่หน้าผู้ใช้งาน ระบบส่งจาก Gmail ของเจ้าของระบบ (บัญชี Gmail ทั่วไปส่งได้ประมาณ 100 ฉบับ/วัน)
  3. LINE: สร้าง LINE Official Account ที่ manager.line.biz › ตั้งค่า › เปิดใช้ Messaging API › ไปที่ LINE Developers Console เลือก Channel › แท็บ Messaging API › ออก Channel access token (long-lived) แล้วคัดลอกมาวาง
  4. ใส่ User ID ของผู้รับ (ดูได้ที่แท็บ Basic settings › Your user ID ขึ้นต้นด้วย U) หรือ Group ID ของกลุ่มทีมขาย (ขึ้นต้นด้วย C — เชิญบอทเข้ากลุ่มก่อน) แล้วกด บันทึกการตั้งค่า
  5. กด ทดสอบส่ง เพื่อตรวจว่าได้รับทั้งอีเมลและ LINE
หน้าตั้งค่าการแจ้งเตือน
ตั้งเวลาส่งสรุป เลือกส่งอีเมล/LINE ใส่ Channel access token และ ID ผู้รับ — token ถูกเก็บใน Script Properties ไม่ปรากฏในไฟล์ชีต
✓ LINE Notify ปิดบริการแล้ว

ระบบนี้ใช้ LINE Messaging API ซึ่งเป็นช่องทางที่ LINE รองรับปัจจุบัน แพ็กเกจฟรีของ LINE OA ส่งข้อความได้จำนวนจำกัดต่อเดือน (สรุปวันละ 1 ข้อความถือว่าน้อยมาก)

9

เริ่มใช้งานจริง

ล้างข้อมูลตัวอย่าง

เมื่อลองใช้จนคล่องแล้ว เปิดไฟล์ชีต › เมนู 📇 Sales CRM › 🧹 ล้างข้อมูลตัวอย่าง ระบบจะลบทุกแถวในชีต Customers Deals Activities แต่เก็บการตั้งค่าและผู้ใช้ไว้

⚠ ลบผู้ใช้ตัวอย่างด้วย

ข้อมูลตัวอย่างมีพนักงานขายจำลอง 2 คน (napatsorn, teerawat) ให้ไปที่ ตั้งค่า › ผู้ใช้งาน แล้วปิดบัญชี หรือแก้ชื่อ/รีเซ็ต PIN เป็นพนักงานจริง

10

ดูแลระบบ

อัปเดตเป็นเวอร์ชันใหม่

  1. วางทับ Code.gs และ Index.html ด้วยไฟล์เวอร์ชันใหม่ แล้วบันทึก
  2. รัน setup อีกครั้ง (เพิ่มคอลัมน์ใหม่ให้อัตโนมัติ ไม่ลบข้อมูล)
  3. ไปที่ การทำให้ใช้งานได้›จัดการการทำให้ใช้งานได้ กดดินสอ ✎ เลือกเวอร์ชัน เวอร์ชันใหม่ แล้วกด ทำให้ใช้งานได้ — URL เดิมใช้ต่อได้

อ้างอิง

โครงสร้างชีตในฐานข้อมูล

แก้ไขข้อมูลในชีตโดยตรงได้ แต่ห้ามเปลี่ยนชื่อชีตหรือหัวคอลัมน์แถวที่ 1 และห้ามแก้คอลัมน์ id

ชีตเก็บอะไรคอลัมน์สำคัญ
Settingsการตั้งค่าระบบcompany_name, stages (JSON ขั้นตอนการขาย), sources, lost_reasons, monthly_target, digest_*
Usersผู้ใช้งานusername, name, role (admin/sales), color, email, pin_hash + salt (PIN เข้ารหัสทางเดียว), active
Customersลูกค้าname, company, phone, email, line_id, source, tags, address, owner_id
Dealsดีลขายtitle, customer_id, value, stage, probability, owner_id, expected_close, status (open/won/lost), lost_reason, closed_at
Activitiesกิจกรรมและนัดติดตามdeal_id, customer_id, type (call/meeting/line/email/quote/task/note), note, due_at (นัด), done, done_at

ช่วยเหลือ

คำถามที่พบบ่อย

เปิดลิงก์แล้วขึ้น “ไม่พบฟังก์ชันสคริปต์: doGet”

วาง Code.gs ไม่ครบหรือยังไม่บันทึก วางใหม่ทั้งไฟล์ กด Ctrl+S แล้ว Deploy เวอร์ชันใหม่

หน้าเว็บขาว หรือขึ้น “ไม่พบไฟล์ HTML ชื่อ Index”

ไฟล์ HTML ต้องชื่อ Index ตรงตัวพิมพ์ใหญ่-เล็ก ตรวจที่รายการไฟล์ซ้ายมือ

ขึ้น “ยังไม่ได้ติดตั้งระบบ — รันฟังก์ชัน setup ก่อน”

ยังไม่ได้รัน setup หรือรันไม่สำเร็จ กลับไปที่ขั้นตอนที่ 3

แก้โค้ด/ตั้งค่าแล้ว แต่เว็บแอปยังเป็นแบบเดิม

URL /exec ใช้เวอร์ชันที่ Deploy ไว้ ต้องทำ “จัดการการทำให้ใช้งานได้ › เวอร์ชันใหม่” ทุกครั้งที่แก้โค้ด (การตั้งค่าในหน้าเว็บมีผลทันทีไม่ต้อง Deploy ใหม่)

หมดเวลาการใช้งาน ต้องล็อกอินใหม่บ่อย

ระบบจำการเข้าสู่ระบบไว้ 6 ชั่วโมงนับจากการใช้งานล่าสุด เพื่อความปลอดภัยของข้อมูลลูกค้า

ไม่ได้รับอีเมลสรุปงานติดตาม

ตรวจว่าผู้ใช้มีอีเมลในหน้าผู้ใช้งาน เปิด “ส่งสรุปงานติดตามประจำวัน” และวันนั้นมีงานถึงกำหนด (ไม่มีงาน = ไม่ส่ง) ดูโฟลเดอร์สแปมด้วย และกดบันทึกการตั้งค่าหนึ่งครั้งเพื่อสร้างทริกเกอร์ใหม่

ใช้พร้อมกันหลายคนได้ไหม ข้อมูลจะชนกันหรือเปล่า

ได้ ทุกการบันทึกใช้ LockService ป้องกันการเขียนทับกัน เหมาะกับทีมขายประมาณ 2–20 คน และข้อมูลหลายพันดีล