by @skills-il
Integrate WhatsApp Business API for the Israeli market with Hebrew message templates, customer communication, and CRM integration. Use when user asks about WhatsApp Business in Israel, Hebrew WhatsApp templates, WhatsApp marketing to Israeli customers, business messaging via WhatsApp, or integrating WhatsApp with Israeli CRM tools (Monday.com, Priority, etc.). Covers Cloud API setup, template creation, compliance with Israeli anti-spam law, and Israeli consumer communication preferences. Do NOT use for personal WhatsApp or non-Israeli WhatsApp markets.
npx skills-il add skills-il/communication --skill israeli-whatsapp-businessEnsure the user has:
whatsapp_business_messaging permissionimport requests
def verify_whatsapp_setup(access_token: str, phone_number_id: str) -> dict:
"""Verify WhatsApp Business API access."""
url = f"https://graph.facebook.com/v18.0/{phone_number_id}"
headers = {"Authorization": f"Bearer {access_token}"}
response = requests.get(url, headers=headers)
return response.json()Template categories for Israeli businesses:
| Category | Use Case | Example (Hebrew) |
|---|---|---|
| Appointment reminder | Clinics, salons, services | Reminder: You have an appointment at {{1}} on {{2}} at {{3}} |
| Order confirmation | E-commerce, delivery | Your order ({{1}}) was received! We will update when shipped |
| Shipping update | Logistics, delivery | Your shipment is on the way! Tracking: {{1}} |
| Payment receipt | Billing, invoicing | Payment of {{1}} NIS received. Thank you! |
| Welcome message | Onboarding | Hi {{1}}! Welcome to {{2}}. How can we help? |
| Support follow-up | Customer service | Hi {{1}}, we wanted to make sure your inquiry was handled. All good? |
Submit template for approval:
def create_template(waba_id: str, access_token: str, template: dict):
"""Create a WhatsApp message template."""
url = f"https://graph.facebook.com/v18.0/{waba_id}/message_templates"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers, json=template)
return response.json()
# Example: Hebrew appointment reminder template
appointment_template = {
"name": "appointment_reminder_he",
"language": "he",
"category": "UTILITY",
"components": [
{
"type": "BODY",
"text": "Shalom {{1}},\nReminder: appointment at {{2}} on {{3}} at {{4}}.\nConfirm reply 1, Cancel reply 2.",
"example": {
"body_text": [["Israel", "Dr. Cohen Dental Clinic", "15.03.2025", "10:00"]]
}
},
{
"type": "BUTTONS",
"buttons": [
{"type": "QUICK_REPLY", "text": "Confirmed"},
{"type": "QUICK_REPLY", "text": "Need to reschedule"}
]
}
]
}Send a template message:
def send_template_message(phone_number_id: str, access_token: str,
to: str, template_name: str, language: str,
parameters: list):
"""Send a WhatsApp template message."""
url = f"https://graph.facebook.com/v18.0/{phone_number_id}/messages"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
payload = {
"messaging_product": "whatsapp",
"to": to, # Format: 972541234567
"type": "template",
"template": {
"name": template_name,
"language": {"code": language},
"components": [
{
"type": "body",
"parameters": [
{"type": "text", "text": p} for p in parameters
]
}
]
}
}
response = requests.post(url, headers=headers, json=payload)
return response.json()
# Send appointment reminder
send_template_message(
phone_number_id="YOUR_PHONE_ID",
access_token="YOUR_TOKEN",
to="972541234567",
template_name="appointment_reminder_he",
language="he",
parameters=["Israel", "Dental Clinic", "15.03.2025", "10:00"]
)Send interactive message (within 24-hour window):
def send_interactive_list(phone_number_id: str, access_token: str,
to: str, body_text: str, sections: list):
"""Send an interactive list message in Hebrew."""
url = f"https://graph.facebook.com/v18.0/{phone_number_id}/messages"
headers = {
"Authorization": f"Bearer {access_token}",
"Content-Type": "application/json"
}
payload = {
"messaging_product": "whatsapp",
"to": to,
"type": "interactive",
"interactive": {
"type": "list",
"body": {"text": body_text},
"action": {
"button": "Choose option",
"sections": sections
}
}
}
response = requests.post(url, headers=headers, json=payload)
return response.json()Sending schedule for Israeli market:
from datetime import datetime, time
import pytz
def is_valid_sending_time() -> tuple[bool, str]:
"""Check if current time is appropriate for Israeli business messaging."""
israel_tz = pytz.timezone('Asia/Jerusalem')
now = datetime.now(israel_tz)
day = now.weekday() # 0=Monday, 6=Sunday
# Friday after 14:00 -- pre-Shabbat
if day == 4 and now.time() > time(14, 0):
return False, "Pre-Shabbat hours. Send after Saturday 20:00."
# Saturday before 20:00 -- Shabbat
if day == 5:
if now.time() < time(20, 0):
return False, "Shabbat. Send after 20:00."
# Sunday-Thursday business hours
if now.time() < time(8, 30) or now.time() > time(20, 0):
return False, "Outside business hours. Send between 08:30-20:00."
return True, "OK to send."
def compliance_checklist(message_type: str) -> list:
"""Return compliance checklist for Israeli WhatsApp messaging."""
checks = [
"Recipient opted in to receive WhatsApp messages",
"Opt-out mechanism included (reply 'remove' to unsubscribe)",
"Business identity clearly stated",
"Message in appropriate language (Hebrew/English)",
]
if message_type == "marketing":
checks.extend([
"Compliant with Chok HaSpam (Israeli Anti-Spam Law)",
"Not sending during Shabbat/holidays",
"Frequency cap respected (avoid over-messaging)",
"Marketing category template approved by Meta",
])
return checksMonday.com + WhatsApp:
Custom CRM Integration:
def webhook_handler(event: dict) -> dict:
"""Handle incoming WhatsApp webhook for CRM integration."""
if event.get("entry"):
for entry in event["entry"]:
for change in entry.get("changes", []):
if change["field"] == "messages":
messages = change["value"].get("messages", [])
for msg in messages:
# Extract message data for CRM
crm_data = {
"phone": msg["from"],
"message": msg.get("text", {}).get("body", ""),
"timestamp": msg["timestamp"],
"type": msg["type"],
"wa_message_id": msg["id"]
}
# Send to CRM system
# update_crm(crm_data)
return {"status": "ok"}User says: "Set up WhatsApp appointment reminders for my dental clinic in Hebrew" Actions:
User says: "I want to send order confirmations and shipping updates via WhatsApp" Actions:
User says: "Send a promotion to our customer list for a holiday sale" Actions:
scripts/send_whatsapp.py — Sends WhatsApp Business messages via the Meta Cloud API for the Israeli market. Supports template messages (with language and parameter substitution) and free-form text messages within the 24-hour conversation window. Includes Israeli phone number validation and Shabbat-aware sending time checks. Run: python scripts/send_whatsapp.py --helpCause: Template violates WhatsApp policy or formatting issues Solution: Ensure Hebrew text is properly formatted, no prohibited content (gambling, adult), variables have examples, and category matches content type.
Cause: Various -- invalid number, user not on WhatsApp, rate limit Solution: Verify +972 format, check user has WhatsApp, respect rate limits (80 messages/second for Cloud API).
Cause: Webhook URL not verified or Meta app not configured Solution: Ensure webhook URL is HTTPS, verification token matches, and Meta App is subscribed to messages webhook field.
Supported Agents
Trust Score
This skill can execute scripts and commands on your system.
This skill can make network requests to external services.
by @skills-il
Optimize Monday.com workflows for Israeli teams with board management, automation recipes, and API integration. Use when user asks about Monday.com boards, Monday.com automations, "monday.com API", work management, sprint planning with Israeli calendar, or team workflow optimization on Monday.com. Enhances the official mondaycom/mcp server with Israeli team best practices including Sunday-Thursday work week, Hebrew boards, and holiday-aware scheduling. Do NOT use for other project management tools (Jira, Asana, etc.).
by @skills-il
Integrate with Israeli SMS gateway providers for business messaging, OTP, and notifications. Use when user asks about sending SMS in Israel, Israeli SMS providers, phone number validation (Israeli format), OTP implementation, bulk SMS, or SMS marketing compliance. Covers SMS4Free, InforUMobile, and international providers with Israeli support. Do NOT use for WhatsApp Business API (see separate skill) or non-Israeli telecom.
by @skills-il
Aggregate Israeli job market data, optimize Hebrew CVs, benchmark salaries, and track employment trends. Use when user asks about job searching in Israel, Israeli CV writing, Hebrew resume, salary expectations in Israel, AllJobs, Drushim, JobMaster, JobNet, LinkedIn Israel, Israeli job interviews, or Israeli employment benefits. Covers major job platforms, salary data, and Israeli workplace culture. Do NOT use for international job markets outside Israel or immigration/visa work permits (see separate skill).