docs/integrations/block-integrations/agent_mail/pods.md
Blocks for creating, managing, and querying pods in AgentMail. Pods provide multi-tenant isolation between customers — each pod acts as an isolated workspace containing its own inboxes, domains, threads, and drafts. Use pods when building SaaS platforms, agency tools, or AI agent fleets serving multiple customers.
<!-- END MANUAL -->Create a new pod for multi-tenant customer isolation. Use client_id to map to your internal tenant IDs.
Calls the AgentMail API to provision a new pod, passing an optional client_id parameter. When a client_id is provided, AgentMail maps it to the pod so you can later reference the pod using your own internal tenant identifier instead of the AgentMail-assigned pod_id.
The block returns the newly created pod_id along with the complete pod object containing all metadata. Any API errors propagate directly to the global error handler.
| Input | Description | Type | Required |
|---|---|---|---|
| client_id | Your internal tenant/customer ID for idempotent mapping. Lets you access the pod by your own ID instead of AgentMail's pod_id. | str | No |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| pod_id | Unique identifier of the created pod | str |
| result | Complete pod object with all metadata | Dict[str, Any] |
Create a new email inbox within a pod. The inbox is scoped to the customer workspace.
Calls the AgentMail API to create a new inbox scoped to the specified pod. You can optionally provide a username, domain, and display_name to customize the email address and sender identity. If omitted, the username is auto-generated and the domain defaults to agentmail.to.
The block returns the inbox_id, the full email_address, and the complete inbox metadata object. The inbox is fully isolated within the pod, meaning it only appears in that pod's inbox listings and its threads stay separate from other pods.
| Input | Description | Type | Required |
|---|---|---|---|
| pod_id | Pod ID to create the inbox in | str | Yes |
| username | Local part of the email address (e.g. 'support'). Leave empty to auto-generate. | str | No |
| domain | Email domain (e.g. 'mydomain.com'). Defaults to agentmail.to if empty. | str | No |
| display_name | Friendly name shown in the 'From' field (e.g. 'Customer Support') | str | No |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| inbox_id | Unique identifier of the created inbox | str |
| email_address | Full email address of the inbox | str |
| result | Complete inbox object with all metadata | Dict[str, Any] |
[email protected] inbox inside each customer's pod so inbound support emails are automatically routed to the right tenant.Permanently delete a pod. All inboxes and domains must be removed first.
Calls the AgentMail API to permanently delete the specified pod. The API enforces a precondition: all inboxes and custom domains must be removed from the pod before deletion is allowed. If any remain, the API returns an error that propagates to the global error handler.
On success the block returns success=True. This operation is irreversible -- the pod and its associated client_id mapping are permanently removed.
| Input | Description | Type | Required |
|---|---|---|---|
| pod_id | Pod ID to permanently delete (must have no inboxes or domains) | str | Yes |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| success | True if the pod was successfully deleted | bool |
Retrieve details of an existing pod including its client_id mapping and metadata.
Calls the AgentMail API with the given pod_id to fetch the full pod record. The returned object includes the pod's client_id mapping, creation timestamp, and any other metadata stored on the pod.
The block outputs both the pod_id and the complete result dictionary. If the pod does not exist, the API error propagates directly to the global error handler.
| Input | Description | Type | Required |
|---|---|---|---|
| pod_id | Pod ID to retrieve | str | Yes |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| pod_id | Unique identifier of the pod | str |
| result | Complete pod object with all metadata | Dict[str, Any] |
List all drafts across all inboxes within a pod. View pending emails for a customer.
Calls the AgentMail API to retrieve drafts across all inboxes within the specified pod. Optional limit and page_token parameters control pagination. Only non-empty parameters are sent to the API.
The block returns the list of draft objects, a count of drafts in the current page, and a next_page_token for fetching subsequent pages. This provides a pod-wide view of unsent emails without needing to query each inbox individually.
| Input | Description | Type | Required |
|---|---|---|---|
| pod_id | Pod ID to list drafts from | str | Yes |
| limit | Maximum number of drafts to return per page (1-100) | int | No |
| page_token | Token from a previous response to fetch the next page | str | No |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| drafts | List of draft objects from all inboxes in this pod | List[Dict[str, Any]] |
| count | Number of drafts returned | int |
| next_page_token | Token for the next page. Empty if no more results. | str |
List all inboxes within a pod. View email accounts scoped to a specific customer.
Calls the AgentMail API to list all inboxes belonging to the specified pod. Optional limit and page_token parameters enable paginated retrieval. Only non-empty parameters are included in the API call.
The block returns the list of inbox objects, a count of inboxes in the current page, and a next_page_token for fetching additional pages. Each inbox object includes its ID, email address, display name, and other metadata.
| Input | Description | Type | Required |
|---|---|---|---|
| pod_id | Pod ID to list inboxes from | str | Yes |
| limit | Maximum number of inboxes to return per page (1-100) | int | No |
| page_token | Token from a previous response to fetch the next page | str | No |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| inboxes | List of inbox objects within this pod | List[Dict[str, Any]] |
| count | Number of inboxes returned | int |
| next_page_token | Token for the next page. Empty if no more results. | str |
List all conversation threads across all inboxes within a pod. View all email activity for a customer.
Calls the AgentMail API to retrieve conversation threads across all inboxes in the specified pod. Supports optional limit, page_token, and labels parameters. When labels are provided, only threads matching all specified labels are returned.
The block returns the list of thread objects, a count for the current page, and a next_page_token for pagination. This gives a unified, cross-inbox view of all email conversations within a customer's workspace.
| Input | Description | Type | Required |
|---|---|---|---|
| pod_id | Pod ID to list threads from | str | Yes |
| limit | Maximum number of threads to return per page (1-100) | int | No |
| page_token | Token from a previous response to fetch the next page | str | No |
| labels | Only return threads matching ALL of these labels | List[str] | No |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| threads | List of thread objects from all inboxes in this pod | List[Dict[str, Any]] |
| count | Number of threads returned | int |
| next_page_token | Token for the next page. Empty if no more results. | str |
List all tenant pods in your organization. See all customer workspaces at a glance.
Calls the AgentMail API to list all pods in your organization. Optional limit and page_token parameters control pagination. Only non-empty parameters are included in the request.
The block returns a list of pod objects (each containing pod_id, client_id, creation time, and other metadata), a count for the current page, and a next_page_token for retrieving additional pages.
| Input | Description | Type | Required |
|---|---|---|---|
| limit | Maximum number of pods to return per page (1-100) | int | No |
| page_token | Token from a previous response to fetch the next page | str | No |
| Output | Description | Type |
|---|---|---|
| error | Error message if the operation failed | str |
| pods | List of pod objects with pod_id, client_id, creation time, etc. | List[Dict[str, Any]] |
| count | Number of pods returned | int |
| next_page_token | Token for the next page. Empty if no more results. | str |