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

Addresshttps://api.hanzo.ai/v1/marketing/beta/invites/sent
MethodPOST
Operationpost_marketing_beta_invites_sent
AuthAuthorization: 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).

FieldInTypeRequiredDescription
failedbodymarketing.BetaInviteFailure[]—Failed are the invites that did not go out.
failed[].idbodystring—ID is the invite's id.
failed[].whybodystring—Why is the mailbox's reason, at most 200 characters.
idsbodystring[]—IDs are the invites sent.

Response

StatusBodyMeaning
200marketing.BetaInviteRowsok
defaultproblem-detailsrefused

200 body — 5 fields.

FieldInTypeAlwaysDescription
invitesbodymarketing.BetaInviteRow[]—Invites are those invites as they stand.
invites[].atbodystring—At is when it last moved, RFC 3339 in UTC.
invites[].idbodystring—ID is the invite's id.
invites[].statusbodystring—Status is reserved, sent, failed or joined.
invites[].tobodystring—To is the invited address.

Failure carries the platform error shape — see Errors.

Examples

hanzo marketing beta invites sent
import { 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"
         }
       }
     }'

Marketing API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.