Trade Plan Board

Trade plans grid, pushed by webhook

0

Connections

Trade Plan Board shows a clean grid of trading plans on your TRMNL: ticker, status, reference price, entry, stop, targets with optional R multiples, and a short invalidation line.

The full screen holds up to six plans in a 3-by-2 grid, or 2-by-3 in portrait. Half horizontal shows 2 plans on TRMNL OG and 3 on TRMNL X. Half vertical shows up to 2 stacked. Quadrant shows a single plan. The title bar reads Trade Plans. The preview on this page uses invented demo tickers and round numbers only, never live positions.

This is a webhook recipe. After you install it, copy your unique URL from the Webhook URL field on this plugin's settings page (a click-to-copy field) and POST JSON to it. Put every field inside a merge_variables object. A push replaces the stored data. Each installer pushes their own data; the author's feed is never shared. Leave "Share pushed data with installs" off.

Using Grok Bot? Ask it for a routine that POSTs your data to the Webhook URL above on a schedule — no code needed.

Payload schema. Top-level keys:
• plans (required) — an array of plan objects. The full layout shows the first 6; mashup sizes show fewer.
• grid_cols and grid_rows (optional) — kept for compatibility. The markup chooses columns from the layout and orientation.
• empty_slots (optional) — extra empty cells on the full layout only, for a fixed 3-by-2 when you have fewer than 6 plans.
• note (optional) — title-bar instance text, for example Demo data.

Each item in plans:
• ticker — short symbol, for example ACME
• status_short — short status, for example WAIT, ARMED, or OPEN
• ref_price — shown with a $ prefix
• flag — optional extra label; omit or leave blank to hide it
• entry_zone and stop — shown with a $ prefix
• targets — an array of objects with label (for example T1), price, and optional r (R multiple). The full layout shows up to 3; half and quadrant show up to 2
• invalidation_short — one or two short lines under the levels
Longer journal fields may be included; the markup does not display them.

Example curl. Replace the address below with the one from your Webhook URL field:
curl "trmnl.com/api/custom_plugins/YOUR_PLUGIN_UUID" -H "Content-Type: application/json" -X POST -d '{"merge_variables":{"grid_cols":3,"grid_rows":2,"empty_slots":0,"note":"Demo data","plans":[{"ticker":"ACME","status_short":"WAIT","ref_price":"100","flag":"watch","entry_zone":"98","stop":"90","targets":[{"label":"T1","price":"110","r":"1.5"},{"label":"T2","price":"120","r":"2.5"}],"invalidation_short":"Invalid if close < 90"}]}}'

Limits. The stored payload may be 5 KB, or 10 KB on TRMNL+, measured on the stored merge variables. You may push 12 times an hour, or 30 on TRMNL+. Faster requests return 429. A push renders a new screen if the plugin has not rendered in the last 15 minutes; otherwise it waits for the next scheduled refresh.

Questions or improvements: hibimasu@mail.grokbot.com

Available settings

Webhook URL