Spec - Projects

Table Of Contents

Get Project Categories

This function allows the caller to get a list of project categories for a given group.

Input

Pass either the group name or group ID on the root element of the request.

Output

Returns an array of categories for the given group.

Example Request 1

<GetProjectCategoriesRequest group_name="MyTestGroup"></GetProjectCategoriesRequest>

Example Request 2

<GetProjectCategoriesRequest group_id="12345"></GetProjectCategoriesRequest>

Successful Response

<GetProjectCategoriesResponse>
    <Categories group_id="12345">
        <Category category_name="My First Category" category_id="12345"></Category>
        <Category category_name="My Second Category" category_id="12346"></Category>
    </Categories>
</GetProjectCategoriesResponse>

Add Project Category

This function allows the caller to add a category to the given group.

Input

The category name is required. Either the group name or id can be specified. If neither the group name or id is provided, the category will be available to all groups.

Output

Returns a status for each category that was added.

Example Request 1 (specify group name)

<AddProjectCategoryRequest group_name="MyTestGroup" category_name="My Category"></AddProjectCategoryRequest>

Example Request 2 (specify group id)

<AddProjectCategoryRequest group_id="12345" category_name="My Category"></AddProjectCategoryRequest>

Example Request 3 (make available to all groups)

<AddProjectCategoryRequest category_name="My Category"></AddProjectCategoryRequest>

Successful Response

<AddProjectCategoryResponse>
    <Categories>
        <Category>
            <Category_id>322</Category_id>
            <Result>Success</Result>
        </Category>
        <Category>
            <Category_id>324</Category_id>
            <Result>Success</Result>
        </Category>
    </Categories>
</AddProjectCategoryResponse>

Get Projects

This function allows the caller to retrieve projects from the database. Search parameters should be specified inside the tag. Projects can be retrieved by Project ID, Project Name, Group (ID or name), Project Manager ID, Project Start Date/Time, Project Due Date/Time, Category ID, and Priority. Leaving all search criteria blank would return all of the projects in the account (for the account owner).

Input

Specify search criteria within the GetProjectsRequest tag. Search criteria can be project_id, project_name, group_id (return all Projects belonging to group), group_name, project_manager_id, project_category_id, priority. If no search criteria, return all projects in the account (if an account owner). Specify account_id and group_name or group_id for shared access to another account. Specify get_all=”true” to return all projects that the caller has access to, including shared access.

Output

Success or failure. Total number of Projects matching search. For each Project found: Project ID, Group_id, Group_name, Project_name, Project_start_datetime (yyyy-mm-dd hh:mm format), Project_due_datetime (yyyy-mm-dd hh:mm format), Project_category_id, Project_category_name, Project_manager_id, Project_manager_firstname, Project_manager_lastname, Priority, Project_percent_complete, Project_status, Waiting_on_id, Waiting_on_firstname, Waiting_on_lastname, Description, Weekly_email_updates, Allocated_hours.

Example Request 1

<GetProjectsRequest></GetProjectsRequest>

Example Request 2

<GetProjectsRequest group_name="MyTestGroup"></GetProjectsRequest>

Example Request 3

<GetProjectsRequest project_category_id="78"></GetProjectsRequest>

Example Request 4 (shared access)

<GetProjectsRequest account_id="143996" group_id="321" ></GetProjectsRequest>

Example Request 5 (shared access with get_all)

<GetProjectsRequest get_all="true"></GetProjectsRequest>

Successful Response

<GetProjectsResponse>
    <Result>Success</Result>
    <Projects>
        <Project>
            <AccountNumber>143996</AccountNumber>
            <Group_id>321</Group_id>
            <Group_name>MyTestGroup</Group_name>
            <Project_id>983</Project_id>
            <Project_name>My Test Project</Project_name>
            <Project_start_datetime>2014-02-12 08:55</Project_start_datetime>
            <Project_due_datetime>2014-05-10 09:00</Project_due_datetime>
            <Project_category_id>32</Project_category_id>
            <Project_category_name>My Test Project Category</Project_category_name>
            <Project_manager_id>32</Project_manager_id>
            <Project_manager_firstname>John</Project_manager_firstname>            
            <Project_manager_lastname>Sullivan</Project_manager_lastname>
            <Priority>High</Priority>
            <Project_percent_complete>70</Project_percent_complete>
            <Project_status>In development</Project_status>
            <Waiting_on_id>87</Waiting_on_id>
            <Waiting_on_firstname>Steve</Waiting_on_firstname>
            <Waiting_on_lastname>Simpson</Waiting_on_lastname>
            <Description>A description of my test project</Description>
            <Weekly_email_updates>Y</Weekly_email_updates>
            <Allocated_hours>200</Allocated_hours>
        </Project>
        <Project>
            <AccountNumber>143886</AccountNumber>
            <Group_id>343</Group_id>
            <Group_name>AnotherTestGroup</Group_name>
            <Project_id>1023</Project_id>
            <Project_name>Another Test Project</Project_name>
            <Project_start_datetime>2014-03-12 08:55</Project_start_datetime>
            <Project_due_datetime>2014-12-31 09:00</Project_due_datetime>
            <Project_category_id>34</Project_category_id>
            <Project_category_name>Another Test Project Category</Project_category_name>
            <Project_manager_id>39</Project_manager_id>
            <Project_manager_firstname>Megan</Project_manager_firstname>            
            <Project_manager_lastname>Johnson</Project_manager_lastname>
            <Priority>Normal</Priority>
            <Project_percent_complete>5</Project_percent_complete>
            <Project_status>Waiting for Approval</Project_status>
            <Waiting_on_id>32</Waiting_on_id>
            <Waiting_on_firstname>Jacob</Waiting_on_firstname>
            <Waiting_on_lastname>Jefferson</Waiting_on_lastname>
            <Description>Another description of another test project</Description>
            <Weekly_email_updates>N</Weekly_email_updates>
            <Allocated_hours>1500</Allocated_hours>
        </Project>
    </Projects>
    <TotalMatchingProjects>2</TotalMatchingProjects>
</GetProjectsResponse>

Add Projects

This function allows the caller to add one or more projects.

Input

Output

For each project, success or failure, Project_id if successful, AccountNumber, Group_id

Example Request 1

<AddProjectsRequest>
    <Projects>
        <Project request_id="a1b2c3">
            <Group_id>6</Group_id>
            <Project_name>My Test Project</Project_name>
            <Project_start_datetime>2014-04-23 14:00</Project_start_datetime>
            <Project_due_datetime>2014-06-23 19:00</Project_due_datetime>
            <Project_category_id>9</Project_category_id>
            <Project_manager_id>23</Project_manager_id>
            <Priority>High</Priority>
            <Project_percent_complete>0</Project_percent_complete>
            <Project_status>In Development</Project_status>
            <Waiting_on_id>92</Waiting_on_id>
            <Description>Description for Test Project 1.</Description>
            <Weekly_email_updates>Y</Weekly_email_updates>
            <Allocated_hours>320</Allocated_hours>
        </Project>
        <Project request_id="d4e5f6">
            <Group_id>25</Group_id>
            <Project_name>My Second Test Project</Project_name>
            <Project_start_datetime>2014-04-12 08:00</Project_start_datetime>
            <Project_due_datetime>2014-05-15 19:00</Project_due_datetime>
            <Project_category_id>3</Project_category_id>
            <Project_manager_id>26</Project_manager_id>
            <Priority>Normal</Priority>
            <Project_percent_complete>5</Project_percent_complete>
            <Project_status>Starting Phase</Project_status>
            <Description>Description for Test Project 2.</Description>
            <Weekly_email_updates>N</Weekly_email_updates>
            <Allocated_hours>240</Allocated_hours>
        </Project>
    </Projects>
</AddProjectsRequest>

Example Request 2 (Shared Access)

<AddProjectsRequest>
    <Projects>
        <Project account_id="83920">
            <Group_id>19</Group_id>
            <Project_name>My Test Project</Project_name>
            <Project_start_datetime>2014-02-12 09:00</Project_start_datetime>
            <Project_due_datetime>2014-04-10 19:30</Project_due_datetime>
            <Project_category_id>2</Project_category_id>
            <Project_manager_id>37</Project_manager_id>
            <Priority>Low</Priority>
            <Project_percent_complete>0</Project_percent_complete>
            <Project_status>Complete</Project_status>
            <Description>Description for Test Project 1.</Description>
        </Project>
        <Project account_id="9212">
            <Group_id>21</Group_id>
            <Project_name>My Test Project 2</Project_name>
            <Project_start_datetime>2014-05-01 07:30</Project_start_datetime>
            <Project_due_datetime>2014-08-31 19:30</Project_due_datetime>
            <Project_category_id>4</Project_category_id>
            <Project_manager_id>21</Project_manager_id>
            <Priority>High</Priority>
            <Project_percent_complete>10</Project_percent_complete>
            <Project_status>Kickoff</Project_status>
            <Description>Description for Test Project 2.</Description>
        </Project>
    </Projects>
</AddProjectsRequest>

Successful Response

<AddProjectsResponse>
    <Projects>
        <Project request_id="a1b2c3">
            <Project_id>32</Project_id>
            <Result>Success</Result>
            <AccountNumber>83920</AccountNumber>
            <Group_id>19</Group_id>
        </Project>
        <Project request_id="d4e5f6">
            <Project_id>33</Project_id>
            <Result>Success</Result>
            <AccountNumber>9212</AccountNumber>
            <Group_id>21</Group_id>
        </Project>
    </Projects>
</AddProjectsResponse>

Edit Projects

This function allows the caller to modify one or more Projects already in the database. Search parameters should be specified inside the tag, while parameters to change to would be specified individually. Fields not specified would remain the same.

Input

Specify search criteria within the EditProjectsRequest tag. Search criteria can be:

Each project’s search criteria must return a single unique project to modify.

Parameters to change can include:

Output

For each project, success or failure, Project_id, AccountNumber

Example Request 1

<EditProjectsRequest>
    <Projects>
        <Project project_id="235 request_id="a1b2c3"">
            <Group_id>6</Group_id>
            <Project_name>My Test Project</Project_name>
            <Project_start_datetime>2014-04-25 14:00</Project_start_datetime>
            <Project_due_datetime>2014-06-25 19:00</Project_due_datetime>
            <Project_category_id>9</Project_category_id>
            <Project_manager_id>23</Project_manager_id>
            <Priority>Normal</Priority>
        </Project>
        <Project project_name="My Test Project" request_id="d4e5f6">
            <Description>New Description for My Test Project Project 2.</Description>
            <Weekly_email_updates>N</Weekly_email_updates>
            <Allocated_hours>240</Allocated_hours>
        </Project>
    </Projects>
</EditProjectsRequest>

Example Request 2 (Shared Access)

<EditProjectsRequest>
    <Projects>
        <Project project_id="322" account_id="32234">
            <Group_id>32</Group_id>
            <Project_name>Another Test Project</Project_name>
            <Project_start_datetime>2014-04-29 10:00</Project_start_datetime>
            <Project_due_datetime>2014-05-30 23:30</Project_due_datetime>
            <Project_category_id>39</Project_category_id>
            <Project_manager_id>23</Project_manager_id>
            <Priority>Low</Priority>
        </Project>
        <Project project_name="My Test Project 2" account_id="32344">
            <Description>New Description for My Test Project Project 3.</Description>
        </Project>
    </Projects>
</EditProjectsRequest>

Successful Response

<EditProjectsResponse>
    <Projects>
        <Project request_id="a1b2c3">
            <Project_id>322</Project_id>
            <Result>Success</Result>
            <AccountNumber>32234</AccountNumber>
            <Group_id>32</Group_id>
        </Project>
        <Project request_id="d4e5f6">
            <Project_id>324</Project_id>
            <Result>Success</Result>
            <AccountNumber>32344</AccountNumber>
        </Project>
    </Projects>
</EditProjectsResponse>

Delete Projects

This function allows the caller to delete one or more Projects from the database.

Input

Specify search criteria within the each Project tag. Search criteria can be:

Each project’s search criteria must return a single unique project to modify.

Output

For each project, success or failure, Project_id.

Example Request 1

<DeleteProjectsRequest>
    <Projects>
        <Project project_id="235" request_id="a1b2c3" />
        <Project project_name="My Sample Project" request_id="d4e5f6" />
    </Projects>
</DeleteProjectsRequest>

Example Request 2 (Shared Access)

<DeleteProjectsRequest>
    <Projects>
        <Project project_id="323" account_id="39023" />
        <Project project_name="My Other Sample Project" account_id="93293" />
    </Projects>
</DeleteProjectsRequest>

Successful Response

<DeleteProjectsResponse>
    <Projects>
        <Project request_id="a1b2c3">
            <Project_id>322</Project_id>
            <Result>Success</Result>
        </Project>
        <Project request_id="d4e5f6">
            <Project_id>324</Project_id>
            <Result>Success</Result>
        </Project>
    </Projects>
</DeleteProjectsResponse>

Get Project Updates

This function allows the caller to retrieve project updates from the database. Search parameters should be specified inside the tag. Project updates can be retrieved by ProjectUpdateID, Project ID, Project Name, Contact ID, Contact Firstname, Contact Lastname. Leaving all search criteria blank would return all of the project updates in the account (for the account owner).

Input

Specify search criteria within the GetProjectUpdatesRequest tag. Search criteria can be project_update_id, project_id, project_name, contact_id, contact_firstname, contact_lastname.

Output

Success or failure. Total number of Project Updates matching search. For each Project Update found: Project_update_id, Project_id, Project_name, Contact_id, Contact_firstname, Contact_lastname, Time_spent, Notes, Media_id, Update_datetime (yyyy-mm-dd hh:mm:ss format).

Example Request 1

<GetProjectUpdatesRequest></GetProjectUpdatesRequest>

Example Request 2

<GetProjectUpdatesRequest project_name="My Test Project" contact_id="43"></GetProjectUpdatesRequest>

Example Request 3 (Shared Access)

<GetProjectUpdatesRequest account_id="82038" project_id="432"></GetProjectUpdatesRequest>

Successful Response

<GetProjectUpdatesResponse>
    <Result>Success</Result>
    <ProjectUpdates>
        <ProjectUpdate>
            <AccountNumber>143996</AccountNumber>
            <Project_update_id>32</Project_update_id>
            <Project_id>23</Project_id>
            <Project_name>My test project</Project_name>
            <Contact_id>34</Contact_id>
            <Contact_firstname>Sam</Contact_firstname>
            <Contact_lastname>Adams</Contact_lastname>
            <Time_spent>3.6</Time_spent>
            <Notes>Wrote documentation</Notes>
            <Media_id>32</Media_id>
            <Update_datetime>2014-04-12 10:32:34</Update_datetime>
        </ProjectUpdate>
        <ProjectUpdate>
            <AccountNumber>23923</AccountNumber>
            <Project_update_id>24</Project_update_id>
            <Project_id>21</Project_id>
            <Project_name>Another test project</Project_name>
            <Contact_id>32</Contact_id>
            <Contact_firstname>Charlie</Contact_firstname>
            <Contact_lastname>Parker</Contact_lastname>
            <Time_spent>6.7</Time_spent>
            <Notes>Coded the UI</Notes>
            <Media_id></Media_id>
            <Update_datetime>2014-05-01 13:42:55</Update_datetime>
        </ProjectUpdate>
    </ProjectUpdates>
    <TotalMatchingProjectUpdates>2</TotalMatchingProjectUpdates>
</GetProjectUpdatesResponse>

Add Project Updates

This function allows the caller to add one or more project updates.

Input

Output

For each project update, success or failure, Project_update_id if successful, AccountNumber.

Example Request 1

<AddProjectUpdatesRequest>
    <ProjectUpdates>
        <ProjectUpdate request_id="a1b2c3">
            <Project_id>93</Project_id>
            <Contact_id>24</Contact_id>
            <Time_spent>3.4</Time_spent>
            <Notes>Worked on coding for new project</Notes>
            <Media_id>92</Media_id>
            <Update_datetime>2014-05-01 18:23:31</Update_datetime>
        </ProjectUpdate>
        <ProjectUpdate request_id="d4e5f6">
            <Project_id>95</Project_id>
            <Contact_id>22</Contact_id>
            <Time_spent>7.6</Time_spent>
            <Notes>Testing the new product</Notes>
            <Update_datetime>2014-05-05 17:00:00</Update_datetime>
        </ProjectUpdate>
    </ProjectUpdates>
</AddProjectUpdatesRequest>

Example Request 2 - Shared Access

<AddProjectUpdatesRequest>
    <ProjectUpdates>
        <ProjectUpdate account_id="83920">
            <Project_id>29</Project_id>
            <Contact_id>93</Contact_id>
            <Time_spent>6.1</Time_spent>
            <Notes>Contract for new client</Notes>
            <Media_id>93</Media_id>
            <Update_datetime>2014-05-07 17:30:02</Update_datetime>
        </ProjectUpdate>
        <ProjectUpdate account_id="54231">
            <Project_id>30</Project_id>
            <Contact_id>24</Contact_id>
            <Time_spent>8.7</Time_spent>
            <Notes>Accounting work for month close</Notes>
            <Update_datetime>2014-05-10 16:31:20</Update_datetime>
        </ProjectUpdate>
    </ProjectUpdates>
</AddProjectUpdatesRequest>

Successful Response

<AddProjectUpdatesResponse>
    <ProjectUpdates>
        <ProjectUpdate request_id="a1b2c3">
            <Project_update_id>54</Project_update_id>
            <Result>Success</Result>
            <AccountNumber>92032</AccountNumber>
        </ProjectUpdate>
        <ProjectUpdate request_id="d4e5f6">
            <Project_update_id>55</Project_update_id>
            <Result>Success</Result>
            <AccountNumber>32133</AccountNumber>
        </ProjectUpdate>
    </ProjectUpdates>
</AddProjectUpdatesResponse>

Edit Project Updates

This function allows the caller to modify one or more project updates already in the database. Search parameters should be specified inside the tag, while parameters to change to would be specified individually. Fields not specified would remain the same.

Input

Specify search criteria within the EditProjectUpdatesRequest tag. Search criteria can be:

Each project’s search criteria must return a single unique project to modify.

Parameters to change can include:

Output

For each project, success or failure, Project_id, AccountNumber

Example Request 1

<EditProjectUpdatesRequest>
    <ProjectUpdates>
        <ProjectUpdate project_update_id="23" request_id="a1b2c3">
            <Time_spent>4.4</Time_spent>
            <Notes>Helped Jim with sales</Notes>
            <Update_datetime>2014-05-02 11:23:31</Update_datetime>
        </ProjectUpdate>
        <ProjectUpdate project_update_id="93" request_id="d4e5f6">
            <Project_id>55</Project_id>
            <Contact_id>12</Contact_id>
            <Time_spent>2.6</Time_spent>
            <Notes>QA meeting</Notes>
            <Update_datetime>2014-04-23 17:00:00</Update_datetime>
        </ProjectUpdate>
    </ProjectUpdates>
</EditProjectUpdatesRequest>

Example Request 2 (Shared Access)

<EditProjectUpdatesRequest>
    <ProjectUpdates>
        <ProjectUpdate project_update_id="34" account_id="32234">
            <Time_spent>2.4</Time_spent>
            <Notes>Close books mid-month</Notes>
            <Update_datetime>2014-05-21 10:23:31</Update_datetime>
        </ProjectUpdate>
        <ProjectUpdate project_update_id="88" account_id="32235">
            <Project_id>32</Project_id>
            <Contact_id>12</Contact_id>
            <Time_spent>9.2</Time_spent>
            <Notes>Sales Meeting</Notes>
            <Update_datetime>2014-04-13 16:30:23</Update_datetime>
        </ProjectUpdate>
    </ProjectUpdates>
</EditProjectUpdatesRequest>

Successful Response

<EditProjectUpdatesResponse>
    <ProjectUpdates>
        <ProjectUpdate request_id="a1b2c3">
            <Project_update_id>34</Project_id>
            <Result>Success</Result>
            <AccountNumber>32234</AccountNumber>
        </ProjectUpdate>
        <ProjectUpdate request_id="d4e5f6">
            <Project_id>324</Project_id>
            <Result>Success</Result>
            <AccountNumber>32235</AccountNumber>
        </ProjectUpdate>
    </ProjectUpdates> 
</EditProjectUpdatesResponse>

Activate Project Players

This function allows the caller to activate players on a given project

Input

Pass the project id and a list of players you would like activated on the project.

Output

Returns a status for each player that was attempted to be activated to the project.

Example Request 1

<ActivateProjectPlayersRequest project_id="12345">
    <Player id="1111"></Player>
    <Player id="2222"></Player>
</ActivateProjectPlayersRequest>

Successful Response

<ActivateProjectPlayersResponse>
    <Player id="1111">
        <Result>Success</Result>
    </Player>
    <Player id="2222">
        <Result>Error</Result>
        <ErrorText>Player not available to add</ErrorText>
    </Player>
</ActivateProjectPlayersResponse>

Deactivate Project Players

This function allows the caller to deactivate players from a given project

Input

Pass the project id and a list of players you would like deactivated from the project.

Output

Returns a status for each player that was attempted to be deactivated from the project.

Example Request 1

<DeactivateProjectPlayersRequest project_id="12345">
    <Player id="1111"></Player>
    <Player id="2222"></Player>
</DeactivateProjectPlayersRequest>

Successful Response

<DeactivateProjectPlayersResponse>
    <Player id="1111">
        <Result>Success</Result>
    </Player>
    <Player id="2222">
        <Result>Error</Result>
        <ErrorText>Player not activated in project</ErrorText>
    </Player>
</DeactivateProjectPlayersResponse>

Get Project Tasks

This function allows the caller to retrieve project tasks from the database. Search parameters should be specified inside the tag. Project updates can be retrieved by ProjectTaskID, Project ID, Project Name, Task Description, Task Contact ID, Task Contact Firstname, Task Contact Lastname. Leaving all search criteria blank would return all of the project tasks in the account (for the account owner).

Input

Specify search criteria within the GetProjectTasksRequest tag. Search criteria can be Project_task_id, Project_id, Project_name, Task_description, Task_contact_id, Task_contact_firstname, Task_contact_lastname.

Output

Success or failure. Total number of Project Tasks matching search. For each Project Task found: Project_task_id,
Task_description, Project_id, Project_name, Task_contact_id, Task_contact_firstname, Task_contact_lastname, Datetime_start (yyyy-mm-dd hh:mm:ss format), Datetime_due (yyyy-mm-dd hh:mm:ss format), Datetime_completed (yyyy-mm-dd hh:mm:ss format).

Example Request 1

<GetProjectTasksRequest></GetProjectTasksRequest>

Example Request 2

<GetProjectTasksRequest Project_name="My Test Project" Contact_id="43"></GetProjectTasksRequest>

Example Request 3 (Shared Access)

<GetProjectTasksRequest account_id="82038" Project_id="432"></GetProjectTasksRequest>

Successful Response

<GetProjectTasksRequest>
    <Result>Success</Result>
    <ProjectTasks>
        <ProjectTask>
            <AccountNumber>143996</AccountNumber>
            <Project_task_id>31</Project_update_id>
            <Task_description>Test Task 1</Task_description>
            <Project_id>23</Project_id>
            <Project_name>My test project</Project_name>
            <Task_contact_id>34</Task_contact_id>
            <Datetime_start>2014-04-12 10:32:34</Datetime_start>
            <Datetime_due>2014-07-12 13:30:00</Datetime_due>
            <Datetime_completed>2014-07-01 17:21:34</Datetime_due>
        </ProjectTask>
        <ProjectTask>
            <AccountNumber>72039</AccountNumber>
            <Project_task_id>25</Project_update_id>
            <Task_description>Another Test Task</Task_description>
            <Project_id>93</Project_id>
            <Project_name>My test project 2</Project_name>
            <Task_contact_id>214</Task_contact_id>
            <Datetime_start>2014-05-15 14:32:34</Datetime_start>
            <Datetime_due>2014-07-23 17:00:00</Datetime_due>
            <Datetime_completed>2014-07-21 13:21:34</Datetime_due>
        </ProjectTask>
    </ProjectTasks>
    <TotalMatchingProjectTasks>2</TotalMatchingProjectTasks>
</GetProjectTasksRequest>

Add Project Tasks

This function allows the caller to add one or more project tasks.

Input

Project_id (required), Contact_id (required), Task_description, Datetime_start (yyyy-mm-dd hh:mm:ss format), Datetime_due (yyyy-mm-dd hh:mm:ss format), Datetime_completed (yyyy-mm-dd hh:mm:ss format), Reminder_email_before_hours_due.

Output

For each project task,, success or failure, Project_update_id if successful, AccountNumber.

Example Request 1

<AddProjectTasksRequest>
    <ProjectTasks>
        <ProjectTask>
            <Project_id>93</Project_id>
            <Contact_id>24</Contact_id>
            <Task_description>Test Task 1</Task_description>
            <Datetime_start>2014-07-01 15:23:31</Datetime_start>
            <Datetime_due>2014-07-31 17:00:00</Datetime_due>
        </ProjectTask>
        <ProjectTask>
            <Project_id>56</Project_id>
            <Contact_id>12</Contact_id>
            <Task_description>Test Task 2</Task_description>
            <Datetime_start>2014-08-01 11:38:31</Datetime_start>
            <Datetime_completed>2014-08-31 13:03:22</Datetime_start>
            <Datetime_due>2014-09-01 09:00:00</Datetime_due>
        </ProjectTask>
    </ProjectTasks>
</AddProjectTasksRequest>

Example Request 2 - Shared Access

<AddProjectTasksRequest>
    <ProjectTasks>
        <ProjectTask account_id="83920">
            <Project_id>93</Project_id>
            <Contact_id>24</Contact_id>
            <Task_description>Test Task 1</Task_description>
            <Datetime_start>2014-07-01 15:23:31</Datetime_start>
            <Datetime_due>2014-07-31 17:00:00</Datetime_due>
        </ProjectTask>
        <ProjectTask account_id="54231">
            <Project_id>56</Project_id>
            <Contact_id>12</Contact_id>
            <Task_description>Test Task 2</Task_description>
            <Datetime_start>2014-08-01 11:38:31</Datetime_start>
            <Datetime_completed>2014-08-31 13:03:22</Datetime_start>
            <Datetime_due>2014-09-01 09:00:00</Datetime_due>
        </ProjectTask>
    </ProjectTasks>
</AddProjectTasksRequest>

Successful Response

<AddProjectTasksResponse>
    <ProjectTasks>
        <ProjectTask>
            <Project_task_id>42</Project_task_id>
            <Result>Success</Result>
            <AccountNumber>92032</AccountNumber>
        </ProjectTask>
        <ProjectTask>
            <Project_task_id>82</Project_task_id>
            <Result>Success</Result>
            <AccountNumber>32133</AccountNumber>
        </ProjectTask>
    </ProjectTasks> 
</AddProjectTasksResponse>

Edit Project Tasks

This function allows the caller to modify one or more project tasks already in the database. Search parameters should be specified inside the tag, while parameters to change to would be specified individually. Fields not specified would remain the same.

Input

Specify search criteria within the EditProjectTasksRequest tag. Search criteria can be Project_task_id, Project_id, Project_name, Task_description, Task_contact_id, Task_contact_firstname, Task_contact_lastname. Each project task’s search criteria must return a single unique project task to modify. Parameters to change can include: Project_id, Contact_id, Task_description, Datetime_start (yyyy-mm-dd hh:mm:ss format), Datetime_due (yyyy-mm-dd hh:mm:ss format), Datetime_completed (yyyy-mm-dd hh:mm:ss format), Reminder_email_before_hours_due.

Output

For each project task, success or failure, Project_task_id, AccountNumber

Example Request 1

<EditProjectTasksRequest>
    <ProjectTasks>
        <ProjectTask Project_task_id="23">
            <Datetime_completed>2014-08-12 11:23:23</Datetime_completed>
        </ProjectTask>
        <ProjectTask Project_task_id="93">
            <Project_id>21</Project_id>
            <Contact_id>12</Contact_id>
            <Task_description>New task description</Task_description>
            <Datetime_start>2014-07-23 17:00:00</Datetime_start>
            <Datetime_completed>2014-08-01 10:26:21</Datetime_completed>
            <Datetime_due>2014-08-07 16:00:00</Datetime_completed>
        </ProjectTask>
    </ProjectTasks>
</EditProjectTasksRequest>

Example Request 2 (Shared Access)

<EditProjectTasksRequest>
    <ProjectTasks>
        <ProjectTask Project_task_id="34" account_id="32234">
            <Datetime_completed>2014-08-15 10:18:25</Datetime_completed>
        </ProjectTask>
        <ProjectTask Project_task_id="88" account_id="32235">
            <Project_id>56</Project_id>
            <Contact_id>8</Contact_id>
            <Task_description>New task description 2</Task_description>
            <Datetime_start>2014-06-30 17:00:00</Datetime_start>
            <Datetime_completed>2014-07-11 08:22:31</Datetime_completed>
            <Datetime_due>2014-07-29 12:00:00</Datetime_completed>
        </ProjectTask>
    </ProjectTasks>
</EditProjectTasksRequest>

Successful Response

<EditProjectTasksResponse>
    <ProjectTasks>
        <ProjectTask>
            <Project_task_id>82</Project_task_id>
            <Result>Success</Result>
            <AccountNumber>93203</AccountNumber>
        </ProjectTask>
        <ProjectTask>
            <Project_task_id>14</Project_task_id>
            <Result>Success</Result>
            <AccountNumber>23235</AccountNumber>
        </ProjectTask>
    </ProjectTasks> 
</EditProjectTasksResponse>

Delete Project Tasks

This function allows the caller to delete one or more project tasks already in the database. Search parameters should be specified inside the tag.

Input

Specify search criteria within the DeleteProjectTasksRequest tag. Search criteria can be Project_task_id, Project_id, Project_name, Task_description, Task_contact_id, Task_contact_firstname, Task_contact_lastname. Each project task’s search criteria must return a single unique project task to delete.

Output

For each project task, success or failure, Project_task_id, AccountNumber

Example Request 1

<DeleteProjectTasksRequest>
    <ProjectTasks>
        <ProjectTask Project_task_id="23"></ProjectTask>
        <ProjectTask Project_task_id="93"></ProjectTask>
    </ProjectTasks>
</DeleteProjectTasksRequest>

Example Request 2 (Shared Access)

<DeleteProjectTasksRequest>
    <ProjectTasks>
        <ProjectTask Project_task_id="34" account_id="32234"></ProjectTask>
        <ProjectTask Project_task_id="88" account_id="32235"></ProjectTask>
    </ProjectTasks>
</DeleteProjectTasksRequest>

Successful Response

<DeleteProjectTasksResponse>
    <ProjectTasks>
        <ProjectTask>
            <Project_task_id>82</Project_task_id>
            <Result>Success</Result>
            <AccountNumber>93203</AccountNumber>
        </ProjectTask>
        <ProjectTask>
            <Project_task_id>14</Project_task_id>
            <Result>Success</Result>
            <AccountNumber>23235</AccountNumber>
        </ProjectTask>
    </ProjectTasks> 
</DeleteProjectTasksResponse>

Get Projects Power-Users

This function allows the caller to list contacts who are power-users (have the ability to add projects) for a given group.

Input

Pass the group ID. No shared access to this function since it is only available to account owners.

Output

Returns a list of projects power-users for the group

Example Request

<GetProjectsPowerUsersRequest group_id="28"></GetProjectsPowerUsersRequest>

Successful Response

<GetProjectsPowerUsersResponse>
    <Account_id>82343</Account_id>
    <Group_id>12</Group_id>
    <ProjectsPowerUsers>
        <ProjectsPowerUser>
            <Contact_id>47</Contact_id>
        </ProjectsPowerUser>
        <ProjectsPowerUser>
            <Contact_id>52</Contact_id>
        </ProjectsPowerUser>
</GetProjectsPowerUsersResponse>

Add Projects Power-Users

This function allows the caller to add contacts who are power-users (have the ability to add projects) to a given group.

Input

Pass the contact ID and the group ID. No shared access to this function since it is only available to account owners.

Output

For each contact passed, success or failure, contact ID, group ID.

Example Request

<AddProjectsPowerUsersRequest>
    <ProjectsPowerUsers>
        <ProjectsPowerUser group_id="22">
            <Contact_id>83</Contact_id>
        </ProjectsPowerUser>
        <ProjectsPowerUser group_id="51">
            <Contact_id>28</Contact_id>
        </ProjectsPowerUser>
    </ProjectsPowerUsers>
</AddProjectsPowerUsersRequest>

Successful Response

<AddProjectsPowerUsersResponse>
    <ProjectsPowerUsers>
        <ProjectsPowerUser>
            <Group_id>22</Group_id>
            <Contact_id>83</Contact_id>
        </ProjectsPowerUser>
        <ProjectsPowerUser>
            <Group_id>51</Group_id>
            <Contact_id>28</Contact_id>
        </ProjectsPowerUser>
    </ProjectsPowerUsers>
</AddProjectsPowerUsersResponse>

Remove Projects Power-Users

This function allows the caller to remove contacts from the list of power-users (have the ability to add projects) for a given group.

Input

Pass the contact ID and the group ID. No shared access to this function since it is only available to account owners.

Output

For each contact passed, success or failure, contact ID, group ID.

Example Request

<RemoveProjectsPowerUsersRequest>
    <ProjectsPowerUsers>
        <ProjectsPowerUser group_id="22">
            <Contact_id>83</Contact_id>
        </ProjectsPowerUser>
        <ProjectsPowerUser group_id="51">
            <Contact_id>28</Contact_id>
        </ProjectsPowerUser>
    </ProjectsPowerUsers>
</RemoveProjectsPowerUsersRequest>

Successful Response

<RemoveProjectsPowerUsersRequest>
    <ProjectsPowerUsers>
        <ProjectsPowerUser>
            <Group_id>22</Group_id>
            <Contact_id>83</Contact_id>
        </ProjectsPowerUser>
        <ProjectsPowerUser>
            <Group_id>51</Group_id>
            <Contact_id>28</Contact_id>
        </ProjectsPowerUser>
    </ProjectsPowerUsers>
</RemoveProjectsPowerUsersRequest>