canonical: https://jentic.com/apis/ongoody.com/goody

# Ongoody Goody API

Goody is a corporate gifting platform that lets businesses send physical and digital gifts to customers, employees, and prospects without collecting addresses up front. The Goody API exposes the full lifecycle of a corporate gift batch: pick products, create the batch, send to recipients, and track each individual order to delivery. It also provides webhook subscriptions for status changes and a sandbox base URL for end-to-end integration testing. The API is designed for HR, marketing, and sales-ops teams who want gifting embedded in their own tools.

## For AI agents

Send a corporate gift to one or many recipients, price a batch before sending, and track each order through to delivery using bearer-token authentication.

## Scope

Does not handle physical inventory, custom merchandise sourcing, or international fulfilment outside the supported list - use for sending gifts from the Goody catalogue only.

## Capabilities

- Browse the Goody product catalogue and inspect a single product's details
- Create an order batch with one or many recipients and a chosen product or card
- Price an order batch before committing so the agent can confirm budget
- Cancel an order or extend its expiration window
- List recipients on an order batch and the orders that resulted from it
- Subscribe to webhooks for order status changes and delivery events
- Read the workspaces and payment methods available to the calling account

## Use cases

### Sales-driven prospect gifting

Sales teams send a small gift after a discovery call or to re-engage a stalled deal. The Goody API lets the CRM workflow create an order batch with the prospect's email, pick a product within budget, and send without ever asking for a shipping address. The recipient picks delivery details themselves, which removes the data-entry friction that kills gifting volume. Sales-ops teams typically wire this up in a few days.

Example prompt: POST to /v1/order_batches with one recipient (name and email), the chosen product_id, and a personal message, then poll /v1/order_batches/{id} until the order is sent.

### Employee recognition and onboarding gifts

HR and people-ops teams send welcome gifts on day one, work anniversaries, and milestone moments. The API supports bulk batches with per-recipient personalisation, and the price endpoint lets HR confirm spend against a programme budget before sending. Webhooks let the HRIS know when each gift is accepted, so people teams can track engagement.

Example prompt: POST a price request to /v1/order_batches/price for 25 new-hire gifts, confirm the total, then POST /v1/order_batches with all 25 recipients in one call.

### Marketing campaign gifting at scale

Marketing teams run gifting campaigns to event registrants, webinar attendees, or top-of-funnel accounts. The order batch model is built for this: one batch covers many recipients, the catalogue lets the team pick a brand-aligned product, and the recipients endpoint reports who claimed what. Most campaigns are integrated through Zapier-style automations or directly from a marketing automation tool.

Example prompt: GET /v1/products to find a sub-$50 product, POST a batch to /v1/order_batches with the event attendee list, and subscribe to webhooks at /v1/webhooks for delivery events.

### AI agent gifting concierge through Jentic

An AI assistant that supports a sales or HR rep can send a gift on the user's behalf without ever holding the Goody bearer token. The agent searches Jentic for 'send a corporate gift', loads the create order batch operation, and submits the recipient and product. Jentic injects the credential at execution time and returns the resulting order id so the agent can follow up with a status check.

Example prompt: Search Jentic for 'send a goody gift', load the POST /v1/order_batches operation, and execute it with one recipient and a chosen product_id.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /v1/order_batches | Create and send a gift batch |
| POST | /v1/order_batches/price | Price a gift batch before sending |
| GET | /v1/order_batches/{id} | Read a batch and its status |
| GET | /v1/order_batches/{id}/orders | List the per-recipient orders in a batch |
| POST | /v1/orders/{id}/cancel | Cancel an unclaimed order |
| GET | /v1/products | Browse the Goody product catalogue |
| POST | /v1/webhooks | Subscribe to order status events |

## Key resources

- **Order Batches** — The unit of sending: one batch with one product and many recipients
- **Orders** — Per-recipient records that can be cancelled or have their expiration extended
- **Products** — The Goody gift catalogue, browsable by id
- **Cards** — Greeting card designs that accompany the gift
- **Webhooks** — Subscriptions to order status events
- **Workspaces** — Accounts and team grouping for the calling user
- **Payment Methods** — Cards or bank accounts available for gift charges

## Why Jentic

- **Setup:** Wiring the Goody API by hand means managing its workspace bearer token, which can charge the workspace payment method, and building each order-batch, product, and webhook call against api.ongoody.com yourself. Through Jentic you install once, import the Goody API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Goody exposes order batches and orders by id in the URL path, but the sensitive control is which operations you enable, so you limit the agent to the operations it needs, such as pricing a batch or reading products. Placing an order batch or cancelling an order are excluded unless you add those operations to the allowed set.
- **Credential handling:** Your Goody bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a corporate gift' or 'price a gift batch', and Jentic returns the matching Goody operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Stripe API** — Charge the gifting team's card or invoice the company that funds the Goody campaign
- **HubSpot CRM Contacts** — Source of recipient names and emails that flow into Goody order batches
- **SendGrid Mail** — Send a personalised email instead of a physical gift for low-cost outreach

## FAQ

### What authentication does the Goody API use?

The Goody API uses HTTP bearer authentication. Pass your API key as 'Authorization: Bearer <key>' on every request. Through Jentic, the bearer token is held in the vault and injected at execution time, so an agent never sees the raw secret.

### Can I send a gift without knowing the recipient's address?

Yes. That is the core idea of Goody. POST a batch to /v1/order_batches with the recipient's name and email, plus a product_id. Goody emails the recipient, who chooses their own address for delivery, so the sender never needs to handle PII.

### How do I price a gift batch before sending?

POST the same batch payload to /v1/order_batches/price instead of /v1/order_batches. Goody returns the line items, taxes, and total so the integration can confirm budget and require approval before the real send.

### What are the rate limits for the Goody API?

Goody does not publish a single global rate limit in its OpenAPI spec. In practice it returns 429 with a Retry-After header when limits are hit, and bulk sends should be issued as a single order batch rather than many one-recipient batches to stay well under any limit.

### How do I send gifts through Jentic?

Install the SDK with 'pip install jentic', search for the operation with the query 'send a goody gift', then load the POST /v1/order_batches operation, and execute it with the recipient and product_id. Jentic handles the bearer token and surfaces the resulting order_batch id back to the agent.

### Can I cancel a gift after sending?

Yes, while the recipient has not yet claimed it. POST to /v1/orders/{id}/cancel to cancel a single order, or POST to /v1/orders/{id}/update_expiration to extend or shorten the time the recipient has to claim before the gift expires.

### Can I limit what my agent is allowed to do with the Goody API?

Yes. Because Jentic One is self-hosted, your own rules decide which Goody operations and credentials the agent may use, so you enable only the operations it needs, such as pricing a batch with /v1/order_batches/price or browsing the catalogue with /v1/products. Sensitive actions like placing an order batch with /v1/order_batches or cancelling an order with /v1/orders/{id}/cancel stay excluded unless you add them to the allowed set. Your Goody bearer token is stored once by your own instance and injected at execution time, so the agent can only call the operations you have permitted.
