API Documentation

Job Methods

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/[id] Return a list of all current jobs assigned to a staff member
GET client/[id] 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/[id]/complete Complete a task on a job
PUT task/[id]/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
PARAMETERS
detailed=true Optional Return detailed information on job.  See GET get/[job number] method for example of detailed job response.
EXAMPLE URL
https://api.workflowmax.com/job.api/current?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
<Status>OK</Status>
 <Jobs>
   <Job>
     <ID>J000159</ID>
     <Name>Brochure Design</Name>
     <Description />
     <State>Planned</State>
     <ClientOrderNumber />
     <StartDate>2007-09-15T00:00:00</StartDate>
     <DueDate>2007-09-22T00:00:00</DueDate>
     <CompletedDate>2007-09-22T00:00:00</CompletedDate>
     <Client>
       <ID>5</ID>
       <Name>A C Smith Limited</Name>
     </Client>
     <Manager>
       <ID>6</ID>
       <Name>John Smith</Name>
     </Manager>
     <Partner>
       <ID>12</ID>
       <Name>Jack Brown</Name>
     </Partner>
     <Assigned>
       <Staff>
         <ID>5</ID>
         <Name>Jo Bloggs</Name>
       </Staff>
     </Assigned>
   </Job>
   <Job>
     <ID>J000232</ID>
     <Name>Custom Development</Name>
     <Description />
     <State>Planned</State>
     <ClientOrderNumber />
     <StartDate>2008-08-06T00:00:00</StartDate>
     <DueDate>2008-08-29T00:00:00</DueDate>
     <Client>
       <ID>6</ID>
       <Name>Robert Holdings</Name>
     </Client>
     <Contact>
       <ID>584</ID>
       <Name>John Roberts</Name>
     </Contact>
     <Assigned>
       <Staff>
         <ID>5</ID>
         <Name>Jo Bloggs</Name>
       </Staff>
     </Assigned>
   </Job>
 </Jobs>
</Response>
EXAMPLE URL
https://api.workflowmax.com/job.api/get/J00309?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
  <Status>OK</Status> 
  <Job>
    <ID>J000309</ID> 
    <Name>job name</Name> 
    <Description>description of job</Description> 
    <State>Planned</State> 
    <ClientOrderNumber />
    <Type>Website Development</Type> 
    <StartDate>2008-08-29T00:00:00</StartDate> 
    <DueDate>2008-09-29T00:00:00</DueDate> 
    <InternalID>234234234</InternalID>
    <CompletedDate>2008-09-29T00:00:00</CompletedDate> 
    <Client>
      <ID>307</ID> 
      <Name>The Health Company</Name> 
    </Client>
    <Contact>
      <ID>267</ID> 
      <Name>Shelley Brio</Name> 
    </Contact>
    <Manager>
      <ID>6</ID>
      <Name>John Smith</Name>
    </Manager>
     <Partner>
       <ID>12</ID>
       <Name>Jack Brown</Name>
     </Partner>
    <Assigned>
      <Staff>
        <ID>5</ID>
        <Name>Jo Bloggs</Name>
      </Staff>
    </Assigned>
    <Tasks>
      <Task>
        <ID>312</ID> 
        <Name>Creative Direction</Name> 
        <Description /> 
        <EstimatedMinutes>180</EstimatedMinutes> 
        <ActualMinutes>100</ActualMinutes> 
        <Completed>false</Completed> 
        <Billable>true</Billable>
        <!-- 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>
            <ID>5</ID>
            <Name>Jo Blogs</Name>
            <AllocatedMinutes>180</AllocatedMinutes>
          </Staff>
        </Assigned>
      </Task>
      <Task>
        <ID>313</ID> 
        <Name>Design & Layout</Name> 
        <Description /> 
        <EstimatedMinutes>120</EstimatedMinutes> 
        <ActualMinutes>180</ActualMinutes> 
        <Completed>false</Completed>
        <Billable>true</Billable> 
      </Task>
    </Tasks>
    <Milestones>
      <Milestone>
        <Date>2008-09-24T00:00:00</Date> 
        <Description>do something by then</Description> 
        <Completed>false</Completed> 
      </Milestone>
    </Milestones>
    <Notes>
      <Note>
        <Title>note title</Title> 
        <Text>subject of the note</Text> 
        <Folder /> 
        <Date>2008-09-12T13:00:00</Date> 
        <CreatedBy>Jo Bloggs</CreatedBy>
        <Comments>
          <Comment>
            <Text>example comment</Text>             
            <Date>2008-09-12T14:00:00</Date> 
            <CreatedBy>John Smith</CreatedBy>        
          </Comment>       
        </Comments>
      </Note>
    </Notes>
  </Job>
</Response>
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/state?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<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>
PARAMETERS
detailed=true Optional Return detailed information on job.  See GET get/[job number] method for example of 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.
EXAMPLE URL
GET https://api.workflowmax.com/job.api/list?apiKey=[your API key]&accountKey=[WorkflowMax account key]&from=20090801&to=20090901
EXAMPLE URL
GET https://api.workflowmax.com/job.api/staff/123?apiKey=[your API key]&accountKey=[WorkflowMax account key]
EXAMPLE URL
GET https://api.workflowmax.com/job.api/client/123?apiKey=[your API key]&accountKey=[WorkflowMax account key]
PARAMETERS
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.
The following example URL would return all tasks that were due on or before 1 August 2009 that have not been completed
GET https://api.workflowmax.com/job.api/tasks?apiKey=[your API key]&accountKey=[WorkflowMax account key]&due=20090801&complete=false
EXAMPLE URL
POST https://api.workflowmax.com/job.api/add?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Job>
  <Name>Brochure Design</Name>
  <Description>Detailed description of the job</Description>
  <ClientID>123</ClientID>
  <ContactID>456</ContactID>    <!-- 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 -->
  <TemplateID>23</TemplateIDr>  <!-- optional -->   

  <!-- ID of Job Category to assign to job -->
  <CategoryID />  <!-- optional -->   
</Job>

The response will include the detailed information of the job as per the GET get/[job number] method

EXAMPLE URL
PUT https://api.workflowmax.com/job.api/update?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<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 -->
  <CategoryID />  <!-- optional -->   
</Job>

The response will include the detailed information of the job as per the GET get/[job number] method

EXAMPLE URL
POST https://api.workflowmax.com/job.api/task?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Task>
  <Job>J000309</Job>
  <TaskID>123</TaskID>    <!-- refer Task Methods for obtaining list of tasks and their IDs -->
  <Label></Label>    <!-- optional -->
  <Description></Description>    <!-- optional -->
  <EstimatedMinutes>60</EstimatedMinutes>
  <StartDate>20091023</StartDate>    <!-- optional -->
  <DueDate>20091028</DueDate>    <!-- optional -->
</Task>
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/task?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Task>
  <ID>45678</ID>  
  <Label></Label>    <!-- optional -->
  <Description></Description>    <!-- optional -->
  <EstimatedMinutes>60</EstimatedMinutes>
  <StartDate>20091023</StartDate>    <!-- optional -->
  <DueDate>20091028</DueDate>    <!-- optional -->
</Task>
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/task/[id]/complete?apiKey=[your API key]&accountKey=[WorkflowMax account key]
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/task/[id]/reopen?apiKey=[your API key]&accountKey=[WorkflowMax account key]
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/reordertasks?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Job>
  <ID>J000123</ID>  
  <Tasks>  
    <Task>  
      <ID>400</ID>  
    </Task>  
    <Task>  
      <ID>399</ID>  
    </Task>  
    <Task>  
      <ID>398</ID>  
    </Task>  
  </Tasks>  
</Job>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/note?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Note>
  <Job>J000309</Job>
  <Title>Note Title</Title>
  <Text>The text relating to the note</Text>
  <Folder>Correspondence</Folder>    <!-- optional -->
  <Public>false</Folder>    <!-- optional true | false -->
</Note>
EXAMPLE URL
GET https://api.workflowmax.com/job.api/documents/J00309?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Documents>
  <Document>
    <Title>Document Title</Title>
    <Text />    <!-- optional -->
    <Folder>Correspondence</Folder>    <!-- optional -->
    <Date>20091023</Date>
    <CreatedBy>Jo Bloggs</CreatedBy>
    <URL>https://my.workflowmax.com/....... </URL>
  </Document>
</Documents>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/document?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Document>
  <Job>J000309</Job>
  <Title>Document Title</Title>
  <Text>The note relating to the document</Text>
  <Folder>Images</Folder>    <!-- optional -->
  <Public>false</Folder>    <!-- optional true | false -->
  <FileName>example.jpg</FileName>
  <Content>File content base 64 encoded</Content>
</Document>
EXAMPLE URL
GET https://api.workflowmax.com/job.api/costs/J00309?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Costs>
  <Cost>
    <ID>1234</Job>
    <Date>20091023</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>
      <ID>123</Job>
      <Name>Widget Incorporated</Name>    
    </SupplierID>    
    <Billable>true</Billabler> <!-- true | false -->
  </Cost>
</Costs>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/cost?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<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>
  <SupplierID>123</SupplierID>    <!-- optional -->
  <Billable>true</Billabler>    <!-- optional true (default) | false -->
</Cost>
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/cost?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Cost>
  <ID>1234</ID>
  <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>
  <SupplierID>123</SupplierID>    <!-- optional -->
  <Billable>true</Billabler>    <!-- optional true (default) | false -->
</Cost>
EXAMPLE URL
PUT https://api.workflowmax.com/job.api/assign?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Job>
  <ID>J000309</ID>
  <add id="123"/>     <!-- id = ID of staff member -->
  <remove id="456"/>

  <add id="123" task="45678" />     <!-- assign staff to a specific task -->
  <remove id="456" task="45678"/>   <!-- remove staff from a specific task -->

  <!-- the following elements allow you to assign a manager to the job -->
  <add-manager id="123"/>     <!-- id = ID of staff member -->
  <remove-manager />

  <!-- the following elements allow you to assign a partner/account manager to the job -->
  <add-partner id="456"/>     <!-- id = ID of staff member -->
  <remove-partner />

</Job>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/delete?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Job>
  <ID>J000309</ID>
</Job>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/applytemplate?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Job>
  <ID>J000309</ID>
  <TemplateID>123</TemplateID>  <!-- ID 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>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/createquote/J00309?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
  <Status>OK</Status>
  <ID>1234</ID>   <!-- ID of the newly created quote -->
</Response>
EXAMPLE URL
POST https://api.workflowmax.com/job.api/createestimate/J00309?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
  <Status>OK</Status>
  <ID>1234</ID>   <!-- ID of the newly created estimate -->
</Response>

No credit card required.