Skip to main content
Glama
Jem-HR
by Jem-HR

send_template

Send pre-approved WhatsApp template messages with customizable parameters for consistent business communication.

Instructions

Send a WhatsApp template message.

Args: to: Phone number or WhatsApp ID name: Template name/ID language: Template language code (default: en) params: Optional template parameters (header, body, button components) reply_to_message_id: Message ID to reply to

Returns: Dictionary with success status and message ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYes
nameYes
languageNoen
paramsNo
reply_to_message_idNo

Implementation Reference

  • The main handler function for send_template tool. This async function sends WhatsApp template messages with parameters for recipient phone number, template name, language code, optional template parameters, and reply-to message ID. It calls the underlying pywa library's send_template method and returns a success/failure response with message details.
    async def send_template( to: str, name: str, language: str = "en", params: Optional[List[Dict[str, Any]]] = None, *, reply_to_message_id: Optional[str] = None, ) -> dict: """ Send a WhatsApp template message. Args: to: Phone number or WhatsApp ID name: Template name/ID language: Template language code (default: en) params: Optional template parameters (header, body, button components) reply_to_message_id: Message ID to reply to Returns: Dictionary with success status and message ID """ try: result = wa_client.send_template( to=to, name=name, language=language, params=params or [], reply_to_message_id=reply_to_message_id, ) logger.info(f"Template '{name}' sent to {to}") message_id = getattr(result, 'id', str(result)) if result else None return { "success": True, "message_id": message_id, "template": name, "to": to, } except Exception as e: logger.error(f"Failed to send template: {str(e)}") return {"success": False, "error": str(e)}
  • The registration function that creates and registers the send_template tool with the MCP server. This function defines the tool's schema via function signature and decorators, making it available for use by the MCP client.
    def register_template_tools(mcp, wa_client: WhatsApp): """Register template-related tools.""" @mcp.tool() async def send_template( to: str, name: str, language: str = "en", params: Optional[List[Dict[str, Any]]] = None, *, reply_to_message_id: Optional[str] = None, ) -> dict: """ Send a WhatsApp template message. Args: to: Phone number or WhatsApp ID name: Template name/ID language: Template language code (default: en) params: Optional template parameters (header, body, button components) reply_to_message_id: Message ID to reply to Returns: Dictionary with success status and message ID """ try: result = wa_client.send_template( to=to, name=name, language=language, params=params or [], reply_to_message_id=reply_to_message_id, ) logger.info(f"Template '{name}' sent to {to}") message_id = getattr(result, 'id', str(result)) if result else None return { "success": True, "message_id": message_id, "template": name, "to": to, } except Exception as e: logger.error(f"Failed to send template: {str(e)}") return {"success": False, "error": str(e)}
  • The schema/type definition for the send_template tool. Defined through Python type hints in the function signature, specifying that it takes a required string 'to' and 'name', an optional string 'language' with default 'en', optional list of dicts for 'params', and optional 'reply_to_message_id'. Returns a dictionary.
    to: str, name: str, language: str = "en", params: Optional[List[Dict[str, Any]]] = None, *, reply_to_message_id: Optional[str] = None, ) -> dict:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Jem-HR/pywa-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server