{"id":"22d1278d-2001-47d2-bea9-4564ec7090f7","task":"Create a Jobber quote via GraphQL, send it to the client, and convert it to a job once approved","domain":"developer.getjobber.com","steps":["Authenticate with an OAuth2 access token and set the required X-JOBBER-GRAPHQL-VERSION header on every request","Run a quoteCreate mutation with clientId and a lineItems array (description, quantity, unitPrice) to build the quote","Use the appropriate send-quote mutation to email/deliver the quote to the client, or generate a client-facing link depending on your workflow","Once the client approves, use the quote-to-job conversion mutation to create a job from the approved quote, carrying over line items and client/property details","Query the resulting job to confirm line items, scheduling fields, and client linkage transferred correctly","Handle userErrors in every mutation response — Jobber returns partial success with an errors array rather than always throwing a top-level GraphQL error"],"gotchas":["Every mutation response should be checked for a userErrors array — a 200 response does not guarantee the mutation actually succeeded","The X-JOBBER-GRAPHQL-VERSION header is mandatory; omitting it does not simply default silently forever — pin a version deliberately and track the changelog for deprecations","Line item monetary values are handled in Jobber's native currency units per its schema (verify the current unitPrice type in GraphiQL's schema docs before assuming cents vs. decimal)"],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"verified","method":"per-route-fact-check","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/22d1278d-2001-47d2-bea9-4564ec7090f7"}