skills/sales-tray/SKILL.md
Tray.ai platform help — enterprise iPaaS with 700+ connectors, Intelligent iPaaS, Enterprise Core governance, Merlin Agent Builder for AI agents, Tray Embedded for SaaS vendors, GraphQL API, Connector Development Kit. Use when Tray bill keeps climbing and task consumption is unpredictable, workflows fail with unclear errors and debugging feels opaque, evaluating Tray vs Workato vs MuleSoft vs Boomi, embedding integrations into a SaaS product via Tray Embedded, building Merlin AI agents, or configuring the GraphQL Embedded API and solution instances. Do NOT use for simple Zapier/Make automations (use /sales-integration), Workato-specific questions (use /sales-workato), or MuleSoft-specific questions (use /sales-mulesoft).
npx skillsauth add sales-skills/sales sales-trayInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
If references/learnings.md exists, read it first for accumulated platform knowledge.
Ask the user:
What do you need help with?
What edition are you on?
What's your role?
Skip-ahead rule: if the user's prompt already provides enough context, skip to Step 2. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask 1-2 critical clarifying questions.
| Problem domain | Route to |
|---|---|
| Connecting Tray to Salesforce/HubSpot/CRM | /sales-integration {question} |
| CRM comparison — Salesforce vs HubSpot vs others | /sales-crm-selection {question} |
| Salesforce-specific config (Flows, Apex, SOQL) | /sales-salesforce {question} |
| Simple no-code Zapier/Make automations | /sales-integration {question} |
| Workato-specific questions | /sales-workato {question} |
| MuleSoft-specific questions | /sales-mulesoft {question} |
| Boomi-specific questions | /sales-boomi {question} |
| SnapLogic-specific questions | /sales-snaplogic {question} |
| Celigo-specific questions | /sales-celigo {question} |
| Jitterbit-specific questions | /sales-jitterbit {question} |
| CRM data quality / deduplication | /sales-data-hygiene {question} |
| Workflow design and task optimization | Answer directly — read platform guide |
| Tray Embedded integration | Answer directly — read platform guide |
| Merlin Agent Builder | Answer directly — read platform guide |
| GraphQL API / solution instances | Answer directly — read API reference |
| Pricing and cost optimization | Answer directly — read platform guide |
When routing, provide the exact command.
Read references/platform-guide.md for the full platform reference — modules, pricing, connectors, Merlin agents, Tray Embedded, rate limits, governance.
Answer the user's question using only the relevant section. Don't dump the full reference.
If the question involves the GraphQL Embedded API (solution instances, user tokens, authentications), also read references/tray-api-reference.md for endpoints, authentication, and mutation details.
You no longer need the platform guide — focus on the user's specific situation.
Connector selection shortcut: Check Tray's connector library first (700+ pre-built). If no connector exists, use the HTTP Client connector for any REST API, or build a custom connector with the Connector Development Kit (falafel Node.js framework).
Cost optimization shortcut: Task-based billing — each workflow step counts. Audit high-volume workflows, remove redundant steps, use branching to skip unnecessary actions. Enterprise contracts typically start at $36K/year; model task consumption before signing and negotiate usage caps.
Debugging shortcut: Use the workflow Debug panel to step through execution and inspect input/output at each step. For the Embedded API, inspect GraphQL responses for errors array — Tray returns HTTP 200 with an errors field even on failure. Check connection auth status; expired auths silently fail.
Tray Embedded shortcut: Solution instances are per-end-user copies of a Solution. Use Master Token for org-wide operations (Get Users, create Solution Instance). Use User Token (created via createUserToken mutation) for per-end-user operations (Get Solution Instances, update config). All API calls must be server-side — CORS blocks browser calls.
If you discover a gotcha, workaround, or tip not covered in references/learnings.md, append it there.
Best-effort from research — review these, especially pricing details and feature availability which change frequently.
Get Users, admin mutations). User Token = single end user (used for Get Solution Instances, updateSolutionInstance). Some endpoints (e.g., Get Authentications) accept both. Use the wrong token and you'll get empty results or auth errors.tray.io/graphql. EU: eu1.tray.io/graphql. APAC: ap1.tray.io/graphql. Whitelabel OAuth redirects use {org}.integration-authentication.com/oauth2/token. Using the wrong region returns empty results without an obvious error.tray.io now 301-redirects to tray.ai, but API surface and developer docs still use tray.io domains. Both work in documentation links./sales-workato — Workato platform help — enterprise iPaaS, 1200+ connectors, recipe automation, MCP Gateway (top competitor)/sales-mulesoft — MuleSoft platform help — Anypoint Platform, API-led connectivity, 450+ connectors (direct competitor)/sales-boomi — Boomi platform help — enterprise iPaaS, 1000+ connectors, Data Hub MDM (direct competitor)/sales-celigo — Celigo platform help — mid-market iPaaS, 1000+ connectors, NetSuite depth (direct competitor)/sales-snaplogic — SnapLogic platform help — enterprise iPaaS, 1000+ Snaps, AgentCreator (direct competitor)/sales-jitterbit — Jitterbit platform help — Harmony iPaaS, 400+ connectors, API Manager (direct competitor)/sales-informatica — Informatica IDMC platform help — enterprise iPaaS + data management, CDI/CAI, MDM, Data Catalog (direct competitor, data-management-first)/sales-integration — Connecting sales tools — webhooks, Zapier/Make, native integrations, CRM sync/sales-salesforce — Salesforce platform help — common Tray integration target/sales-hubspot — HubSpot platform help — common Tray integration target/sales-data-hygiene — CRM data quality — deduplication, record matching, enrichment automation/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-doUser says: "Our Tray bill went from $40K to $65K in 9 months — how do we figure out what's consuming tasks?" Skill does: Reads platform guide for pricing section. Explains task-based billing — every workflow step counts, so high-volume workflows with many branches/steps are usually the culprits. Recommends: (1) review the workflow task consumption view in the Tray dashboard, (2) audit the top 10 highest-volume workflows for redundant or always-on steps, (3) add branching to skip unnecessary actions, (4) batch-process where the source API supports it, (5) renegotiate at contract renewal with usage data in hand. Notes that Tray doesn't hard-stop workflows at plan limits, so overages compound. Result: User has a concrete optimization plan and a starting audit list.
User says: "We're a SaaS company and want to embed Tray so our customers can connect their own tools. How does that work?"
Skill does: Reads platform guide for Tray Embedded section and API reference for mutation details. Explains: (1) build a Solution in Tray (reusable workflow template), (2) use the Configuration Wizard to let end users authenticate and configure, (3) on your backend, call createSolutionInstance mutation with a Master Token to create per-customer copies, (4) pass configValues and authValues to customize each instance, (5) use createUserToken to generate per-user tokens for subsequent operations. Flags CORS constraint (API is backend-only), and points to the official sample app (github.com/trayio/embedded-edition-sample-app) for reference architecture.
Result: User understands the embedded integration model, token types, and reference implementation.
User says: "We're a 6-person platform engineering team integrating 30 SaaS apps. Tray or Workato?" Skill does: Reads platform guide for competitor comparison. For a technical team integrating many apps: Tray fits better for teams comfortable with API-first, JavaScript-adjacent workflows and custom connector development via the CDK. Workato fits better for teams that want faster time-to-value with business-user-friendly recipes and broader connector coverage (1,200+ vs 700+). Pricing is similar enterprise range. Notes: Tray docs are thinner — budget more ramp time. If you plan to embed in a product, Tray Embedded is mature (launched 2020); Workato also has Embedded iPaaS with the Embed Partner Program. Result: User understands trade-offs and can pick based on team preference and roadmap.
Symptom: A workflow step completes without an error but downstream steps receive empty data.
Cause: Tray's GraphQL API returns HTTP 200 with an errors field when the server encounters a problem. Connection authentication may have expired without flagging, or the step's input mapping references a null/missing field.
Solution: Open the workflow Debug panel and inspect input/output at each step. Check Connections → verify the connection for the step shows "Authenticated" (not expired). Re-authenticate if needed. For API-level debugging, inspect the full GraphQL response — look for errors array even on HTTP 200 responses.
Symptom: Workflow actions fail intermittently when processing high volumes. Cause: Tray enforces 30 req/sec and 1800 req/min across Embedded/Connectivity APIs (except Call Connector). Bursts up to 50/sec are tolerated briefly. Hitting these limits returns rate-limit responses (specific HTTP code not published). Solution: Implement exponential backoff on rate-limit errors. For high-volume Call Connector usage, remember concurrency cap is 1000 active requests — request a CSM increase if needed. Reduce trigger frequency or batch source events. For Event delivery (Trigger API), Tray auto-implements exponential backoff when downstream endpoints rate-limit.
Symptom: You created a Solution Instance via the Embedded API but the end user doesn't see it in their Configuration Wizard.
Cause: Using the wrong token scope, or querying from the wrong regional endpoint. Get Solution Instances requires a User Token scoped to that specific end user. Master Token won't return a user's instances.
Solution: Generate a User Token via createUserToken mutation for that specific user_id, then query Get Solution Instances with that token. Confirm the regional base URL matches your org's region (US: tray.io, EU: eu1.tray.io, APAC: ap1.tray.io). Whitelabel deployments use {org}.integration-authentication.com for OAuth redirects — verify the end user's auth flow hits the correct redirect URL.
tools
Waitlister platform help — pre-launch waitlist platform with hosted landing pages, points-based viral referrals, built-in email broadcasts, REST API, and five HMAC-signed webhook events. Use when choosing Free (100 subscribers) vs Launch $15/mo (unlimited subs, referrals + broadcasts) vs Growth $49/mo (API, webhooks, Klaviyo/Mailchimp/Kit sync, fraud detection unlock here) vs Business $129/mo, building a webhook handler that verifies X-Webhook-Signature, webhooks auto-disabled after 10 consecutive failures, API signups bypassing referral fraud detection because client_ip/fingerprint weren't forwarded, granting bonus points or pulling top referrers via the API for reward fulfillment, broadcast send caps forcing an ESP handoff, automating without Zapier (Waitlister has none — webhooks/API only), or comparing Waitlister vs LaunchList/KickoffLabs/GetWaitlist/Prefinery. Do NOT use for list-growth strategy (use /sales-audience-growth) or LaunchList help (use /sales-launchlist).
development
LaunchList platform help — viral pre-launch waitlist platform with one-time lifetime pricing, gamified referrals (queue jumping, leaderboard, position inflation), embed widget + custom form POST endpoint, new_user/email_verify webhooks, Zapier, and spam protection. Use when choosing Free (100 submissions) vs Launch $29 (500) vs Grow $79 one-time (10K — webhooks, Zapier, team unlock here), wiring waitlist signups into Mailchimp/Kit/HubSpot or a CRM because LaunchList has no email broadcast system, needing programmatic access when there is no public REST API yet (form POST + webhook workaround), building a webhook handler with referred_by referral attribution, blocking disposable-email or bot signups on a viral waitlist, a custom signup form not submitting or not tracking referrals, or comparing LaunchList vs KickoffLabs/Viral Loops/Prefinery/GetWaitlist on one-time vs subscription pricing. Do NOT use for list-growth strategy (use /sales-audience-growth) or KickoffLabs help (use /sales-kickofflabs).
development
UpViral platform help — viral referral marketing and list-building platform (by Emarky) for viral sweepstakes, giveaway/reward campaigns, pre-launch waiting lists, and milestone referrals, with REST API (`app.upviral.com/api/v1/`, form-encoded `uvapikey` + `uvmethod`), Callback-URL webhooks, IP-based fraud detection, and 30+ ESP/CRM integrations. Use when campaigns aren't tracking referral points, deciding between Starter $79/mo (10K leads, NO API) vs Business $119/mo (API + webhooks) vs Premium $319/mo, the API erroring because you're on Starter where API/webhooks are gated, building a pipeline with `add_contact`/`get_leads`/`get_leads_points`, interpreting same-IP suspicious-referral flags, or picking UpViral over Viral Loops/Vyper/Gleam. Do NOT use for newsletter audience growth (use /sales-audience-growth), KickoffLabs help (use /sales-kickofflabs), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or multi-level Level 1/2/3 tracking (use /sales-referralhero).
tools
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with REST API, webhooks, Zapier, native ESP connectors, multi-level referral tracking (Level 1/2/3), coupon groups, anti-fraud, and a 5,000 calls/hour limit. Use when referrals aren't tracking, deciding between Free (no API) vs PRO $199/mo (API + webhooks) vs PREMIUM $399/mo (ReCaptcha + SMS Verification), auth failing with `no_token` or `Bearer` vs `X-API-Key`, Level 2/3 counts off from calling `level_2_all_referrals` not `level_2_referrals`, bulk 429s from not chunking the 500-transaction `add_bulk_transactions` limit, coupon endpoints 404 without a coupon group, reward fulfillment (`promote` then `unlock_promoted_reward`) failing, or comparing to SparkLoop/ReferralKit/GrowSurf. Do NOT use for newsletter audience growth (use /sales-audience-growth), merge-tag referrals (use /sales-referralkit), SparkLoop recommendations (use /sales-sparkloop), or affiliate strategy across tools (use /sales-affiliate-program).