Integrations v1.0.0 MIT
Bento Email Operations
Use when operating the Bento email platform. Work through its API, MCP server or dashboard. Covers keys and site scoping, which surface to use, safe-send rules and common pitfalls.
Features
- Account model: teams, sites, people, events, fields, tags, flows, sequences and broadcasts.
- Surface chooser: which job belongs to the API, the MCP server, the dashboard or a person.
- Authentication rules: the publishable and secret key pair, the site identifier, and the user-agent header.
- Read-before-write checklist for any change.
- Send-safety rules for broadcasts, transactional mail and unsubscribes.
- Pitfall list with the reason behind each rule.
Benefits
- A change lands on the right site, and it never reaches another brand's audience.
- Drafts stay drafts until a person reviews them.
- Unsubscribed people stay unsubscribed.
- Failures are read from the right signal, not from a queue count.
Install
From the tap (or GitHub path)
hermes skills install shagghiesuperstar/hermes-skills/skills/bento --category integrations
Direct URL
hermes skills install https://raw.githubusercontent.com/shagghiesuperstar/hermes-skills/main/skills/bento/SKILL.md --category integrations
Get the skill
Related skills
- Integrationsn8n Cloud IntegrationUse when connecting an agent to n8n Cloud. The connection uses the instance-level MCP server. Covers OAuth, tool whitelists, the fixture-proof gate and human approval for publishing or executing.
- IntegrationsMCP Client SetupUse when connecting an MCP server to a Hermes profile. The profile uses the server as a client. Covers pre-flight probes, the config block, the session boundary and smoke tests.
Related repos
- GitHub repohermes-skillsThe public collection this skill belongs to. MIT licensed.
- GitHub repoNousResearch/hermes-agentHermes Agent by Nous Research, the upstream runtime these skills are written for.
- GitHub reposhagghiesuperstar/hermes-plugin-bentoBento (bentonow.com) email marketing plugin for Hermes Agent: dry-run, confirm-token and human-approval gates on every send. Stdlib only.
The skill file
Bento Email Operations
Overview
Bento is an email and automation platform. Work in it goes through three surfaces: a REST API, an MCP server for agents, and the dashboard. Each surface can do different things, and some actions, such as sending a broadcast or editing a live automation, are safe only when a person reviews them. Most mistakes come from the wrong site, a missing identifier, or a send that bypasses a recipient's unsubscribe state. This skill covers the account model, which surface to use, the send-safety rules, and the pitfalls that cause the most damage.
Check every endpoint and limit in this skill against Bento's current public API documentation before you rely on it.
When to Use
- You need to look up a person, a tag, a field, a sequence or a workflow's statistics in Bento.
- You need to track an event that starts a workflow, or import contacts.
- You need to create an email draft, or change a sequence or template.
- A send failed or was accepted, and you need to know whether the recipient got it.
- You are connecting a new brand or a new site to an automation tool.
Features
- Account model: teams, sites, people, events, fields, tags, flows, sequences and broadcasts.
- Surface chooser: which job belongs to the API, the MCP server, the dashboard or a person.
- Authentication rules: the publishable and secret key pair, the site identifier, and the user-agent header.
- Read-before-write checklist for any change.
- Send-safety rules for broadcasts, transactional mail and unsubscribes.
- Pitfall list with the reason behind each rule.
Benefits
- A change lands on the right site, and it never reaches another brand's audience.
- Drafts stay drafts until a person reviews them.
- Unsubscribed people stay unsubscribed.
- Failures are read from the right signal, not from a queue count.
Procedure
- Confirm the site before any write. Map the brand to its site identifier out loud, and check the keys against the API settings in the dashboard. Then make one read-only request from Bento's API reference, with the site identifier as the
site_uuidquery parameter. A 200 means the keys and the site identifier are right. A 401 usually means the wrong identifier, not wrong keys. The dashboard's site slug is not the API identifier. The API identifier is the 32-character value shown under the API key settings. Pick the surface for the job:
Job Use Look up a person, list tags, fields, sequences, workflows, broadcasts, site or workflow statistics MCP read tools Create a broadcast draft, add or patch a sequence email, patch a template MCP tools, then a person reviews and sends in the dashboard Track one event that should start a workflow REST events endpoint Sync attributes, tags or fields in bulk REST subscribers endpoint, which does not start workflows Send order receipts or account mail REST emails endpoint, a workflow step, or the SMTP relay Create or edit workflows, segments, forms, sender identities, DNS, billing Dashboard, or the vendor's assistant if available - Keep one credential set per brand and per site. A key pair can reach every site its owner belongs to, so select the site with the site identifier on each request. Use a service owner for automation, so that a departing team member does not break the keys.
- Preview before any send. Check the sender identity, the audience (explicit tags or a segment), the hourly batch size, the preview text, and a human sign-off. Warm an audience with engaged people first, then widen it in steps.
- Verify after a change. Read the object back, and report exactly what changed and where.
Send-safety rules
- A draft is a draft. A broadcast created through the MCP tools is a draft. Report it as "draft created, needs review in the dashboard", and never say it was sent.
- Every marketing body carries the unsubscribe link. Put the unsubscribe placeholder in the visible HTML of each broadcast, sequence email, workflow email and non-transactional send, and include the postal address the law requires.
- The transactional flag is for true order and account mail only. It bypasses unsubscribe state. Never use it for promotions, win-backs or newsletters. The default is off.
- Editing a template or sequence email changes live automations immediately. Diff the change, keep the HTML in version control, and never test on a live workflow with real subscribers.
- Test on a staging site with seed addresses. Tag test people so that they are easy to find, and do not fire test events for real customers.
- Do not re-add people who unsubscribed. Do not use a subscribe command on them, do not import unsubscribers as active, and do not let a sync from another system bring them back. Prefer unsubscribing to deleting. Delete only after you pause the upstream syncs and save the consent state.
- Never send to purchased, scraped or appended lists. This also violates the platform's acceptable-use terms.
- Respect the rate limits in the documentation. Retry only rate-limit and server errors, with increasing waits. Do not retry an email send or a broadcast creation without an idempotency check, or the recipient gets duplicates.
- Watch complaints and bounces. Slow down when they rise, and stop when they cross the thresholds your provider and your policy set.
Pitfalls
- Always send a real user-agent. Requests without one can be blocked by the edge network with an HTML error page.
- Always send the site identifier, from the same site as the keys. A mismatch looks like a bad key.
- Use the events endpoint for anything that must start a workflow, and the subscribers endpoint for syncs. Imports and commands do not start workflows.
- Send purchases with a real order identifier as the unique key. Without it, retries double-count revenue, and the client may generate a random key that defeats deduplication.
- Keep event fields flat. Nested values belong in the details object, or validation fails.
- Pass tags as comma-separated strings where the endpoint expects them. An array can fail validation.
- Definition endpoints create definitions only. Creating a tag or a field does not tag or set a value for anyone.
- Asynchronous commands return a count, not a result. Do not read back right after a command. Check later.
- Imports can take minutes to appear. Do not retry in a loop. Check the person afterwards.
- The sender must be a verified identity. A send from an unverified sender fails, which is the most common send error.
- A send response is a queue acceptance, not delivery. Suppressed, unsubscribed and bounced recipients are dropped quietly. Use the delivery view for proof.
- Keep transactional mail plain. Emojis, link shorteners, user-controlled names and attachments trigger throttling.
- List drafts explicitly. A broadcast list can default to sent items, so a draft will not appear unless you ask.
- Tags, fields and event names are case-sensitive and free-form. One typo creates a new tag. Use one naming convention. A text match that means "contains" can match the wrong event, so use exact matches.
- Do not decide on open rates. Privacy features in mail clients distort opens. Use clicks, purchases and conversions.
Verification
- A read request with the site identifier and the user-agent returns 200 for each site in use.
- A test event or send reaches only the seed addresses on the staging site.
- A broadcast draft appears in the draft list, and nothing in the send history shows it as sent.
- Each marketing body contains the unsubscribe placeholder, checked in the rendered HTML.
- A purchase event carries the order identifier, and a second identical event does not change revenue totals.