With our community of partners, you can get expert advice and training so you can be up and running in no time!
View setup partnersWith our community of partners, you can get expert advice and training so you can be up and running in no time!
View setup partnersGet the Guide on Moving from spreadsheets to software.
Want to join us? Become a partner.
No credit card required. No contracts to cancel. No setup fees. No hidden costs. No downloads.
Method | Description |
---|---|
GET current | Returns a list of current jobs |
GET get/[job number] | Detailed information for a specific job |
PUT state | Update the state of a specific job |
GET list | Return a list of all jobs |
GET staff/[uuid] | Return a list of all current jobs assigned to a staff member |
GET client/[uuid] | Return a list of all jobs assigned for a specific client |
GET tasks | Return a list of jobs and their tasks matching the specified criteria |
POST add | Add a job |
PUT update | Update a job |
POST task | Add a task to a job |
PUT task | Update a task on a job |
PUT task/[uuid]/complete | Complete a task on a job |
PUT task/[uuid]/reopen | Re-open a task on a job |
PUT reordertasks | Reorder the tasks on a job |
POST note | Add a note to a job |
GET documents/[job number] | Return a list of documents for a job |
POST document | Add a document to a job |
GET costs/[job number] | Return a list of costs for a job |
POST cost | Add a cost to a job |
PUT cost | Update a cost on a job |
PUT assign | Assign staff to a job |
POST delete | Delete a job |
POST applytemplate | Apply an additional template to a job |
POST createquote/[job number] | Create a quote based on the job |
POST createestimate/[job number] | Create an estimate based on the job |
Returns a list of current jobs
Parameter | Required? | Description |
---|---|---|
detailed=true | Optional | Return detailed information on job. See GET get/[job number] method for example of detailed job response. |
modifiedsinceutc= yyyy-MM-ddT00:00:00 |
Optional | Only return jobs modified after the given date or if not modified, created after the given date. |
page=1 | Optional | The current page. Defaults to 1 if the value is smaller than 1 or if the the parameter is not present but pagesize parameter is present |
pagesize=10 | Optional | Number of records per page. Defaults to 1000 if page parameter is present but pagesize is not provided |
https://api.xero.com/workflowmax/3.0/job.api/current
<Response api-method="Current">
<Status>OK</Status>
<!-- Only appears if page size or page parameters are passed-->
<Page>1</Page>
<PageSize>2</PageSize>
<TotalRecords>36</TotalRecords>
<!-- -->
<Jobs>
<Job>
<ID>J000159</ID>
<UUID>0d3458b8-6fde-4389-8dbb-0a85804466ad</UUID>
<Name>Brochure Design</Name>
<Description>Job Description</Description>
<Client>
<UUID>4f2161d6-21af-4f47-9845-2436f3efd5b0</UUID>
<Name>John Smith</Name>
</Client>
<ApprovedQuoteID>Q000005</ApprovedQuoteID>
<ApprovedQuoteUUID>90dd07e5-bb36-423d-ab76-5a5ead0bb852</ApprovedQuoteUUID>
<ClientOrderNumber>ABCD1234</ClientOrderNumber>
<State>In Progress</State>
<Type>Bookkeeping</Type>
<StartDate>2021-05-11T00:00:00</StartDate>
<DueDate>2022-05-11T00:00:00</DueDate>
<DateCreatedUtc>2021-05-11T02:09:53</DateCreatedUtc>
<DateModifiedUtc>2021-05-11T02:09:53</DateModifiedUtc>
<Assigned>
<Staff>
<UUID>52ed22ca-4600-437c-86f6-465dda434af2</UUID>
<Name>John Smith</Name>
</Staff>
</Assigned>
<WebUrl>http://app.my.workflowmax.web/job/jobview.aspx?id=116912</WebUrl>
</Job>
<Job>
<ID>J000002</ID>
<UUID>496b0227-42f2-4975-9f73-f011781ada7f</UUID>
<Name>Custom Development</Name>
<Description>Job Description</Description>
<Client>
<UUID>4f2161d6-21af-4f47-9845-2436f3efd5b0</UUID>
<Name>John Smith</Name>
</Client>
<ApprovedQuoteID>Q000006</ApprovedQuoteID>
<ApprovedQuoteUUID>90dd07e5-bb36-423d-ab76-5a5ead0bb852</ApprovedQuoteUUID>
<ClientOrderNumber>ABCD1234</ClientOrderNumber>
<State>Planned</State>
<Type>Internal</Type>
<StartDate>2021-05-11T00:00:00</StartDate>
<DueDate>2022-05-11T00:00:00</DueDate>
<DateCreatedUtc>2021-05-11T02:09:53</DateCreatedUtc>
<DateModifiedUtc>2021-05-11T02:09:53</DateModifiedUtc>
<Assigned>
<Staff>
<UUID>52ed22ca-4600-437c-86f6-465dda434af2</UUID>
<Name>Behzad Farokhi</Name>
</Staff>
</Assigned>
<WebUrl>http://app.my.workflowmax.web/job/jobview.aspx?id=116913</WebUrl>
</Job>
</Jobs>
</Response>
Detailed information for a specific job
https://api.xero.com/workflowmax/3.0/job.api/get/J00309
<Response api-method="Get">
<Status>OK</Status>
<Job>
<ID>J000001</ID>
<UUID>355d0389-19cb-42ef-9b23-2960ca30c537</UUID>
<Name>Brochure Design</Name>
<Description>Job Description</Description>
<ApprovedQuoteID>Q000005</ApprovedQuoteID>
<ApprovedQuoteUUID>90dd07e5-bb36-423d-ab76-5a5ead0bb852</ApprovedQuoteUUID>
<ClientOrderNumber>ABCD1234</ClientOrderNumber>
<State>In Progress</State>
<Type>Bookkeeping</Type>
<StartDate>2008-08-29T00:00:00</StartDate>
<DueDate>2008-09-29T00:00:00</DueDate>
<CompletedDate>2008-09-29T00:00:00</CompletedDate>
<DateCreatedUtc>2008-05-11T02:09:53</DateCreatedUtc>
<DateModifiedUtc>2008-05-11T02:09:53</DateModifiedUtc>
<Client>
<UUID>691e1ea7-dca2-4d1e-a6a8-9f2dac448f8a</UUID>
<Name>The Health Company</Name>
</Client>
<Contact>
<UUID>699b0eb6-c54d-4afc-ae3d-1da6d91ba47d</UUID>
<Name>Shelley Brio</Name>
</Contact>
<Manager>
<UUID>273817c6-18c3-407a-9d00-5e8aba80fbd3</UUID>
<Name>John Smith</Name>
</Manager>
<Partner>
<UUID>bcbf14e9-b150-4e5d-933f-f99b0d5528d2</UUID>
<Name>Jack Brown</Name>
</Partner>
<Assigned>
<Staff>
<UUID>52ed22ca-4600-437c-86f6-465dda434af2</UUID>
<Name>John Smith</Name>
</Staff>
</Assigned>
<Tasks>
<Task>
<UUID>e805ed72-29d7-4897-8765-875f3461bfae</UUID>
<TaskUUID>3c1fc167-ab62-4db7-be73-01646abc461d</TaskUUID>
<Name>Creative Direction</Name>
<Description />
<EstimatedMinutes>180</EstimatedMinutes>
<ActualMinutes>100</ActualMinutes>
<Completed>false</Completed>
<Billable>true</Billable>
<Folder />
<!-- if the task has been scheduled the following will be present -->
<StartDate>2008-08-29T00:00:00</StartDate>
<DueDate>2008-09-29T00:00:00</DueDate>
<Assigned>
<Staff>
<UUID>44ce9043-8a05-45e6-9a6b-93a7458d5734</UUID>
<Name>Jo Blogs</Name>
<AllocatedMinutes>180</AllocatedMinutes>
</Staff>
</Assigned>
</Task>
<Task>
<UUID>0126a33d6-543c-4b6a-8b87-8d25c9a1b30c</UUID>
<TaskUUID>1674f180-41b1-4e7f-b932-a9a95c7cb217</TaskUUID>
<Name>Design & Layout</Name>
<Description />
<EstimatedMinutes>120</EstimatedMinutes>
<ActualMinutes>180</ActualMinutes>
<Completed>false</Completed>
<Billable>true</Billable>
<Folder />
</Task>
</Tasks>
<Milestones>
<Milestone>
<UUID>666ce060-5782-4dd0-b6f6-e0557d036bfa</UUID>
<Date>2008-09-24T00:00:00</Date>
<Description>do something by then</Description>
<Completed>false</Completed>
<Folder />
</Milestone>
</Milestones>
<Notes>
<Note>
<UUID>56831906-5c3e-4b89-ab4b-c3acc4690ab4</UUID>
<Title>note title</Title>
<Text>subject of the note</Text>
<Folder />
<Date>2008-09-12T13:00:00</Date>
<CreatedBy>Jo Bloggs</CreatedBy>
<Comments>
<Comment>
<UUID>7f29618e-e191-4bfd-966a-d418d489f623</UUID>
<Text>example comment</Text>
<Date>2008-09-12T14:00:00</Date>
<CreatedBy>John Smith</CreatedBy>
</Comment>
</Comments>
</Note>
</Notes>
<WebUrl>http://app.my.workflowmax.web/job/jobview.aspx?id=116912</WebUrl>
</Job>
</Response>
Update the state of a specific job
https://api.xero.com/workflowmax/3.0/job.api/state
<Job>
<ID>J000309</ID>
<!-- The value of the state element is that in the Interface Code field for each Job State as defined in Admin -->
<State>CONFIRMED</State>
</Job>
Return a list of all jobs
Parameter | Required? | Description |
---|---|---|
detailed=true | Optional | Return detailed information on job. See GET get/[job number] method, for example detailed job response. |
from=YYYYMMDD |
Required | Return jobs created on or after this date. |
to=YYYYMMDD | Required | Return jobs created on or before this date. |
modifiedsinceutc= yyyy-MM-ddT00:00:00 |
Optional |
Only return jobs modified after the given date or if not modified, created after the given date. |
page=1 |
Optional |
The current page. Defaults to 1 if the value is smaller than 1 or if the the parameter is not present but pagesize parameter is present |
pagesize=10 |
Optional |
Number of records per page. Defaults to 1000 if page parameter is present but pagesize is not provided |
https://api.xero.com/workflowmax/3.0/job.api/list?from=19900101&to=20221230
Return a list of all current jobs assigned to a staff member
Parameter | Required? | Description |
---|---|---|
modifiedsinceutc= yyyy-MM-ddT00:00:00 |
Optional | Only return jobs modified after the given date or if not modified, created after the given date. |
page=1 |
Optional | The current page. Defaults to 1 if the value is smaller than 1 or if the the parameter is not present but pagesize parameter is present |
pagesize=10 | Optional |
Number of records per page. Defaults to 1000 if page parameter is present but pagesize is not provided |
https://api.xero.com/workflowmax/3.0/job.api/staff/ffea99f9-fa70-4d49-9898-2159f4a34e40
Return a list of all jobs assigned for a specific client
Parameter | Required? | Description |
---|---|---|
modifiedsinceutc= yyyy-MM-ddT00:00:00 |
Optional | Only return jobs modified after the given date or if not modified, created after the given date. |
page=1 |
Optional | The current page. Defaults to 1 if the value is smaller than 1 or if the the parameter is not present but pagesize parameter is present |
pagesize=10 | Optional |
Number of records per page. Defaults to 1000 if page parameter is present but pagesize is not provided |
https://api.xero.com/workflowmax/3.0/job.api/client/dbee9acd-1afd-4409-8433-c337513c486e
Return a list of jobs and their tasks matching the specified criteria
Parameter | Required? | Description |
---|---|---|
complete=true | false | Optional | Return jobs containing completed or uncompleted tasks only |
due=YYYYMMDD | Optional | Return jobs with tasks due on or before this date. |
start=YYYYMMDD | Optional | Return jobs with tasks starting on of after this date. |
https://api.xero.com/workflowmax/3.0/job.api/tasks?due=20090801&complete=false
Add a job
https://api.xero.com/workflowmax/3.0/job.api/add
<Job>
<Name>Brochure Design</Name>
<Description>Detailed description of the job</Description>
<ClientUUID>5f3b0d25-5469-4d76-92f4-be76144899b7</ClientUUID>
<ContactUUID>c034f048-8d30-4197-9557-7a601c99def0</ContactUUID> <!-- optional -->
<StartDate>20091023</StartDate>
<DueDate>20091028</DueDate>
<ClientNumber>client order number</ClientNumber> <!-- optional -->
<!-- Optional - Use to assign a custom ID to the job. If not specified, the next value from the job number sequence will be used. -->
<ID>ABC123</ID>
<!-- ID of Job Template to apply to job. Applying a template allows you to default the job milestones, tasks and costs -->
<TemplateUUID>7b1d935c-5cd6-4186-ab69-3a25fd3f94ad</TemplateUUID> <!-- optional -->
<!-- ID of Job Category to assign to job -->
<CategoryUUID /> <!-- optional -->
<Budget>55.00</Budget> <!-- optional -->
</Job>
The response will include the detailed information of the job as per the GET get/[job number] method
Update a job
https://api.xero.com/workflowmax/3.0/job.api/update
<Job>
<ID>J000123</ID>
<Name>Brochure Design</Name>
<Description>Detailed description of the job</Description>
<StartDate>20091023</StartDate>
<DueDate>20091028</DueDate>
<ClientNumber>client order number</ClientNumber> <!-- optional -->
<!-- ID of Job Category to assign to job -->
<CategoryUUID /> <!-- optional -->
<Budget>55.00</Budget> <!-- optional -->
</Job>
The response will include the detailed information of the job as per the GET get/[job number] method
Add a task to a job
https://api.xero.com/workflowmax/3.0/job.api/task
<Task>
<Job>J000309</Job>
<TaskUUID>75f95129-bcd1-4cb4-8f24-6067bf9d365a</TaskUUID> <!-- refer Task Methods for obtaining list of tasks and their UUIDs -->
<Label></Label> <!-- optional -->
<Description></Description> <!-- optional -->
<EstimatedMinutes>60</EstimatedMinutes>
<StartDate>20091023</StartDate> <!-- optional -->
<DueDate>20091028</DueDate> <!-- optional -->
</Task>
Update a task on a job
https://api.xero.com/workflowmax/3.0/job.api/task
<Task>
<UUID>807818ac-da1c-4f4b-ab12-8d090ad0e64d</UUID>
<Label></Label> <!-- optional -->
<Description></Description> <!-- optional -->
<EstimatedMinutes>60</EstimatedMinutes>
<StartDate>20091023</StartDate> <!-- optional -->
<DueDate>20091028</DueDate> <!-- optional -->
</Task>
Complete a task on a job
https://api.xero.com/workflowmax/3.0/job.api/task/807818ac-da1c-4f4b-ab12-8d090ad0e64d/complete
Re-open a task on a job
https://api.xero.com/workflowmax/3.0/job.api/task/807818ac-da1c-4f4b-ab12-8d090ad0e64d/reopen
Reorder the tasks on a job
https://api.xero.com/workflowmax/3.0/job.api/reordertasks
<Job>
<ID>J000123</ID>
<Tasks>
<Task>
<UUID>f26b8e7e-0c3e-4b08-a0d0-1ecca7eaf4f7</UUID>
</Task>
<Task>
<UUID>de365a6b-6ab1-44d9-9ca7-bd529959da2b</UUID>
</Task>
<Task>
<UUID>bcb5fcd4-a580-4f37-b5bc-a527ec0c5fdc</UUID>
</Task>
</Tasks>
</Job>
Add a note to a job
https://api.xero.com/workflowmax/3.0/job.api/note
<Note>
<Job>J000309</Job>
<Title>Note Title</Title>
<Text>The text relating to the note</Text>
<Folder>Correspondence</Folder> <!-- optional -->
<Public>false</Public> <!-- optional true | false -->
</Note>
Return a list of documents for a job
https://api.xero.com/workflowmax/3.0/job.api/documents/J00309
<Documents>
<Document>
<Title>Document Title</Title>
<Text /> <!-- optional -->
<Folder>Correspondence</Folder> <!-- optional -->
<Date>20091023</Date>
<CreatedBy>Jo Bloggs</CreatedBy>
<FileName>file.txt</FileName>
<URL>https://my.workflowmax.com/....... </URL>
</Document>
</Documents>
Add a document to a job
https://api.xero.com/workflowmax/3.0/job.api/document
<Document>
<Job>J000309</Job>
<Title>Document Title</Title>
<Text>The note relating to the document</Text>
<Folder>Images</Folder> <!-- optional -->
<Public>false</Public> <!-- optional true | false -->
<FileName>example.jpg</FileName>
<Content>File content base 64 encoded</Content>
</Document>
Return a list of costs for a job
https://api.xero.com/workflowmax/3.0/job.api/costs/J00309
<Costs>
<Cost>
<UUID>0e9d45c4-37c5-4489-b966-765b115966e4</UUID>
<Date>2009-10-23T00:00:00</Date>
<Description>Widget</Description>
<Code>WIDGET</Code>
<Note>a note about the widget</Note>
<Quantity>1</Quantity>
<UnitCost>50.00</UnitCost>
<UnitPrice>100.00</UnitPrice>
<Supplier>
<UUID>48db0a77-d871-4e1a-9475-aa40de10dd79</UUID>
<Name>Widget Incorporated</Name>
</SupplierID>
<Billable>true</Billable> <!-- true | false -->
</Cost>
</Costs>
Add a cost to a job
https://api.xero.com/workflowmax/3.0/job.api/cost
<Cost>
<Job>J000309</Job>
<Date>20091023</Date>
<Description>Widget</Description>
<Code>WIDGET</Code> <!-- optional -->
<Note>a note about the widget</Note> <!-- optional -->
<Quantity>1</Quantity>
<UnitCost>50.00</UnitCost>
<UnitPrice>100.00</UnitPrice>
<SupplierUUID>48db0a77-d871-4e1a-9475-aa40de10dd79</SupplierUUID> <!-- optional -->
<Billable>true</Billable> <!-- optional true (default) | false -->
</Cost>
Update a cost on a job
https://api.xero.com/workflowmax/3.0/job.api/cost
<Cost>
<UUID>0e9d45c4-37c5-4489-b966-765b115966e4</UUID>
<Date>20091023</Date>
<Description>Widget</Description>
<Code>WIDGET</Code> <!-- optional -->
<Note>a note about the widget</Note> <!-- optional -->
<Quantity>1</Quantity>
<UnitCost>50.00</UnitCost>
<UnitPrice>100.00</UnitPrice>
<SupplierUUID>48db0a77-d871-4e1a-9475-aa40de10dd79</SupplierUUID> <!-- optional -->
<Billable>true</Billabler> <!-- optional true (default) | false -->
</Cost>
Assign staff to a job
https://api.xero.com/workflowmax/3.0/job.api/assign
<Job>
<ID>J000309</ID>
<add uuid="9965d37f-0922-4754-86f0-abe31e938e35"/> <!-- uuid = UUID of staff member -->
<remove uuid="4ac6fab1-b1c5-459e-9652-91ba4a72eec4"/>
<add uuid="9965d37f-0922-4754-86f0-abe31e938e35" task-uuid="c3fe8e7a-0e2f-4c0b-aa1b-58506b9d4460" /> <!-- assign staff to a specific task -->
<remove uuid="4ac6fab1-b1c5-459e-9652-91ba4a72eec4" task-uuid="70c1c9be-8b2e-4cb2-be69-e1dc69844d19"/> <!-- remove staff from a specific task -->
<!-- the following elements allow you to assign a manager to the job -->
<add-manager uuid="9965d37f-0922-4754-86f0-abe31e938e35"/> <!-- uuid = UUID of staff member -->
<remove-manager />
<!-- the following elements allow you to assign a partner/account manager to the job -->
<add-partner uuid="4ac6fab1-b1c5-459e-9652-91ba4a72eec4"/> <!-- uuid = UUID of staff member -->
<remove-partner />
</Job>
Delete a job
https://api.xero.com/workflowmax/3.0/job.api/delete
<Job>
<ID>J000309</ID>
</Job>
Apply an additional template to a job
https://api.xero.com/workflowmax/3.0/job.api/applytemplate
<Job>
<ID>J000309</ID>
<TemplateUUID>1318c880-7cba-4f6a-9e9a-0e864f8f36b2</TemplateUUID> <!-- UUID of Job Template to apply to job -->
<!-- TaskMode describes how tasks are added to the job
AddNew: tasks are always added to the job (default)
AppendExisting: where the same task already exists on the job, the template task will be appended to the details of the existing task, otherwise the task will be added to the job
-->
<TaskMode>AddNew</TaskMode>
</Job>
Create a quote based on the job
https://api.xero.com/workflowmax/3.0/job.api/createquote/J00309
<Response>
<Status>OK</Status>
<ID>Q000123</ID> <!-- ID of the newly created quote -->
<UUID>6af333db-e272-4983-b374-6981301227b3</UUID> <!-- UUID of the newly created quote -->
</Response>
Create an estimate based on the job
https://api.xero.com/workflowmax/3.0/job.api/createestimate/J00309
<Response>
<Status>OK</Status>
<ID>Q000123</ID> <!-- ID of the newly created estimate -->
<UUID>6af333db-e272-4983-b374-6981301227b3</UUID> <!-- UUID of the newly created estimate -->
</Response>