diff --git a/.claude/commands/syncro.md b/.claude/commands/syncro.md index 8bc44eb..2c8cb8e 100644 --- a/.claude/commands/syncro.md +++ b/.claude/commands/syncro.md @@ -307,7 +307,7 @@ Collect in one pass (do not ask field by field): | 6 | **Due Date** | ISO date | | 7 | **Assigned Tech** | Who owns the ticket. Defaults to API key owner if not specified (mike → 1735, howard → 1750). MUST always be included in the POST payload — never omit. | | 8 | **Contact** | Omit unless the ticket is opened by or specifically regarding a named contact. When omitted, Syncro assigns the customer's primary contact automatically. Only look up and set `contact_id` when the user names a specific person. | -| 9 | **Appointment Type** | From table above; omit section if no appointment needed | +| 9 | **Appointment Type** | Omit unless the user specifies one of: Remote, Onsite, In Shop, Phone Call, Reminder. If omitting, include the delivery type in the ticket subject line so it's visible on the calendar. | | 10 | **Location** | Free text; usually blank unless onsite at non-primary address | | 11 | **Start Time** | ISO8601 datetime; omit if no scheduled appointment | | 12 | **End Time** | Default: start + 90 minutes | @@ -403,14 +403,14 @@ curl -s -X POST "${BASE}/appointments?api_key=${API_KEY}" \ { "ticket_id": N, "customer_id": N, - "appointment_type_id": N, "start_at": "ISO8601", - "end_at": "ISO8601", - "location": "" + "end_at": "ISO8601" } JSON ``` +Omit `appointment_type_id` unless the user specifies Remote (59289), Onsite (4322), In Shop (4321), Phone Call (4323), or Reminder (193053). When omitting the type, ensure the ticket subject includes the delivery method so it's identifiable on the calendar. Omit `location` unless a non-standard location is specified. + Note: "Do Not Invite" (suppress calendar invite email) is not API-controllable. Tell the user to toggle it in the Syncro GUI if needed. **Payload handoff: prefer heredoc with `--data-binary @-` and `<<'JSON'` quoting** — never use `/tmp/.json` for piping payloads from the Write tool to curl. On Windows, the Write tool resolves `/tmp/foo.json` to `C:\tmp\foo.json` while Git Bash resolves it to `%LOCALAPPDATA%\Temp\foo.json` — different real directories, so curl reads a different (or stale) file than Write created. Heredoc avoids the file handoff entirely, and the `'JSON'` quoting prevents bash from expanding `$` characters inside the payload (passwords, regex, jq queries, etc.). See `.claude/memory/feedback_tmp_path_windows.md` for the full failure mode.