swarmauri_tool_zapierhook 0.8.0.dev4__tar.gz → 0.8.2.dev6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,172 @@
1
+ Metadata-Version: 2.4
2
+ Name: swarmauri_tool_zapierhook
3
+ Version: 0.8.2.dev6
4
+ Summary: Zapier Hook Tool
5
+ License-Expression: Apache-2.0
6
+ License-File: LICENSE
7
+ Keywords: swarmauri,tool,zapierhook,zapier,hook
8
+ Author: Jacob Stewart
9
+ Author-email: jacob@swarmauri.com
10
+ Requires-Python: >=3.10,<3.13
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Natural Language :: English
16
+ Classifier: Development Status :: 3 - Alpha
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
19
+ Requires-Dist: swarmauri_base
20
+ Requires-Dist: swarmauri_core
21
+ Requires-Dist: swarmauri_standard
22
+ Description-Content-Type: text/markdown
23
+
24
+ ![Swarmauri Logo](https://github.com/swarmauri/swarmauri-sdk/blob/3d4d1cfa949399d7019ae9d8f296afba773dfb7f/assets/swarmauri.brand.theme.svg)
25
+
26
+ <p align="center">
27
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
28
+ <img src="https://img.shields.io/pypi/dm/swarmauri_tool_zapierhook" alt="PyPI - Downloads"/></a>
29
+ <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook/">
30
+ <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook.svg"/></a>
31
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
32
+ <img src="https://img.shields.io/pypi/pyversions/swarmauri_tool_zapierhook" alt="PyPI - Python Version"/></a>
33
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
34
+ <img src="https://img.shields.io/pypi/l/swarmauri_tool_zapierhook" alt="PyPI - License"/></a>
35
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
36
+ <img src="https://img.shields.io/pypi/v/swarmauri_tool_zapierhook?label=swarmauri_tool_zapierhook&color=green" alt="PyPI - swarmauri_tool_zapierhook"/></a>
37
+ </p>
38
+
39
+ ---
40
+
41
+ # Swarmauri Tool · Zapier Hook
42
+
43
+ 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.
44
+
45
+ - Accepts JSON payloads as strings and posts them to a Zapier webhook URL.
46
+ - Surfaces the Zapier HTTP response (success or failure) in a structured dictionary.
47
+ - Built on `requests` so you can extend headers, authentication, or timeout behaviour if required.
48
+
49
+ ## Requirements
50
+
51
+ - Python 3.10 – 3.13.
52
+ - A Zapier webhook URL (copy from Zap setup → **Webhooks by Zapier** → **Catch Hook**). Store it securely (environment variables, secrets manager).
53
+ - Dependencies (`requests`, `swarmauri_base`, `swarmauri_standard`, `pydantic`) install automatically with the package.
54
+
55
+ ## Installation
56
+
57
+ Pick the packaging workflow that fits your project; each command installs dependencies.
58
+
59
+ **pip**
60
+
61
+ ```bash
62
+ pip install swarmauri_tool_zapierhook
63
+ ```
64
+
65
+ **Poetry**
66
+
67
+ ```bash
68
+ poetry add swarmauri_tool_zapierhook
69
+ ```
70
+
71
+ **uv**
72
+
73
+ ```bash
74
+ # Add to the current project and update uv.lock
75
+ uv add swarmauri_tool_zapierhook
76
+
77
+ # or install into the active environment without editing pyproject.toml
78
+ uv pip install swarmauri_tool_zapierhook
79
+ ```
80
+
81
+ > Tip: Treat the webhook URL like a secret. Avoid hardcoding it in source control and prefer environment variables.
82
+
83
+ ## Quick Start
84
+
85
+ ```python
86
+ import json
87
+ import os
88
+ from swarmauri_tool_zapierhook import ZapierHookTool
89
+
90
+ zap_url = os.environ["ZAPIER_WEBHOOK_URL"]
91
+ zap_tool = ZapierHookTool(zap_url=zap_url)
92
+
93
+ payload = json.dumps({
94
+ "message": "Hello from Swarmauri!",
95
+ "source": "webhook-demo"
96
+ })
97
+
98
+ result = zap_tool(payload)
99
+ print(result["zap_response"])
100
+ ```
101
+
102
+ `ZapierHookTool` wraps the payload in a JSON object (`{"data": payload}`) before posting, matching the expectations of most Zapier catch hooks.
103
+
104
+ ## Usage Scenarios
105
+
106
+ ### Forward Agent Decisions to Zapier
107
+
108
+ ```python
109
+ from swarmauri_core.agent.Agent import Agent
110
+ from swarmauri_core.messages.HumanMessage import HumanMessage
111
+ from swarmauri_standard.tools.registry import ToolRegistry
112
+ from swarmauri_tool_zapierhook import ZapierHookTool
113
+
114
+ registry = ToolRegistry()
115
+ registry.register(ZapierHookTool(zap_url=os.environ["ZAPIER_WEBHOOK_URL"]))
116
+ agent = Agent(tool_registry=registry)
117
+
118
+ message = HumanMessage(content="log a follow-up task for the sales team")
119
+ response = agent.run(message)
120
+ print(response)
121
+ ```
122
+
123
+ The agent can serialize conversation context, send it to Zapier, and continue the dialogue with confirmation details.
124
+
125
+ ### Escalate Incidents From Monitoring Scripts
126
+
127
+ ```python
128
+ import json
129
+ import os
130
+ from swarmauri_tool_zapierhook import ZapierHookTool
131
+
132
+ zap_tool = ZapierHookTool(zap_url=os.environ["INCIDENT_ZAP_URL"])
133
+ alert = {
134
+ "service": "payments",
135
+ "severity": "critical",
136
+ "message": "Latency exceeded threshold"
137
+ }
138
+
139
+ result = zap_tool(json.dumps(alert))
140
+ print("Zapier response:", result["zap_response"])
141
+ ```
142
+
143
+ Trigger a Zap that files tickets, posts to Slack, or updates status pages when your monitoring detects issues.
144
+
145
+ ### Batch Replay Events
146
+
147
+ ```python
148
+ import json
149
+ import os
150
+ from swarmauri_tool_zapierhook import ZapierHookTool
151
+
152
+ zap_tool = ZapierHookTool(zap_url=os.environ["EVENT_ZAP_URL"])
153
+ with open("events.json") as fh:
154
+ events = json.load(fh)
155
+
156
+ for event in events:
157
+ payload = json.dumps(event)
158
+ zap_tool(payload)
159
+ ```
160
+
161
+ Replay queued events into Zapier when systems come back online.
162
+
163
+ ## Troubleshooting
164
+
165
+ - **`requests.exceptions.HTTPError`** – Zapier returned a non-200 status (often 401 due to malformed or revoked URLs). Check the webhook URL and payload format.
166
+ - **Timeouts or connection errors** – Ensure the environment has outbound internet access and consider wrapping the tool to set explicit timeouts or retries.
167
+ - **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.
168
+
169
+ ## License
170
+
171
+ `swarmauri_tool_zapierhook` is released under the Apache 2.0 License. See `LICENSE` for full details.
172
+
@@ -0,0 +1,148 @@
1
+ ![Swarmauri Logo](https://github.com/swarmauri/swarmauri-sdk/blob/3d4d1cfa949399d7019ae9d8f296afba773dfb7f/assets/swarmauri.brand.theme.svg)
2
+
3
+ <p align="center">
4
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
5
+ <img src="https://img.shields.io/pypi/dm/swarmauri_tool_zapierhook" alt="PyPI - Downloads"/></a>
6
+ <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook/">
7
+ <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook.svg"/></a>
8
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
9
+ <img src="https://img.shields.io/pypi/pyversions/swarmauri_tool_zapierhook" alt="PyPI - Python Version"/></a>
10
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
11
+ <img src="https://img.shields.io/pypi/l/swarmauri_tool_zapierhook" alt="PyPI - License"/></a>
12
+ <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
13
+ <img src="https://img.shields.io/pypi/v/swarmauri_tool_zapierhook?label=swarmauri_tool_zapierhook&color=green" alt="PyPI - swarmauri_tool_zapierhook"/></a>
14
+ </p>
15
+
16
+ ---
17
+
18
+ # Swarmauri Tool · Zapier Hook
19
+
20
+ 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.
21
+
22
+ - Accepts JSON payloads as strings and posts them to a Zapier webhook URL.
23
+ - Surfaces the Zapier HTTP response (success or failure) in a structured dictionary.
24
+ - Built on `requests` so you can extend headers, authentication, or timeout behaviour if required.
25
+
26
+ ## Requirements
27
+
28
+ - Python 3.10 – 3.13.
29
+ - A Zapier webhook URL (copy from Zap setup → **Webhooks by Zapier** → **Catch Hook**). Store it securely (environment variables, secrets manager).
30
+ - Dependencies (`requests`, `swarmauri_base`, `swarmauri_standard`, `pydantic`) install automatically with the package.
31
+
32
+ ## Installation
33
+
34
+ Pick the packaging workflow that fits your project; each command installs dependencies.
35
+
36
+ **pip**
37
+
38
+ ```bash
39
+ pip install swarmauri_tool_zapierhook
40
+ ```
41
+
42
+ **Poetry**
43
+
44
+ ```bash
45
+ poetry add swarmauri_tool_zapierhook
46
+ ```
47
+
48
+ **uv**
49
+
50
+ ```bash
51
+ # Add to the current project and update uv.lock
52
+ uv add swarmauri_tool_zapierhook
53
+
54
+ # or install into the active environment without editing pyproject.toml
55
+ uv pip install swarmauri_tool_zapierhook
56
+ ```
57
+
58
+ > Tip: Treat the webhook URL like a secret. Avoid hardcoding it in source control and prefer environment variables.
59
+
60
+ ## Quick Start
61
+
62
+ ```python
63
+ import json
64
+ import os
65
+ from swarmauri_tool_zapierhook import ZapierHookTool
66
+
67
+ zap_url = os.environ["ZAPIER_WEBHOOK_URL"]
68
+ zap_tool = ZapierHookTool(zap_url=zap_url)
69
+
70
+ payload = json.dumps({
71
+ "message": "Hello from Swarmauri!",
72
+ "source": "webhook-demo"
73
+ })
74
+
75
+ result = zap_tool(payload)
76
+ print(result["zap_response"])
77
+ ```
78
+
79
+ `ZapierHookTool` wraps the payload in a JSON object (`{"data": payload}`) before posting, matching the expectations of most Zapier catch hooks.
80
+
81
+ ## Usage Scenarios
82
+
83
+ ### Forward Agent Decisions to Zapier
84
+
85
+ ```python
86
+ from swarmauri_core.agent.Agent import Agent
87
+ from swarmauri_core.messages.HumanMessage import HumanMessage
88
+ from swarmauri_standard.tools.registry import ToolRegistry
89
+ from swarmauri_tool_zapierhook import ZapierHookTool
90
+
91
+ registry = ToolRegistry()
92
+ registry.register(ZapierHookTool(zap_url=os.environ["ZAPIER_WEBHOOK_URL"]))
93
+ agent = Agent(tool_registry=registry)
94
+
95
+ message = HumanMessage(content="log a follow-up task for the sales team")
96
+ response = agent.run(message)
97
+ print(response)
98
+ ```
99
+
100
+ The agent can serialize conversation context, send it to Zapier, and continue the dialogue with confirmation details.
101
+
102
+ ### Escalate Incidents From Monitoring Scripts
103
+
104
+ ```python
105
+ import json
106
+ import os
107
+ from swarmauri_tool_zapierhook import ZapierHookTool
108
+
109
+ zap_tool = ZapierHookTool(zap_url=os.environ["INCIDENT_ZAP_URL"])
110
+ alert = {
111
+ "service": "payments",
112
+ "severity": "critical",
113
+ "message": "Latency exceeded threshold"
114
+ }
115
+
116
+ result = zap_tool(json.dumps(alert))
117
+ print("Zapier response:", result["zap_response"])
118
+ ```
119
+
120
+ Trigger a Zap that files tickets, posts to Slack, or updates status pages when your monitoring detects issues.
121
+
122
+ ### Batch Replay Events
123
+
124
+ ```python
125
+ import json
126
+ import os
127
+ from swarmauri_tool_zapierhook import ZapierHookTool
128
+
129
+ zap_tool = ZapierHookTool(zap_url=os.environ["EVENT_ZAP_URL"])
130
+ with open("events.json") as fh:
131
+ events = json.load(fh)
132
+
133
+ for event in events:
134
+ payload = json.dumps(event)
135
+ zap_tool(payload)
136
+ ```
137
+
138
+ Replay queued events into Zapier when systems come back online.
139
+
140
+ ## Troubleshooting
141
+
142
+ - **`requests.exceptions.HTTPError`** – Zapier returned a non-200 status (often 401 due to malformed or revoked URLs). Check the webhook URL and payload format.
143
+ - **Timeouts or connection errors** – Ensure the environment has outbound internet access and consider wrapping the tool to set explicit timeouts or retries.
144
+ - **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.
145
+
146
+ ## License
147
+
148
+ `swarmauri_tool_zapierhook` is released under the Apache 2.0 License. See `LICENSE` for full details.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "swarmauri_tool_zapierhook"
3
- version = "0.8.0.dev4"
3
+ version = "0.8.2.dev6"
4
4
  description = "Zapier Hook Tool"
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
@@ -11,9 +11,20 @@ classifiers = [
11
11
  "Programming Language :: Python :: 3.10",
12
12
  "Programming Language :: Python :: 3.11",
13
13
  "Programming Language :: Python :: 3.12",
14
+ "Natural Language :: English",
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Developers",
17
+ "Topic :: Software Development :: Libraries :: Application Frameworks",
14
18
  ]
15
19
  authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
16
20
  dependencies = ["swarmauri_core", "swarmauri_base", "swarmauri_standard"]
21
+ keywords = [
22
+ "swarmauri",
23
+ "tool",
24
+ "zapierhook",
25
+ "zapier",
26
+ "hook",
27
+ ]
17
28
 
18
29
  [tool.uv.sources]
19
30
  swarmauri_core = { workspace = true }
@@ -1,68 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: swarmauri_tool_zapierhook
3
- Version: 0.8.0.dev4
4
- Summary: Zapier Hook Tool
5
- License: Apache-2.0
6
- Author: Jacob Stewart
7
- Author-email: jacob@swarmauri.com
8
- Requires-Python: >=3.10,<3.13
9
- Classifier: License :: OSI Approved :: Apache Software License
10
- Classifier: Programming Language :: Python :: 3.10
11
- Classifier: Programming Language :: Python :: 3.11
12
- Classifier: Programming Language :: Python :: 3.12
13
- Requires-Dist: swarmauri_base
14
- Requires-Dist: swarmauri_core
15
- Requires-Dist: swarmauri_standard
16
- Description-Content-Type: text/markdown
17
-
18
-
19
- ![Swamauri Logo](https://res.cloudinary.com/dbjmpekvl/image/upload/v1730099724/Swarmauri-logo-lockup-2048x757_hww01w.png)
20
-
21
- <p align="center">
22
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
23
- <img src="https://img.shields.io/pypi/dm/swarmauri_tool_zapierhook" alt="PyPI - Downloads"/></a>
24
- <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook/">
25
- <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook.svg"/></a>
26
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
27
- <img src="https://img.shields.io/pypi/pyversions/swarmauri_tool_zapierhook" alt="PyPI - Python Version"/></a>
28
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
29
- <img src="https://img.shields.io/pypi/l/swarmauri_tool_zapierhook" alt="PyPI - License"/></a>
30
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
31
- <img src="https://img.shields.io/pypi/v/swarmauri_tool_zapierhook?label=swarmauri_tool_zapierhook&color=green" alt="PyPI - swarmauri_tool_zapierhook"/></a>
32
- </p>
33
-
34
- ---
35
-
36
- # Swarmauri Tool Zapier Hook
37
-
38
- A tool for integrating Zapier webhooks with Swarmauri, enabling automated workflows through Zapier's API.
39
-
40
- ## Installation
41
-
42
- ```bash
43
- pip install swarmauri_tool_zapierhook
44
- ```
45
-
46
- ## Usage
47
-
48
- Here's a basic example of how to use the Zapier Hook Tool:
49
-
50
- ```python
51
- from swarmauri.tools.ZapierHookTool import ZapierHookTool
52
-
53
- # Initialize the tool with your Zapier webhook URL
54
- zapier_tool = ZapierHookTool(zap_url="your_zapier_webhook_url")
55
-
56
- # Send a payload to trigger the Zap
57
- payload = '{"message": "Hello from Swarmauri!"}'
58
- response = zapier_tool(payload)
59
-
60
- # The response will contain the Zapier API response
61
- print(response['zap_response'])
62
- ```
63
-
64
- ## Want to help?
65
-
66
- If you want to contribute to swarmauri-sdk, read up on our [guidelines for contributing](https://github.com/swarmauri/swarmauri-sdk/blob/master/contributing.md) that will help you get started.
67
-
68
-
@@ -1,50 +0,0 @@
1
-
2
- ![Swamauri Logo](https://res.cloudinary.com/dbjmpekvl/image/upload/v1730099724/Swarmauri-logo-lockup-2048x757_hww01w.png)
3
-
4
- <p align="center">
5
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
6
- <img src="https://img.shields.io/pypi/dm/swarmauri_tool_zapierhook" alt="PyPI - Downloads"/></a>
7
- <a href="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook/">
8
- <img alt="Hits" src="https://hits.sh/github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/community/swarmauri_tool_zapierhook.svg"/></a>
9
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
10
- <img src="https://img.shields.io/pypi/pyversions/swarmauri_tool_zapierhook" alt="PyPI - Python Version"/></a>
11
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
12
- <img src="https://img.shields.io/pypi/l/swarmauri_tool_zapierhook" alt="PyPI - License"/></a>
13
- <a href="https://pypi.org/project/swarmauri_tool_zapierhook/">
14
- <img src="https://img.shields.io/pypi/v/swarmauri_tool_zapierhook?label=swarmauri_tool_zapierhook&color=green" alt="PyPI - swarmauri_tool_zapierhook"/></a>
15
- </p>
16
-
17
- ---
18
-
19
- # Swarmauri Tool Zapier Hook
20
-
21
- A tool for integrating Zapier webhooks with Swarmauri, enabling automated workflows through Zapier's API.
22
-
23
- ## Installation
24
-
25
- ```bash
26
- pip install swarmauri_tool_zapierhook
27
- ```
28
-
29
- ## Usage
30
-
31
- Here's a basic example of how to use the Zapier Hook Tool:
32
-
33
- ```python
34
- from swarmauri.tools.ZapierHookTool import ZapierHookTool
35
-
36
- # Initialize the tool with your Zapier webhook URL
37
- zapier_tool = ZapierHookTool(zap_url="your_zapier_webhook_url")
38
-
39
- # Send a payload to trigger the Zap
40
- payload = '{"message": "Hello from Swarmauri!"}'
41
- response = zapier_tool(payload)
42
-
43
- # The response will contain the Zapier API response
44
- print(response['zap_response'])
45
- ```
46
-
47
- ## Want to help?
48
-
49
- If you want to contribute to swarmauri-sdk, read up on our [guidelines for contributing](https://github.com/swarmauri/swarmauri-sdk/blob/master/contributing.md) that will help you get started.
50
-