Skip to main content

Zapier Hook Tool

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_tool_zapierhook


Swarmauri Tool · Zapier Hook

A Swarmauri tool that triggers Zapier catch webhooks from within agent workflows. Use it to hand off conversation state to Zapier automations—send notifications, update CRMs, open tickets, or kick off custom Zaps with a single function call.

  • Accepts JSON payloads as strings and posts them to a Zapier webhook URL.
  • Surfaces the Zapier HTTP response (success or failure) in a structured dictionary.
  • Built on requests so you can extend headers, authentication, or timeout behaviour if required.

Requirements

  • Python 3.10 – 3.13.
  • A Zapier webhook URL (copy from Zap setup → Webhooks by ZapierCatch Hook). Store it securely (environment variables, secrets manager).
  • Dependencies (requests, swarmauri_base, swarmauri_standard, pydantic) install automatically with the package.

Installation

Pick the packaging workflow that fits your project; each command installs dependencies.

pip

pip install swarmauri_tool_zapierhook

Poetry

poetry add swarmauri_tool_zapierhook

uv

# Add to the current project and update uv.lock
uv add swarmauri_tool_zapierhook

# or install into the active environment without editing pyproject.toml
uv pip install swarmauri_tool_zapierhook

Tip: Treat the webhook URL like a secret. Avoid hardcoding it in source control and prefer environment variables.

Quick Start

import json
import os
from swarmauri_tool_zapierhook import ZapierHookTool

zap_url = os.environ["ZAPIER_WEBHOOK_URL"]
zap_tool = ZapierHookTool(zap_url=zap_url)

payload = json.dumps({
    "message": "Hello from Swarmauri!",
    "source": "webhook-demo"
})

result = zap_tool(payload)
print(result["zap_response"])

ZapierHookTool wraps the payload in a JSON object ({"data": payload}) before posting, matching the expectations of most Zapier catch hooks.

Usage Scenarios

Forward Agent Decisions to Zapier

from swarmauri_core.agent.Agent import Agent
from swarmauri_core.messages.HumanMessage import HumanMessage
from swarmauri_standard.tools.registry import ToolRegistry
from swarmauri_tool_zapierhook import ZapierHookTool

registry = ToolRegistry()
registry.register(ZapierHookTool(zap_url=os.environ["ZAPIER_WEBHOOK_URL"]))
agent = Agent(tool_registry=registry)

message = HumanMessage(content="log a follow-up task for the sales team")
response = agent.run(message)
print(response)

The agent can serialize conversation context, send it to Zapier, and continue the dialogue with confirmation details.

Escalate Incidents From Monitoring Scripts

import json
import os
from swarmauri_tool_zapierhook import ZapierHookTool

zap_tool = ZapierHookTool(zap_url=os.environ["INCIDENT_ZAP_URL"])
alert = {
    "service": "payments",
    "severity": "critical",
    "message": "Latency exceeded threshold"
}

result = zap_tool(json.dumps(alert))
print("Zapier response:", result["zap_response"])

Trigger a Zap that files tickets, posts to Slack, or updates status pages when your monitoring detects issues.

Batch Replay Events

import json
import os
from swarmauri_tool_zapierhook import ZapierHookTool

zap_tool = ZapierHookTool(zap_url=os.environ["EVENT_ZAP_URL"])
with open("events.json") as fh:
    events = json.load(fh)

for event in events:
    payload = json.dumps(event)
    zap_tool(payload)

Replay queued events into Zapier when systems come back online.

Troubleshooting

  • requests.exceptions.HTTPError – Zapier returned a non-200 status (often 401 due to malformed or revoked URLs). Check the webhook URL and payload format.
  • Timeouts or connection errors – Ensure the environment has outbound internet access and consider wrapping the tool to set explicit timeouts or retries.
  • Zap expects structured JSON – The tool sends {"data": payload}. Adjust your Zap’s “Catch Hook” step or extend the tool if you need different envelope fields.

License

swarmauri_tool_zapierhook is released under the Apache 2.0 License. See LICENSE for full details.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swarmauri_tool_zapierhook-0.9.0.dev4.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file swarmauri_tool_zapierhook-0.9.0.dev4.tar.gz.

File metadata

  • Download URL: swarmauri_tool_zapierhook-0.9.0.dev4.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_tool_zapierhook-0.9.0.dev4.tar.gz
Algorithm Hash digest
SHA256 b7a454034f5df1df1faf1e630551c6ad68308d6aaab2248c231dcfe8ed003137
MD5 6e418ce17d405380e4203ca7513fe000
BLAKE2b-256 e5a125d448e079c5e1976edc8a70363ca4b03605813131648a681a71422a7649

See more details on using hashes here.

File details

Details for the file swarmauri_tool_zapierhook-0.9.0.dev4-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_tool_zapierhook-0.9.0.dev4-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_tool_zapierhook-0.9.0.dev4-py3-none-any.whl
Algorithm Hash digest
SHA256 a11534938cdbf417b10588d191f34d0a3a000df0aae4dcde1729199e468ce9ab
MD5 46e36ec4fb326c447dae3c46b37f93e8
BLAKE2b-256 2a480541e938cb34f354f141a8ac518dddadc15fe60c1676b8188151e5985c3a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page