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.8.0.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.

swarmauri_tool_zapierhook-0.8.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_tool_zapierhook-0.8.0.tar.gz.

File metadata

  • Download URL: swarmauri_tool_zapierhook-0.8.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","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.8.0.tar.gz
Algorithm Hash digest
SHA256 874d347c6b72fb76bfff53543322d80cebf36e6bb0299f96c1cd34ee16a543a2
MD5 9e01008af0d90b5fecb2768d0d1a9d65
BLAKE2b-256 f158d6a47e8c69b77017d4ff4c086d827f40a68753ec6c75a275fb206f3db6fd

See more details on using hashes here.

File details

Details for the file swarmauri_tool_zapierhook-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_tool_zapierhook-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","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.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5834ea33e4e73a1b7a0c30b4966265f436b1d6523fce81e116e6fd58e303e5d
MD5 e6acccb5138e6aa2ee1646863a27a49e
BLAKE2b-256 0b8582c100f5de003e391f151cdf56872d51c344d5c1b977c659dcdfe9cc5d5b

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