name: ecommerce-customer-onboarding-automator
description: Automates customer onboarding workflows for e-commerce platforms. Fetches recent WooCommerce orders, identifies first-time customers within a specified timeframe, syncs their information to a BigQuery CRM database, and sends personalized welcome emails using a template.
Instructions
Objective
Automate the onboarding process for new e-commerce customers by:
- Identifying customers who completed their first order within the past 7 days.
- Syncing their core information (name, email, order details) from WooCommerce to a BigQuery CRM table.
- Sending a personalized welcome email to each identified customer.
Prerequisites & Setup
- WooCommerce Connection: Ensure access to the WooCommerce store's API (
woocommerce-woo_orders_list).
- BigQuery Dataset: Confirm the target BigQuery dataset (e.g.,
woocommerce_crm) and table (e.g., new_customers) exist. The table should have at least these columns: customer_name (STRING), email (STRING), order_id (INT64), order_date (TIMESTAMP), order_total (FLOAT64).
- Email Template: Locate or create the
welcome_email_template.md file. The skill expects to find it at /workspace/dumps/workspace/ by default.
Execution Steps
1. Fetch and Analyze Recent Orders
- Use
woocommerce-woo_orders_list to retrieve completed orders. Start with parameters: {"status": ["completed"], "perPage": 100, "order": "desc", "orderby": "date"}.
- Critical Logic: Analyze the order metadata. In the provided trajectory, orders from first-time customers within the past 7 days were tagged with
"period": "recent_7_days" in their meta_data. You must implement a similar filtering logic based on your store's data structure.
- First-Time Customer Check: Ensure a customer's email appears only once in the filtered set (or check against a historical customer list in BigQuery if available).
- Date Filtering: Use the
date_completed field and calculate if it falls within the last 7 days from the current date.
2. Locate and Read the Email Template
- Use
filesystem-search_files to find welcome_email_template.md.
- Use
filesystem-read_file to load its content. The template should contain placeholders like {{customer_name}}, {{order_id}}, {{order_total}}, and {{order_date}}.
3. Prepare BigQuery Environment
- Use
google-cloud-bigquery_list_datasets and google-cloud-bigquery_get_dataset_info to verify the target dataset exists.
- Use
google-cloud-bigquery_run_query to inspect the INFORMATION_SCHEMA and confirm the schema of the target table (e.g., new_customers) matches the data you will insert.
4. Transform and Sync Customer Data
- For each identified first-time customer, extract:
customer_name: Combine billing.first_name and billing.last_name.
email: From billing.email.
order_id: The order's id.
order_date: Convert date_completed to a TIMESTAMP.
order_total: The order's total (as a float).
- Construct a single
INSERT query for BigQuery with all customer values. Use parameterized values or explicit casting (e.g., TIMESTAMP('...')) to ensure data type compatibility.
- Execute the insert query using
google-cloud-bigquery_run_query.
- Verification: Run a
SELECT query to confirm all records were inserted correctly.
5. Generate and Send Welcome Emails
- For each customer, personalize the email template by replacing the placeholders with their specific data.
- Use
emails-send_email to send the email.
- Subject: Follow the template's subject line.
- Body: Use the fully personalized email body.
- To: The customer's email address.
- Send emails sequentially or in small batches to avoid rate limits.
Key Decisions & Error Handling
- Pagination: If you have more than 100 recent orders, implement pagination using the
page parameter in woocommerce-woo_orders_list.
- Duplicate Prevention: Before inserting into BigQuery, consider checking if the
email or order_id already exists in the target table to prevent duplicates if the skill runs multiple times.
- Template Flexibility: The skill is designed to use an external template file. If the file is not found, you may need to create a default template or ask the user for its location.
- Email Send Errors: Log or note if any email fails to send, but proceed with the remaining customers.
Completion
After all emails are sent, provide a summary report including:
- The number of first-time customers identified.
- Confirmation of data sync to BigQuery.
- Confirmation of emails sent.
- Use
local-claim_done to mark the task as complete.