การส่งอีเมล์ด้วย Google Script

Ayuth Mangmesap
Ayuth’s Story
3 min readAug 26, 2017

--

ถ้าพูดถึง Google Form ทุกคนคงเคยได้สัมผัสหรือได้เห็นกันมาไม่น้อยเลยครับ เพราะไม่ว่าจะเป็นการ survey เพื่อรวบรวมข้อมูลหรือแม้กระทั่งตอบแบบสอบถามต่าง ๆ ก็ใช้ Google Form เกือบทั้งสิ้นเพราะมันฟรีและแถมยังมี Pie Chart สวย ๆ ให้ดูด้วยเช่น

แต่ประเด็นคือ เราสามารถใช้งานอะไรจากข้อมูลที่เรามีอยู่ได้บ้าง ? เช่นส่งอีเมล์ไปหาคนที่กรอกแบบฟอร์ม 10,000 คน ?… ถ้าเรามานั่งก๊อปปี้อีเมล์แล้วมาใส่ในรายชื่อผู้ส่งทีละ 1, 2, …, 10,000 ถามว่าตายไหม?

.

.

ตายแบบไม่ต้องคิดเลยครับ ฉะนั้นเราจึงมีตัวช่วยนั่นคือ Google Script นี่เอง และในบทความนี้จะว่าด้วยเรื่องการเขียน Google Script ในการส่งอีเมล์ครับ

Google Apps Script is a JavaScript cloud scripting language that provides easy ways to automate tasks across Google products and third party services and build web applications.

ขั้นตอนการสร้าง Google Forms

โจทย์: เราเป็นผู้ผลิตเสื้อและเปิดโอกาสให้ลูกค้าสั่งจองผ่านทาง Google Forms ซึ่งลูกค้าต้องกรอกชื่อจริงและอีเมล์เพื่อใช้ในการติดต่อกลับ และเราจะส่งอีเมล์ให้ลูกค้า 1 วันหลังจากการสั่งผลิตเสื้อจริง ๆ เพื่อยืนยันข้อมูลของลูกค้าว่าข้อมูลถูกต้อง และหากไม่ถูกต้องให้สามารถโทรศัพท์กลับหรืออีเมล์ติอต่อกลับได้

ตอนนี้ผมได้ลองสร้าง form สำหรับกรอกข้อมูลซื้อไซส์เสื้อและอีเมล์สำหรับตอบกลับ

สำหรับขั้นตอนไม่ขอลงลึกนะครับเพราะเชื่อว่าทุก ๆ คนคงทำได้อยู่แล้ว (มันง่ายมาก) หรือถ้าใครไม่ได้จริง ๆ ก็ลองเข้าลิงค์นี้แล้วลองลูบ ๆ คลำ ๆ ดูก็น่าจะทำได้ https://docs.google.com/forms/

ขั้นตอนการ Link Google Forms to Sheets

ขั้นตอนนี้เสมือนว่านำข้อมูลที่ลูกค้ากรอกมาทั้งหมดลงไปยัง Google Sheet หรือที่เรียกว่า Excel นี่แหละ ซึ่งเวลาต้องการใช้ข้อมูลหรือเปลี่ยนแปลงข้อมูลมันจะสะดวกมากกกกกกกกกกก ถึงมากที่สุด

ณ จุดนี้ตี๊ต่างว่าคุณได้วันปิดรับไซส์เสื้อแล้วและต้องส่งอีเมล์ตอบกลับไปยังลูกค้าที่มาสั่งเสื้อที่ form ของคุณ (ในที่นี้มี 1 คน)

1.) ทำการ Link ข้อมูลของคุณไปยัง SpreadSheet ก่อนครับให้คลิกไอ้จุดสามจุดตรงข้าง ๆ กล่องสีเขียวและกดเมนู “Select response destination”

2.) ใส่ชื่อ sheet ที่ต้องการลงไปและกด create พอเสร็จแล้วให้กดรูปกล่องสีเขียว ๆข้าง ๆ จุดสามจุดหรือเข้าไปดูใน Google Sheets ได้โดยตรง พอเข้าไปแล้วจะได้หน้าตาประมาณนี้

ขั้นตอนการเขียน Google Script

และแล้วก็มาถึงพระเอกของเรา เอาละเรามาลงมือโค้ดกันหน่อยแต่พูดถึงโค้ดหลาย ๆ คนคงจะคิดว่ามันยากแต่มันไม่ยากเลยครับง่ายมากกกกกกกกกกกกกก ซึ่งทาง Google ได้ทำวีดีโอสั้น ๆ และสามารถนำไป implement ได้จริงซึ่งสามารถดูได้จากคลิปข้างล่างหรือไม่ก็ Tutorial: Sending emails from a Spreadsheet

แต่ไหน ๆ ก็อ่านมาถึงนี่แล้วก็อ่านในนี้เลยละกันนะครับ ถถถ หรือใครจะชอบภาพเคลื่อนไหว พวกวีดีโอเพื่อแก้ง่วงก็ดูได้จากข้างบนครับ

1.) คลิกที่ Tools → Script Editor …

2.) จากนั้นให้ก๊อปโค้ดต้นแบบและวางลงไป

3.) แก้ไขให้โค้ดทำงานได้กับ Sheets เรา

ดูภาพอาจจะงง ๆ อธิบายสั้น ๆ จะได้ว่า

  1. startRow คือ แถวที่เริ่มนับจากแถวที่ ? ในที่นี้คือแถวที่ 2 เพราะว่าข้อมูลลูกค้าอยู่ตรงนั้น
  2. column คือ เริ่มนับจาก column ไหน ? ในที่นี้คือคอลัมน์ที่ 1 (ซึ่งก็คือคอลัมน์ A)
  3. numRows คือนับจากแถวที่ startRow แล้วนับลงไปอีกกี่แถว ? (นับตัวเองด้วย) เช่นในที่นี้คือ 4 แถวโดยนับจากแถวที่ 2 จากชีทถึงแถวที่ 5 จากชีท
  4. numColumns คือ นับจากคอลัมน์ที่ 1 (คอลัมน์ A) ไปกี่แถว ? ในที่นี้ data มีทั้งหมด 4 แถว เราจึงนับไป 4 แถว

และจะได้โค้ดที่แก้ไขแล้วประมาณนี้

4.) ถึงขั้นตอนการ run script ให้กดปุ่มสามเหลี่ยมข้าง ๆ รูปแมลงกับนาฬิกา … เมื่อ run จะเจอกล่องข้อความนี้ก็ให้กด accept ให้มันไปครับ

พิมพ์ Continue และทำการ Allow ให้มันตาม step ครับ

ถ้า script not found ก็ให้ดูว่าชื่อ function ตรงกับที่เราจะ run มั้ย ถ้าไม่ตรงก็ให้เปลี่ยนให้ตรงครับแล้วกด run อีกที

ผลลัพธ์ที่ได้

ในที่นี้ผมใส่ทั้ง 4 คนเป็นอีเมล์ผมหมดเลย เพราะฉะนั้นมันจึงเข้าอีเมล์ผมทั้งสี่เมล์ครับ ซึ่งมันเข้า inbox ไวมากแทบไม่ถึง 2 วินาทีก็เข้ามาแล้ว

เอาละมาดูข้างในอีเมล์ดีกว่า

สรุป

หากใครที่ใช้ Google Forms และต้องการตอบกลับอีเมล์กับผู้ที่กรอกแบบฟอร์มของเราเป็นจำนวนมาก ผมแนะนำให้ใช้ Google Script เพื่อไปจัดการดีกว่าครับ แต่ถ้าข้อมูลน้อย ๆ เช่น 10, 20, … , 100 คน ถ้าคุณจะตอบกลับโดยใช้ก๊อปวางแทนก็ไม่เสียหายครับ …

References

Hugo Fierro. 2016.Tutorial: Sending emails from a Spreadsheet. On-line. Available from Internet, https://developers.google.com/apps-script/articles/sending_emails, 11 Aug 2017.

--

--