Spec - Projects
Table Of Contents
- Get Project Categories
- Add Project Category
- Get Projects
- Add Projects
- Edit Projects
- Delete Projects
- Get Project Updates
- Add Project Updates
- Edit Project Updates
- Activate Project Players
- Deactivate Project Players
- Get Project Tasks
- Add Project Tasks
- Edit Project Tasks
- Delete Project Tasks
- Get Projects Power-Users
- Add Projects Power-Users
- Remove Projects Power-Users
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
- request_id (optional)
- Group_id (required)
- Project_name (required)
- Project_start_datetime (yyyy-mm-dd hh:mm format)
- Project_due_datetime (yyyy-mm-dd hh:mm format)
- Project_category_id
- Project_manager_id (required)
- Priority (High, Normal, or Low)
- Project_percent_complete (0 default)
- Project_status
- Waiting_on_id (optional)
- Description
- Weekly_email_updates (Y or N, default Y)
- Allocated_hours (0 default).
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:
- project_id
- project_name
- group_id
- group_name
- project_manager_id
- project_category_id
- priority
- request_id (optional)
Each project’s search criteria must return a single unique project to modify.
Parameters to change can include:
- Group_id
- Project_name
- Project_start_datetime (yyyy-mm-dd hh:mm format)
- Project_due_datetime (yyyy-mm-dd hh:mm format)
- Project_category_id
- Project_manager_id
- Priority (High, Normal, or Low)
- Project_status
- Project_percent_complete (0 default)
- Waiting_on_id
- Description
- Weekly_email_updates (Y or N)
- Allocated_hours
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:
- project_id
- project_name
- group_id
- group_name
- project_manager_id
- project_category_id
- priority
- request_id (optional)
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
- request_id (optional)
- Project_id (required)
- Contact_id (required)
- Time_spent (0.0 format)
- Notes
- Media_id (optional attachment ID into media library)
- Update_datetime (yyyy-mm-dd hh:mm:ss format)
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:
- project_update_id
- project_id
- project_name
- contact_id
- contact_firstname
- contact_lastname
- request_id (optional)
Each project’s search criteria must return a single unique project to modify.
Parameters to change can include:
- Project_id
- Contact_id
- Time_spent (0.0 format)
- Notes
- Media_id
- Update_datetime (yyyy-mm-dd hh:mm:ss format).
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>