Create sent
Records what the member's browser did with its reservations: the invites sent, and the ones that failed with the mailbox's reason.
POST /v1/marketing/beta/invites/sent
| Address | https://api.hanzo.ai/v1/marketing/beta/invites/sent |
| Method | POST |
| Operation | post_marketing_beta_invites_sent |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Records what the member's browser did with its reservations: the invites sent, and the ones that failed with the mailbox's reason. Only the member who reserved an invite marks it, only while it is reserved, and only within the 24 hours it holds; anything else is left as it stands. Each invite that becomes sent is filed on its invitee's CRM timeline, the person made when the org held none, a CRM that cannot answer costing the timeline an entry and never the report. It answers the named invites that are the caller's, as they stand.
Request
4 fields, body application/json (required).
| Field | In | Type | Required | Description |
|---|---|---|---|---|
failed | body | marketing.BetaInviteFailure[] | — | Failed are the invites that did not go out. |
failed[].id | body | string | — | ID is the invite's id. |
failed[].why | body | string | — | Why is the mailbox's reason, at most 200 characters. |
ids | body | string[] | — | IDs are the invites sent. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | marketing.BetaInviteRows | ok |
default | problem-details | refused |
200 body — 5 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
invites | body | marketing.BetaInviteRow[] | — | Invites are those invites as they stand. |
invites[].at | body | string | — | At is when it last moved, RFC 3339 in UTC. |
invites[].id | body | string | — | ID is the invite's id. |
invites[].status | body | string | — | Status is reserved, sent, failed or joined. |
invites[].to | body | string | — | To is the invited address. |
Failure carries the platform error shape — see Errors.
Examples
hanzo marketing beta invites sentimport { Configuration, MarketingApi } from 'hanzoai';
const api = new MarketingApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postMarketingBetaInvitesSent({ failed: [{"id":"<id>","why":"<why>"}], ids: ["<ids>"] });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import MarketingApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = MarketingApi(client).post_marketing_beta_invites_sent(failed=[{"id":"<id>","why":"<why>"}], ids=["<ids>"])cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.MarketingAPI.PostMarketingBetaInvitesSent(context.Background()).Execute()
if err != nil {
return err
}use hanzo_client::apis::{configuration::Configuration, marketing_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = marketing_api::post_marketing_beta_invites_sent(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.MarketingApi;
ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));
var result = new MarketingApi(client).postMarketingBetaInvitesSent();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl -X POST https://api.hanzo.ai/v1/marketing/beta/invites/sent \
-H "Authorization: Bearer $HANZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"failed": [
{
"id": "<id>",
"why": "<why>"
}
],
"ids": [
"<ids>"
]
}'MCP reaches marketing through the marketing tool, which names its 82 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "list_marketing_audiences"
}
}
}'