The Responsive application currently supports the following Project Management APIs:
- Project Management APIs
- Create Project
- Get Project Details
- Attach File to Project
- Delete Project API
- Create Section
- Update Section
- Search Project Sections
- Response Details
- Attach File to Section
- Delete Section
- Create Question
- Response Field Details
- Update Question
- Attach File to Question
- Delete Question
- Add Comments
- Create Tasks
- Get Tasks
- List/Search Project Details
- Search Project Question Details
- Get Project Question Comments
- Project Attach File
- Get Project Activities
- Get Project Question Activities
- Attachment Download
- Get Cost Estimates
- Update Project Details
- Access Content from Active and Archived Projects
- Project Notes Report API
Project Management APIs
Create Project |
||
API URL |
/rfpserver/ext/v1/projects/create |
|
Description |
Creates a new project in the company. |
|
Type |
POST |
Request Body:
ProjectRequestVO
additionalContacts |
Array[String] List of users(email addresses) to be associated. The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled. The contact should belong to the same business unit if the business unit field has values string |
category |
Array[String] Category of the entity. |
clientAddress1 |
string example: 115 2nd Street Address1 of the client |
clientAddress1 |
string example: New york Address2 of the client |
clientEmail |
String Email of the Client |
clientName |
String Name of the Client |
clientPhone |
String Phone no of the Client |
customFields |
Object Use customField's mergeTag name as key and appropriate value. Custom field that are marked as required are mandatory.Please refer to the list of custom fields in the Organization settings for better clarity |
dealSize |
number($double) example: 123456 Value of the deal |
description |
string example: Authorization and Authentication Questionnaire A high level description/notes that explains about the entity(project/intake) |
dueDate* |
string($date-time) Due date of the entity (project/intake) to be completed. It should be a future date with format, yyyy-MM-dd HH:mm:ss XXX |
externalId |
string example: EXT-Project-001 External Id of the Project |
name* |
string example: TestEntity Name |
primaryBU |
string example: India Business Unit Name to be associated. This is mandatory only if business unit is enabled for the company |
primaryContact* |
string example: janedoe@rfpio.com Primary contact of the entity(project/intake). The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled.The contact should belong to the same business unit if the business unit field of this project/intake has values |
projectStage* |
string example: Submitted Stage of the project from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Stage |
projectStatus |
string example: IN_PROGRESS Status of the project. Allowed values are IN_PROGRESS,RESPONDED and CANCELED |
projectType* |
string example: RFP Type of the entity (project/intake) from the list of various types configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Type |
respondedDate | string($date-time) |
teamMemberList | Array[String ] |
Response
Project Details along with external ID.
Example
Request:
https://dev1.rfpio.com/rfpserver/ext/v1/projects/create
Request Body:
{
"additionalContacts": [],
"category": [],
"clientAddress1": "115 2nd Street",
"clientAddress2": "New york",
"clientEmail": "test@client.com",
"clientName": "Microsoft Corporation",
"clientPhone": "999-859-896",
"customFields": {},
"dealSize": 123456,
"description": "Authorization and Authentication Questionnaire",
"dueDate": "2023-07-06T08:16:38.526Z",
"externalId": "EXT-Project-001",
"name": "TestEntity",
"primaryBU": "India",
"primaryContact": "janedoe@rfpio.com",
"projectStage": "Submitted",
"projectStatus": "IN_PROGRESS",
"projectType": "RFP",
"respondedDate": "2023-07-06T08:16:38.526Z",
"teamMemberList": []
}
Response:
{
"additionalContacts": [],
"category": [],
"clientAddress1": "115 2nd Street",
"clientAddress2": "New york",
"clientEmail": "test@client.com",
"clientName": "Microsoft Corporation",
"clientPhone": "999-859-896",
"companyId": "",
"createdBy": "",
"createdDate": "2023-07-06T08:16:38.541Z",
"crmDetails": {
"instanceId": "",
"lastUpdateTs": "2023-07-06T08:16:38.541Z",
"objectId": "",
"objectType": "",
"recordId": "",
"type": "HUBSPOT"
},
"customFields": {},
"dealSize": 123456,
"description": "Authorization and Authentication Questionnaire",
"displayId": "",
"dueDate": "2023-07-06T08:16:38.542Z",
"externalId": "EXT-Project-001",
"id": "",
"lastUpdateTs": "2023-07-06T08:16:38.542Z",
"name": "TestEntity",
"percentage": 0,
"primaryBU": "India",
"primaryContact": "janedoe@rfpio.com",
"projectStage": "Submitted",
"projectType": "RFP",
"respondedDate": "2023-07-06T08:16:38.542Z",
"sectionCount": 0,
"status": "IN_PROGRESS",
"teamMembers": [],
"totalAnsweredCount": 0,
"totalQuestionCount": 0,
"updatedBy": ""
}
Get Project Details |
||
API URL |
/rfpserver/ext/v1/projects/{projectId} |
|
Description |
Get details of a project. |
|
Type |
GET |
|
Input (path param) |
projectId |
ID of the Project. Example: 59131e7be49e9c7589032cfe |
Output
Sample Response |
ProjectResponseExtVO(Please refer documentation) JSON object containing details of a project. { "additionalContacts": [], "archiveProjectId": "", "archivedBy": "", "archivedDate": "2023-07-06T08:22:33.684Z", "category": [], "clientAddress1": "115 2nd Street", "clientAddress2": "New york", "clientEmail": "test@client.com", "clientName": "Microsoft Corporation", "clientPhone": "999-859-896", "companyId": "", "createdBy": "", "createdDate": "2023-07-06T08:22:33.684Z", "crmDetails": { "instanceId": "", "lastUpdateTs": "2023-07-06T08:22:33.684Z", "objectId": "", "objectType": "", "recordId": "", "type": "HUBSPOT" }, "customFields": {}, "dealSize": 123456, "deletedBy": "", "deletedOnTs": "2023-07-06T08:22:33.684Z", "description": "Authorization and Authentication Questionnaire", "displayId": "", "dueDate": "2023-07-06T08:22:33.684Z", "externalId": "EXT-Project-001", "id": "", "lastUpdateTs": "2023-07-06T08:22:33.684Z", "name": "TestEntity", "percentage": 0, "primaryBU": "India", "primaryContact": "janedoe@rfpio.com", "projectStage": "Submitted", "projectType": "RFP", "respondedDate": "2023-07-06T08:22:33.684Z", "sectionCount": 0, "status": "IN_PROGRESS", "teamMembers": [], "totalAnsweredCount": 0, "totalQuestionCount": 0, "updatedBy": "" } |
Attach File to Project |
||
API URL |
/rfpserver/ext/v1/projects/{projectId}/attach-file |
|
Description |
Attach one or more files to a project. |
|
Type |
POST |
|
Input (Path param) |
projectId |
ID of the project
|
Headers |
Authorization Content-Type |
Bearer a-da819a102c7f69fbabdf679d47b85c9e multipart/form-data |
Body |
file |
<File to be attached> |
Output |
If the upload is successful, the response code will be 200. |
Example
Request:
https://{environment}/ext/v1/projects/5b45943d6737626be57c93c8/attach-file
Response:
No content with status code 200.
Delete Project API |
||
API URL |
/rfpserver/ext/v1/projects/delete |
|
Description |
This delete API is a soft operation, i.e, moves the projects to TRASH which will be automatically deleted in 30 days time. Exception : Archived projects will be deleted forever immediately without going into TRASH state. To fetch the ids of active/archived projects, check the response for /ext/v1/projects API |
|
Type |
POST |
|
Body |
{ "idList": [ "string" ] } |
DeleteRequestVO
idList(string,Optional): List of IDs for the Projects to be deleted |
Output |
If the delete operation is successful, the response would be the “DELETED_RECORDS” or “NON_DELETED_RECORDS” with the status code 200. |
Example
Request:
/rfpserver/ext/v1/projects/delete
{
"idList": ["63d8abf61acb2e4fcad3642f",
"64af7ce141de0a155945ebb7"]
}
Response:
[
{
"DELETED_RECORDS": [
"64af7ce141de0a155945ebb7"
],
"status": 200
},
{
"NON_DELETED_RECORDS": [
"63d8abf61acb2e4fcad3642f"
],
"status": 400
}
]
Create Section |
||
API URL | /rfpserver/ext/v1/projects/{projectId}/sections/create | |
Description | Creates a new section in a project. Can create one or more with a single request. | |
Type | POST | |
Input (path param) |
projectId |
ID of the Project under which the section has to be created. (Manndatory) Example: 59131e7be49e9c7589032cfe |
Input (request body) |
[ { "authorDueDate": "2023-10-16T06:27:45.149Z", "authorMessage": "Your help is needed in completing the section Compliance Questionnaire.", "authors": [], "description": "<div>This section contains question related to Compliance Questionnaire.</div>", "externalId": "EXT-001", "helpText": false, "name": "Compliance Questionnaire", "parentSectionId": "", "queueEmail": false, "reviewWorkflow": "ALL", "reviewerDueDate": "2023-10-16T06:27:45.149Z", "reviewerMessage": "Please review these answers as soon as possible.", "reviewers": [], "sortingOrder": 0, "trackAuthorMessageAsComments": false, "trackReviewerMessageAsComments": false } ] |
List<SectionSummaryExtVO> authorDueDate (string($date-time), optional): Due date and time for the section to be completed by Authors. authorMessage (string, optional): Email message to the authors. example: Your help is needed in completing the section Compliance Questionnaire. authors (Array[string], optional): Indicates the list of users (email address) to be assigned as Authors. description (string, optional): Place the HTML version of the section description.
externalId (string. optional): External Id of the section. example: EXT-001
helpText (boolean. name (string, mandatory): Indicates the task name. example: Compliance Questionnaire Name of the Section. parentSectionId (string. queueEmail (boolean,optional): reviewWorkflow (string, optional): Workflow type of the review process. Allowed values are [ANY, ALL, SEQUENTIAL] reviewerDueDate (string($date-time), optional): Due date of the section to be completed by reviewers.
reviewerMessage (string, optional): Email message to reviewers. example: Please review these answers as soon as possible. reviewers (Array[string], optional): Indicates the list of users (email address) to be assigned as Reviewers. sortingOrder ($double,optional) trackAuthorMessageAsComments (boolean, optional): Track author message as section comments. trackReviewerMessageAsComments (boolean, optional): Track reviewer message as section comments. |
Output Sample Response |
If creation is successful, it will send the array of section details with section ids in it. { "sections": [ { "answeredQuestionCount": 0, "authorDueDate": "2023-10-16T06:32:27.218Z", "authorMessage": "Your help is needed in completing the section Compliance Questionnaire.", "authors": [], "createTs": "2023-10-16T06:32:27.218Z", "createdBy": "john@responsive.io", "externalId": "EXT-001", "id": "5fe2d0061cf90a7a10b55fb5", "name": "Compliance Questionnaire", "parentId": "507f1f77bcf86cd799439011", "questionCount": 0, "reviewWorkflow": "ALL", "reviewerDueDate": "2023-10-16T06:32:27.218Z", "reviewerMessage": "Please review these answers as soon as possible.", "reviewers": [], "sortingOrder": 0, "status": "ASSIGNED" } ] } |
Update Section |
||
API URL | /rfpserver/ext/v1/projects/{projectid}/sections/(sectionId)/update | |
Description | Update an existing section in a project. | |
Type | POST | |
Input (path param, mandatory) |
projectId
sectionId |
ID of the Project. Example: 59131e7be49e9c7589032cfe Id of the section to be updated. |
Input (request body) |
{ "authorDueDate": "2023-10-16T09:22:58.832Z", "authorMessage": "Your help is needed in completing the section Compliance Questionnaire.", "authors": [], "externalId": "EXT-001", "name": "Compliance Questionnaire", "parentSectionId": "", "queueEmail": false, "reviewWorkflow": "ALL", "reviewerDueDate": "2023-10-16T09:22:58.832Z", "reviewerMessage": "Please review these answers as soon as possible.", "reviewers": [], "sortingOrder": 0, "trackAuthorMessageAsComments": false, "trackReviewerMessageAsComments": false } |
List<BaseSectionExtVO> authorDueDate(date-time, optional): Due date of the section to be completed by authors.
authorMessage(string, optional):Email message to authors. example: Your help is needed in completing the section Compliance Questionnaire.
authors(Array<string>, optional): List of users (only email addresses) to be assigned as author for this section.
externalID(string.optional): External ID of the section. example: EXT-001
name(string,): Indicates the section name. example: Compliance Questionnaire
parentSectionId(string,optional): Parent Section Id.
queueEmail(boolean,optional): If true, the mail will be queued that can be further sent to the respective authors and reviewers while clicking send notification in the pending notification queue.
reviewWorkflow(string, optional): Workflow type of the review process. Allowed values are [ANY, ALL, SEQUENTIAL] By default, ANY would be set if no value is given.
reviewerDueDate(string($date-time), optional): Due date of the section to be completed by reviewers.
reviewerMessage(string, optional): Email message to reviewers. example: Please review these answers as soon as possible.
reviewers(Array<string>, optional): List of users(only email addresses) to be assigned as reviewers for this section.
sortingOrder(number($double),optional) Sorting order of the section. Sorting order value must be greater than or equal to zero.
trackAuthorMessageAsComments(boolean, optional): Track author message as section comments.
trackReviewerMessageAsComments(boolean, optional): Track reviewer message as section comments. |
Output Sample Response |
JSON object containing the array of updated section details with section IDs in it. SectionSummaryResultExtVO{ "answeredQuestionCount": 0, "authorDueDate": "2023-10-19T10:40:46.163Z", "authorMessage": "Your help is needed in completing the section Compliance Questionnaire.", "authors": [], "createTs": "2023-10-19T10:40:46.163Z", "createdBy": "john@responsive.io", "externalId": "EXT-001", "id": "5fe2d0061cf90a7a10b55fb5", "name": "Compliance Questionnaire", "parentId": "507f1f77bcf86cd799439011", "questionCount": 0, "reviewWorkflow": "ALL", "reviewerDueDate": "2023-10-19T10:40:46.163Z", "reviewerMessage": "Please review these answers as soon as possible.", "reviewers": [], "sortingOrder": 0, "status": "ASSIGNED" } |
Search Project Sections |
||
API URL | /rfpserver/ext/v1/projects/{projectId}/sections/search | |
Description | Get the list of sections based on the query. | |
Type | POST | |
Input (path param, mandatory) |
projectId
limit
offset
|
ID of the Project from which sections are to be retrieved. Example: 5facc3452e660106a17cd782
Limits the no of sections in the response. If limit is given as -1, it returns only the total number of sections. The minimum value of the limit that can be set is 0,the maximum value of the limit that can be set is 100 .If no limit is set or limit is set to be 0, then 25 sections in the project are returned in the response.
Fetch the records starting from the specified value. Offset is used for pagination. For instance, when offset=0, it will fetch 0th record to nth(limit value) record. Default value : 0 |
Input (request body) |
{ "authors": [], "externalId": "", "flagged": "", "reviewers": [], "searchTerm": "", "sectionId": "", "status": "" } |
ProjectSectionSearchExternalVO{ authors(Array[string], optional): List of email addresses of authors of sections in the project., externalId(string, optional): Returns all the sections that match the ExternalID in the project. An empty ExternalID returns all sections. flagged(string,optional): Check whether the section is flagged or not. Allowed values are [true, false]. Returns the sections with flags, if true is given. Returns the sections without flags, if false is given. An empty flag returns all sections. reviewers(Array[string], optional): List of email addresses of reviewers of sections in the project.,
searchTerm (string, optional): Returns all sections that match the search term with the section name. An empty search term returns all sections.,
sectionId (string, optional): Returns the particular section if sectionId is provided.,
status(string, optional): Status of the section. Allowed values are [ASSIGNED, IN_PROGRESS, PENDING_REVIEW, ACCEPTED, DELETED]., } |
Output
Sample Response
|
ProjectSectionsExtVOList [Please refer to the documentation below.] JSON object containing details of matching questions of a project. { "limit": 0, "offset": 0, "sectionsList": [ { "answeredQuestionCount": 0, "authorCompletedList": [], "authorDueDate": "2023-10-19T11:09:41.290Z", "authorMessage": "Your help is needed in completing the section Compliance Questionnaire.", "authors": [], "createTs": "2023-10-19T11:09:41.290Z", "createdBy": "", "externalId": "", "guestAssignedToList": [], "guestMessage": "Your help is needed in completing the section Compliance Questionnaire.", "name": "", "parentId": "", "projectId": "", "questionCount": 0, "reviewCompletedList": [], "reviewWorkFlow": "ALL", "reviewerDueDate": "2023-10-19T11:09:41.290Z", "reviewerMessage": "Please review these answers as soon as possible.", "reviewers": [], "sectionId": "", "sortingOrder": 0, "status": "ASSIGNED" } ], "totalCount": 0 } |
Response Details
ProjectSectionsExtVOList
sectionsList |
Array[SectionDetailsExternalVO] List of sections details matches the query. |
totalCount |
Integer($int32) Total count of matching sections. |
limit |
Integer($int32) The number of records limited in the response. |
offset |
Integer($int32) Fetch the records starting from the specified value. Offset is used for pagination. For instance, when offset=0, it will fetch 0th record to nth(limit value) record.
|
SectionDetailsExternalVO
answeredQuestionCount |
integer($int32) Number of questions answered in the section. |
authorCompletedList |
[ List of users(email address) who completed author process. string] |
authorDueDate |
string($date-time) Due date of the section to be completed by Authors. |
authorMessage |
string example: Your help is needed in completing the section Compliance Questionnaire. Message to authors. |
authors |
[ List of users(email address) to be assigned as Authors. string] |
createTs |
string($date-time) Created date of the section. |
createdBy |
string User who created the section |
externalId |
string External Id of the Section. |
guestAssignedToList |
[ List of users(email address) to be assigned as guest. string] |
guestMessage |
string example: Your help is needed in completing the section Compliance Questionnaire. Message to guest. |
name |
string Name of the Section. |
parentId |
string Parent Section Id. |
projectId |
string Project Id of the Section. |
questionCount |
integer($int32) Number of questions present in the section. |
reviewCompletedList |
[ List of users(email address) who completed review process. string] |
reviewWorkFlow |
string Workflow type of the review process. Enum: [ ALL, ANY, CUSTOM, SEQUENTIAL ] |
reviewerDueDate |
string($date-time) Due date of the section to be completed by Reviewers. |
reviewerMessage |
string example: Please review these answers as soon as possible. Message to reviewers. |
reviewers |
[ List of users(email address) to be assigned as Reviewers. string] |
sectionId |
string Section Id. |
sortingOrder |
number($double) Sorting Order |
status |
string Status of the section. Enum: [ ASSIGNED, COMPLETED, DELETED, IN_PROGRESS, LOCKED, PENDING_REVIEW ] |
Get Section |
||
API URL | /rfpserver/ext/v1/projects/{projectid}/sections/(sectionID)/get | |
Description | Deletes a section in a project. | |
Type | GET | |
Input (path param, mandatory) |
projectId
sectionId |
ID of the Project from which section has to be fetched.. Example: 59131e7be49e9c7589032cfe
ID of the section to be fetched. |
Input (request body) | Not applicable | Not applicable |
Output | SectionDetailsExternalVO |
Attach File to Section |
||
API URL |
/rfpserver/ext/v1/projects/{projectId}/sections/{sectionId}/attach-file |
|
Description |
Attach one or more files to an existing section. |
|
Type |
POST |
|
Input (Path param) |
projectId
sectionId |
ID of the project Example: 59131e7be49e9c7589032cfe
ID of the section |
Headers |
Authorization Content-Type |
Bearer a-da819a102c7f69fbabdf679d47b85c9e multipart/form-data |
Body |
file |
<File to be attached> |
Output |
If the upload is successful, the response code will be 200. |
Example
Request:
https://{environment}/rfpserver/ext/v1/projects/5b45943d6737626be57c93c8/sections/601be98b12ef8d3696b437e7/attach-file
Response:
No content with status code 200.
Delete Section |
||
API URL | /rfpserver/ext/v1/projects/{projectid}/sections/(sectionID)/delete | |
Description | Deletes a section in a project. | |
Type | POST | |
Input (path param, mandatory) |
projectId
sectionId |
ID of the Project. Example: 59131e7be49e9c7589032cfe
ID of the section to be deleted. |
Input (request body) | Not applicable | Not applicable |
Output Sample Response |
If successful, the system will send status code 200. N/A |
Create Question |
||
API URL | /rfpserver/ext/v1/projects/{projectId}/sections/{sectionId}/questions/create | |
Description | Creates a new question in a section. | |
Type | POST | |
Input (path param) | projectId |
ID of the Project. Example: 59131e7be49e9c7589032cfe |
Input (request body) |
[ { "question": "testQuestion",
"status": "NOT_ANSWERED",
"answers": [ { "answerHeader": "Response", "answerType": "DROPDOWN", "answerOptions": [ { "valueInFile": "Yes", "valueInUI": "True", "standardResponse": "string" } ], "answerInPlainText": "True", "answerInHTML": "<div>True</div>", "optional": false } ], "authorList": [ "string" ],
"reviewerList": [ "string" ], "reviewWorkflow": "ANY",
"parentQuestionId": "507f1f77bcf86cd799439011", "sortingOrder": 0,
"subQuestionVisibilityConfig": { "configs": [ { "answerHeader": "Response", "answerType": "DROPDOWN", "values": [ "string" ] } ] }, "tags": ["new"],"externalId": "EXT-Q-001" } ] |
Array [QuestionDetailsExtVO] QuestionDetailsExtVO question(string,mandatory): Question Text
status([string,optional): status of the question. Valid values are [ ANSWERED or NOT_ANSWERED
answers (Array[AnswerExtVO]) Please refer the AnswerExtVO documentation.
authorList(Array[email address], optional): List of users (email address) to be assigned as Authors. Author should have at least one of the following permissions: [RESPOND_ALL_SECTION, RESPOND_MY_SECTION, UPDATE_ALL_SECTION,UPDATE_MY_SECTION]. The author should belong to the same business unit of the project's business unit.
reviewerList(Array[email address], optional): List of users (email address) to be assigned as Reviewers. The conditions are similar to the author attribute.
reviewWorkflow(string, optional): Workflow type of the review process. Valid values are [ANY, ALL, SEQUENTIAL] By default, ANY would be set if no value is given.
parentQuestionId(string, optional): Workflow type of the review process. Allowed values are: [ANY, ALL, SEQUENTIAL]
sortingOrder(double, optional): Sorting order of the Question. Sorting order value must be greater than or equal to zero.
subQuestionVisibilityConfig (SubQuestionVisibilityExtVO, optional): Sub Question Visibility Configuration of the Question. Users can now set the visibility of a sub question only when the parent question response is true or false. To set the visibility of the sub question, the parent question should have a RADIO or DROPDOWN answer type.
externalId(string. optional): External Id of the question.
tags(Array[String], optional): Tags for the Question.
questionNum(string, optional): If value is not provided, the question number will be auto-generated |
Output Sample Response |
JSON object containing the array of question details with question id and external id. { "baseQuestionDetails": [ { "questionId": "5dd4ebf9c24e6b18daa44b6b", "externalId": "EXT-Q-001" } ] } |
Response Field Details
AnswerExtVO Response of the Question |
|
answerHeader | Answer Header (String) |
answerType | Type of the answer. Allowed values are ["RICH_TEXT" or "BASIC_RICH_TEXT" or "DATE" or "DROPDOWN" or "CHECKBOX" or "RADIO"], |
answerOptions |
Answer Options (Optional) Array[AnswerOptionsExtVO] Applicable only for DROPDOWN, CHECKBOX, RADIO answer types., |
answerInPlainText |
Plain Answer Text. (String, Optional). Set the answer for the response. If the answer type is DATE, then the answer format should be yyyy-MM-dd. If the answer type is CHECKBOX, then the answer format should be "[value1,value2,...]".For Other types, the answer format should be "value", |
answerInHTML |
Rich Text Answer (String, Optional). In case of RICH_TEXT, BASIC_RICH_TEXT answer type, place HTML version of the answer here. |
optional |
Optional (boolean). Set answer response is optional or mandatory. |
AnswerOptionsExtVO Answer Options |
|
valueInFile |
valueInFile (string) Value to be shown in the document while exporting., |
valueInUI |
valueInUI (string) Value to be shown in the UI as option. Applicable only to CHECKBOX, DROPDOWN, RADIO answer types., |
standardResponse |
standardResponse (string, optional) To provide a standard response from the list configured in Organization settings -> Content Library -> AL Standard Response. Applicable for both DROPDOWN and RADIO answer types. |
SubQuestionVisibilityExtVO Sub question visibility setting of the Question |
|
configs |
Array[ SubQuestionVisibilitySettingConfigExtVO ] |
SubQuestionVisibilitySettingConfigExtVO Configuration List for sub-question visibility |
|
answerHeader | Answer Header (String) |
answerType | Answer Type (String) Allowed values are “DROPDOWN” or “RADIO”. |
values |
Matching values to make sub-questions visible. (Array[values]) |
Update Question |
||
API URL | /rfpserver/ext/v1/projects/{projectId}/sections/{sectionId}/questions/{questionId}/update | |
Description | Update an existing question in a project. | |
Type | POST | |
Input (path param) |
projectId
sectionId questionId |
ID of the Project. Example: 5facc3452e660106a17cd782 ID of the Section. Example: 5f7eae66131dc2389d9ad268 ID of the Question. Example: 5f7eae67131dc2389d9ad26f |
Input (request body) |
{ "question": "Do you have any backup option?",
"status": "ANSWERED",
"answers":[ { "answerHeader":”Response”, "answerType": "DROPDOWN", "answerOptions": [ { "valueInFile": ”Yes” "valueInUI": ”True” "standardResponse": ”” }, { "valueInFile": "No", "valueInUI": "False", "standardResponse": "" } ], "answerInPlainText": ”False”, "answerInHTML": ””, "optional": false } ] } |
BaseQuestionExtVO { question (string, optional): Updates the given Question text.,
status (string, optional): Updates the status of the question. Allowed values are: [ANSWERED or NOT_ANSWERED].,
answers (Array[AnswerExtVO], optional):Updates the Response of the question., } For AnswerExtVO, [Please refer to the documentation.]
questionNum (string, optional): If value is not provided, the question number will be auto-generated.
tags (Array[String], optional): Tags for Question.
|
Output
Sample Response |
ProjectSectionsExtVOList [Please refer documentation] JSON object containing details of matching questions of a project. { "questionId": "5f7eae67131dc2389d9ad26f", "sectionId": "5f7eae66131dc2389d9ad268", "status": "ANSWERED", "flags": [], "tags": ["new"], "type": "QUESTION", "contentType": "QUESTION", "question": "Do you have any backup option?", "autoResponded": false, "starRating": 5, "helpText": false, "collectionList": [], "alOwners": [ "BOTH" ], "approvers": [], "answers": [ { "id": "5f7eae67131dc2389d9ad26e", "answer": "False", "answerText": "False", "answerType": "DROPDOWN", "answerOptions": [ { "key": "Yes", "value": "True", "standardResponse": "" }, { "key": "No", "value": "False", "standardResponse": "" } ], "answerHeader": "Response", "maxType": "CHARACTER", "maxCharCount": 0, "limitExceed": false, "skipIndex": false, "optional": false, "lastUpdateTs": "2021-04-22 07:51:15 Z", "answeredBy": "", "translatedAnswerMap": {} } ], "createTs": "2020-10-08 06:15:03 Z", "clarifications": [], "authorList": [ "bobby@rfpio.com" ], "reviewerList": [], "hidden": false, "alCustomReviewCycleInDays": -1 } |
Attach File to Question |
||
API URL |
/rfpserver/ext/v1/projects/{projectId}/sections/{sectionId}/questions/{questionId}/answer/attach-file |
|
Description |
Attach one or more files to an existing question. |
|
Type |
POST |
|
Input (Path param) |
projectId
sectionId
questionId |
ID of the project Example: 59131e7be49e9c7589032cfe
ID of the section
ID of the question |
Headers |
Authorization Content-Type |
Bearer a-da819a102c7f69fbabdf679d47b85c9e multipart/form-data |
Body |
file |
<File to be attached> |
Output |
If the upload is successful, the response code will be 200. |
Example
Request:
https://{environment}/rfpserver/ext/v1/projects/5b45943d6737626be57c93c8/sections/601be98b12ef8d3696b437e7/attach-file
Response:
No content with status code 200.
Delete Question |
||
API URL | /rfpserver/ext/v1/projects/{projectid}/sections/(sectionId)/questions/(questionId)/delete | |
Description | Deletes a question from a section in a project. | |
Type | POST | |
Input (path param) |
projectId
sectionId
questionId |
ID of the Project. Example: 59131e7be49e9c7589032cfe
ID of the question's section.
ID of the question. |
Input (request body) | Not applicable | Not applicable |
Output Sample Response |
If successful, the system will send status code 200. N/A |
Add Comments |
||
API URL |
/rfpserver/ext/v1/projects/{projectid}/comments/add |
|
Description |
Creates a new comment in a project. Can create one or more with a single request. |
|
Type |
POST |
|
Input (path param) |
projectId |
ID of the Project. Example: 59131e7be49e9c7589032cfe |
Input (request body) |
{ "entityType": "SECTION",
"entityId": "string",
"text": "string", "mentions": [ "string" ], "parentId": "string" } } |
List<ProjectsDiscussionExtVO>
entityType(string): Type of the entity to which comment to be added. Allowed values are “SECTION” or “QUESTION”.
entityID(string, optional): Id of the entity type (section or question) under comment to be added.
comment ( CommentsExtVO ): comments
Please refer to the CommentsExtVO documentation. |
Output
Sample Response |
If successful, the system will send status code 200.
N/A |
Response Field Details
CommentVO Contains detail of a comment. |
|
text | Comment Text (String) |
mentions | Users to be mentioned in the comment. (Array[emails]) |
parentId | Id of the parent comment, under which the new comment to be added. |
Create Tasks |
||
API URL |
/rfpserver/ext/v1/projects/create-tasks |
|
Description |
Creates a new task in the project. |
|
Type |
POST |
|
Input (path param) |
projectId |
ID of the Project. Example: 59131e7be49e9c7589032cfe |
Input (request body) |
{ "projectId": "5de5e9ea9ef1d93c4f2c2dd3", "name": "test", "description": "test", "assignedToList": [ "serah@abc.com" ], "dueDate": "2019-12-31T05:29:44.151Z", "startDate": "2019-12-31T05:29:44.151Z", "checkList": [ { "name": "test", "isCompleted": false, "completedDate": "2019-12-31T05:29:44.151Z" } ], "priority": "NONE" } |
TaskExternalRequestVO { projectId (string): Indicates the unique ID of the project for which task has to be created. name (string,): Indicates the task name. description (string, optional): Indicates the task description. assignedToList (Array[string], optional): Indicates the list of users to whom the task is assigned.
dueDate (date-time, optional): Indicates the task due date.
startDate (date-time, optional): Indicates the task start date.
checkList (Array[CheckListVO], optional),
priority (string, optional) = ["NONE" or "HIGH" or "MEDIUM" or "LOW"] } CheckListVO { name (string, optional), isCompleted (boolean, optional), completedDate (date-time, optional) }
|
Output Sample Response |
JSON object containing details of the created task. { "projectId": "5de5e9ea9ef1d93c4f2c2dd3", "name": "test", "description": "test", "assignedToList": [ "serah@abc.com" ], "dueDate": "2019-12-30 21:29:44 -08:00", "startDate": "2019-12-30 21:29:44 -08:00", "checkList": [ { "name": "test", "isCompleted": false } ], "priority": "NONE" } |
Get Tasks |
||
API URL |
/rfpserver/ext/v1/projects/tasks |
|
Description |
Gets the list of tasks by projectId and/or userId. Only Admin or SuperAdmin can view the tasks. |
|
Type |
GET |
|
Input (path param) |
projectId |
ID of the Project Example: 5cca97009b2ffe5ff95707a7 |
userId |
Indicates the user’s unique ID. |
|
Output Sample Response |
JSON object containing all tasks associated with the project or user. [ { "projectId": "5de5e9ea9ef1d93c4f2c2dd3", "name": "RFP Submission Due", "status": "Assigned", "type": "PROJECT_TASK", "assignedToList": [ "serah@abc.com" ], "checkList": [], "priority": "NONE", "dueDate": "2019-12-12 18:00:00 -08:00", "startDate": "2019-12-02 20:51:54 -08:00" }, { "projectId": "5de5e9ea9ef1d93c4f2c2dd3", "name": "test", "description": "test", "status": "Assigned", "type": "PROJECT_TASK", "assignedToList": [ "serah@abc.com" ], "checkList": [ { "name": "test", "isCompleted": false } ], "priority": "NONE", "dueDate": "2019-12-30 21:29:44 -08:00", "startDate": "2019-12-30 21:29:44 -08:00" } ] |
List/Search Project Details |
||
API URL |
/rfpserver/ext/v1/projects |
|
Description |
List out all projects which match out any filters, if given. |
|
Type |
POST |
|
Input (request body) |
{ "category": [], "clientName": "Microsoft corporation", "crmObjectId": "0067F00000DfZuEQAV", "crmObjectType": "Opportunity", "crmType": "SALESFORCE", "externalId": "", "limit": 25, "offset": 0, "projectName": "Accounting", "projectStatus": [], "stage": [] } |
ProjectSearchQueryExternalVO { category (Array[string], optional): Project Category., clientName (string, optional): Name of the client. Returns all projects that match the search term in the client name. An empty search term returns all projects., crmObjectId (string, optional): CRM object ID to which the project is associated., crmObjectType (string, optional): CRM Type to which the project is associated. It can be one of these values only - Account, Lead, or Opportunity, crmType (string, optional): CRM to which the project is associated. It can be one of these values only - SALESFORCE, PIPEDRIVE, PIPELINE_DEALS, XAIT_PORTER, or MICROSOFT_TEAMS,MICROSOFT_DYNAMICS_CRM, HUBSPOT, externalId (string): External ID of the project. limit (integer): Number of limited records to be displayed in the result. If the limit=-1, then only the total number of records (just the count) matched will be returned in the response. offset (integer): Fetch the records starting from the specified value. Offset is used for pagination. For instance, when offset=0, it will fetch 0th record to nth (limit value) record. projectName (string, optional): Project Name. Returns all projects that match the search term in the name. An empty search term returns all projects., projectStatus (Array[string], optional): Status of the project. Multiple statuses can be given. Accepted values are IN_PROGRESS, RESPONDED, CANCELED, or DELETED., stage (Array[string], optional): Project Stage. Multiple stage names can be given., } |
Output
Sample Response |
ProjectExtVOList (Please refer documentation) JSON object containing the list of projects that matches given filters. { "limit": 0, "offset": 0, "projects": [ { "additionalContacts": [], "archiveProjectId": "", "archivedBy": "", "archivedDate": "2023-07-06T08:08:23.401Z", "category": [], "clientAddress1": "115 2nd Street", "clientAddress2": "New york", "clientEmail": "test@client.com", "clientName": "Microsoft Corporation", "clientPhone": "999-859-896", "companyId": "", "createdBy": "", "createdDate": "2023-07-06T08:08:23.401Z", "crmDetails": { "instanceId": "", "lastUpdateTs": "2023-07-06T08:08:23.401Z", "objectId": "", "objectType": "", "recordId": "", "type": "HUBSPOT" }, "customFields": {}, "dealSize": 123456, "deletedBy": "", "deletedOnTs": "2023-07-06T08:08:23.402Z", "description": "Authorization and Authentication Questionnaire", "displayId": "", "dueDate": "2023-07-06T08:08:23.402Z", "externalId": "EXT-Project-001", "id": "", "lastUpdateTs": "2023-07-06T08:08:23.402Z", "name": "TestEntity", "percentage": 0, "primaryBU": "India", "primaryContact": "janedoe@rfpio.com", "projectStage": "Submitted", "projectType": "RFP", "respondedDate": "2023-07-06T08:08:23.402Z", "sectionCount": 0, "status": "IN_PROGRESS", "teamMembers": [], "totalAnsweredCount": 0, "totalQuestionCount": 0, "updatedBy": "" } ], "totalResultsCount": 0 } |
Search Project Question Details |
||
API URL |
/rfpserver/ext/v1/projects/search-project-questions/{projectId} |
|
Description |
Get details of questions in a project which matches the given filters. |
|
Type |
POST |
|
Input (path param) |
projectId
limit |
ID of the Project. Example: 59131e7be49e9c7589032cfe Indicates the count of results to be displayed. If the limit is set as -1 or no limit is set, all questions will be fetched. |
Input (request body) |
{ "searchTerm": "social",
"sectionId": "5d3a7bc200cf50361992f214",
"questionId": “5d3a7bc300cf50361992f21f”,
"status": "ANSWERED",
"flagList": [ "Follow-up" ], "flagSearchOption": null,
"tags": "security",
"authors": ["john@abc.com"],
"lastUpdatedBy": john@abc.com,
"autoResponded": false } |
ProjectQuestionSearchExternalVO { searchTerm (string, optional): Returns all questions that match the search term in the question. An empty search term returns all questions., sectionId (string, optional): Returns only questions from a particular section if sectionId is provided.,
questionID (string, optional): Returns the particular question if questionId is provided.,
status (string, optional): Status of the question. It can be either ANSWERED OR NOT_ANSWERED.,
flagList (Array[string], optional): To filter the flagged questions by flag name.,
flagSearchOption (string, optional): To filter the questions by flag. "NOT-FLAGGED" to filter the not flagged questions. "FLAGGED" to return the flagged question.,
tags (Array[string], optional): List of tags associated with questions in the project., authors (Array[string], optional): List of email addresses of authors of questions in the project., lastUpdatedBy (Array[string], optional): List of email addresses of users who have updated questions in the project., autoResponded (boolean, optional): Filters auto responded questions, if true is given; else returns all questions. } |
Output
Sample Response |
ProjectQuestionsExtVOList [Please refer documentation] JSON object containing details of matching questions of a project. { "totalCount": 1, "limit": 25, "startIndex": 0, "endIndex": 0, "questions": [ { "questionId": "5d3a7bc300cf50361992f21f", "sectionId": "5d3a7bc200cf50361992f214", "status": "ANSWERED", "flags": [ "Follow-up" ], "tags": [ "security" ], "type": "QUESTION", "ansLibUsedType": "MANUAL", "contentType": "QUESTION", "question": "Please list and provide links to social media communication channels for your company (i.e. blog, Twitter account, Facebook group, etc.).", "autoResponded": false, "starRating": 3, "helpText": false, "collectionList": [], "alOwners": [], "approvers": [], "answers": [ { "id": "5d3a7bc300cf50361992f21e", "answer": "<div>please see the attached document</div>", "answerText": "please see the attached document", "answerType": "RICH_TEXT", "answerOptions": [], "answerHeader": "Response", "maxType": "CHARACTER", "maxCharCount": 0, "limitExceed": false, "skipIndex": false, "optional": false, "lastUpdateTs": "2020-03-31 04:10:04 -07:00", "answeredBy": "john@abc.com" } ], "createTs": "2019-07-25 21:04:19 -07:00", "clarifications": [], "authorList": [ "john@abc.com", "nava@abc.com" ], "reviewerList": [ "sam@abc.com", "noel@abc.com" ], "hidden": false, "alCustomReviewCycleInDays": 90 } ] } |
Get Project Question Comments |
||
API URL |
/rfpserver/ext/v1/projects/get-comments? |
|
Description |
Get all comments associated with questions in a project. |
|
Type |
POST |
|
Input (request body) |
{ "projectId": "string",
"entityType": "string",
"entityIdList": [ "string" ]
"questionIdList": [ "string" ] } |
ExternalQuestionCommentVO { projectId (string, optional): Indicates the unique project ID,
entityType (string): Indicates the entity type of the comment. Allowed values are SECTION or QUESTION.,
entityIdList (Array[string], optional): Indicates the list of entity IDs for which comments have to be retrieved.
questionIdList (Array[string], optional): Indicates the list of question IDs for which comments have to be retrieved. } |
Output
Sample Response |
ProjectExternalDiscussionVO (please refer documentation) JSON object containing all comments associated with the given project questions. [ { "id": "5e8330106228538692601ad0", "projectId": "5d3a7ba0a167e235dc6b37f2", "entityId": "5d3a7bc300cf50361992f21c", "comments": [ { "id": "5e832f6ac269254ffc55b128", "text": "plz verify this", "parent": true, "publicChat": true, "parentId": "5e832f6ac269254ffc55b128", "userName": "john@abc.com", "status": "UN_RESOLVED", "date": "2020-03-31 04:54:18 -07:00", "mentions": [ "sam@abc.com" ], "files": [] } ], "follow": false, "createdBy": "john@abc.com", "followersList": [ "john@abc.com", "sam@abc.com" ] }, { "id": "5e8330336228538692609aad", "projectId": "5d3a7ba0a167e235dc6b37f2", "entityId": "5d3a7bc300cf50361992f21f", "comments": [ { "id": "5e832f8dc269254ffc55b141", "text": "Can you verify this plz?", "parent": true, "publicChat": true, "parentId": "5e832f8dc269254ffc55b141", "userName": "john@abc.com", "status": "UN_RESOLVED", "date": "2020-03-31 04:54:53 -07:00", "mentions": [ "ann@abc.com" ], "files": [] } ], "follow": false, "createdBy": "john@abc.com", "followersList": [ "sam@abc.com", "john@abc.com" ] }, { "id": "5e8330436228538692611e8f", "projectId": "5d3a7ba0a167e235dc6b37f2", "entityId": "5d3a7bc300cf50361992f222", "comments": [ { "id": "5e832f6e10a83e3231220869", "text": "Review plz", "parent": true, "publicChat": true, "parentId": "5e832f6e10a83e3231220869", "userName": "john@abc.com", "status": "UN_RESOLVED", "date": "2020-03-31 04:54:22 -07:00", "mentions": [ "anna@abc.com" ], "files": [] } ], "follow": false, "createdBy": "john@abc.com", "followersList": [ "anna@abc.com", "john@abc.com" ] } ] |
Project Attach File |
||
API URL |
/rfpserver/ext/v1/projects/{projectId}/attach-file |
|
Description |
Attach file to a project. |
|
Type |
POST |
|
Input (path param) |
projectId |
ID of the Project. Example: 5cca97009b2ffe5ff95707a7 |
Request content type |
multipart/form-data |
|
Request Content |
file=/Users/chuck/Desktop/file.docx |
|
Response |
The file gets added to the Project and will be listed in the Documents tab of it in RFPIO. |
Get Project Activities |
||
API URL |
/rfpserver/ext/v1/projects/{projectId}/activities |
|
Description |
Get all activities associated with a specific project. |
|
Type |
GET |
|
Input (path param) |
projectId |
ID of the Project. Example: 5cca97009b2ffe5ff95707a7 |
lastActivityId |
Optional parameter. This is used for pagination. ID of the last record in the previous response can be specified to get the next set of result. |
|
limit |
Optional parameter. Limits the number of activities in the response. If no limit is set, default value 25 is set. |
|
Output
Sample Response |
ProjectActivitiesExtVOList (please refer documentation) JSON object containing all activities associated with the given project. { "activitiesList": [ { "activityDate": "2023-07-06T08:23:19.272Z", "companyId": "", "description": "", "entityId": "", "id": "", "performedBy": "", "projectEntity": {}, "projectId": "", "type": "ACTIVITY_PACKAGE_PUBLISHED_TO_INTEGRATION" } ] } |
Get Project Question Activities |
||
API URL |
/rfpserver/ext/v1/projects/{projectId}/get-question-activities?lastActivityId=<lastActivityId>&limit=25 |
|
Description |
Get all activities associated with project questions. |
|
Type |
GET |
|
Input (path param) |
projectId |
ID of the Project. Example: 5cca97009b2ffe5ff95707a7 |
lastActivityId |
Optional parameter. This is used for pagination. ID of the last record in the previous response can be specified to get the next set of result. |
|
limit |
Optional parameter. Limits the number of activities in the response. If no limit is set, default value 25 is set. |
|
Output
Sample Response |
QuestionActivityExternalVOList (please refer documentation) JSON object containing all activities associated with the given project. { "questionActivityVOList": [ { "id": "5d92d8e69b2ffe44c5254dcb", "companyId": "5c415cac34ff91377fac2218", "description": "message.ANSWER_COMPLETED_QUESTION", "performedBy": "john@abc.com", "activityDate": "2019-09-30 21:41:10 -07:00", "oldValues": { "Response": "", "Status": "Not Answered" }, "newValues": { "Response": "<div><div>532670</div></div>", "Status": "Answered", "Answer Library Usage Type": "Answer Library Used" }, "additionalProperties": { "Response_datatype": "RICH_TEXT" }, "projectId": "5cca97009b2ffe5ff95707a7", "sectionId": "5d92d810a167e21ff23805dc", "questionId": "5d92d838a167e21ff23805f4", "type": "ANSWER_COMPLETED" }, { "id": "5d92d8cf9b2ffe44c5254dc4", "companyId": "5c415cac34ff91377fac2218", "description": "message.ANSWER_COMPLETED_QUESTION", "performedBy": "john@abc.com", "activityDate": "2019-09-30 21:40:47 -07:00", "oldValues": { "Response": "", "Status": "Not Answered" }, "newValues": { "Response": "<div><div>500041</div></div>", "Status": "Answered", "Answer Library Usage Type": "Answer Library Used" }, "additionalProperties": { "Response_datatype": "RICH_TEXT" }, "projectId": "5cca97009b2ffe5ff95707a7", "sectionId": "5d92d810a167e21ff23805dc", "questionId": "5d92d8139b2ffe44c5254d6b", "type": "ANSWER_COMPLETED" }, { "id": "5d92d838a167e21ff23805f5", "companyId": "5c415cac34ff91377fac2218", "description": "message.QUESTION_CREATED", "performedBy": "john@abc.com", "activityDate": "2019-09-30 21:38:16 -07:00", "additionalProperties": { "Response_datatype": "RICH_TEXT" }, "details": { "Question": "sugar not reliable" }, "projectId": "5cca97009b2ffe5ff95707a7", "sectionId": "5d92d810a167e21ff23805dc", "questionId": "5d92d838a167e21ff23805f4", "type": "CREATED" } ] } |
Attachment Download |
||
API URL |
/rfpserver/ext/v1/projects/attachments/{companyId}/{fileId} |
|
Description |
Downloads the specified attachment file |
|
Type |
GET |
|
Input |
companyId and fileId in the URL
|
In Project records, if there are any attachments, each attachment will have companyId and fileId which can be used here to download the file. |
Output |
Complete File |
Get Cost Estimates |
||
API URL |
/rfpserver/ext/v1/projects/get-cost-estimates |
|
Description |
Gets a project’s cost estimates |
|
Type |
GET |
|
Input |
projectId and sectionId
|
projectId is a required field. You can specify the projectId along with the sectionId to get cost estimates of a project. |
Output |
{ "projectCostList": [ { "id": "5ea9565ad341c8220a8bc24a", "companyId": "5d19efb7a167e26d88c36e32", "projectId": "5d3a7ba0a167e235dc6b37f2", "notes": "Draft", "cost": 25000, "effort": 300, "createdBy": "john@abc.com", "createdDate": "2020-04-29 10:26:34 Z", "lastUpdateTs": "2020-04-29 10:26:34 Z" }, { "id": "5ea95666d341c8220a8bc25a", "companyId": "5d19efb7a167e26d88c36e32", "projectId": "5d3a7ba0a167e235dc6b37f2", "notes": "Planning", "cost": 30000, "effort": 120, "createdBy": "john@abc.com", "createdDate": "2020-04-29 10:26:46 Z", "lastUpdateTs": "2020-04-29 10:26:46 Z" } ] } |
Update Project Details |
||
API URL |
/rfpserver/ext/v1/projects/update/{projectId}
|
|
Description |
Updates existing project details in a company. |
|
Type |
POST |
|
Input (path param) |
projectId |
Project ID of the Project. Eg: 59131e7be49e9c7589032cfe |
Input (request body) |
{ "additionalContacts": [], "category": [], "clientAddress1": "115 2nd Street", "clientAddress2": "New york", "clientEmail": "test@client.com", "clientName": "Microsoft Corporation", "clientPhone": "999-859-896", "customFields": {}, "dealSize": 123456, "description": "Authorization and Authentication Questionnaire", "dueDate": "2023-07-06T08:19:53.533Z", "externalId": "EXT-Project-001", "name": "TestEntity", "primaryBU": "India", "primaryContact": "janedoe@rfpio.com", "projectStatus": "IN_PROGRESS", "projectType": "RFP", "respondedDate": "2023-07-06T08:19:53.533Z", "teamMemberList": [] } |
BaseProjectRequestExtVO { additionalContacts (array[string], optional), The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled. The contact should belong to the same business unit if the business unit field has values.
category (array[string], optional), Category of the entity. clientAddress1 (string, optional): Address1 of the client. clientAddress2 (string, optional): Address2 of the client. clientEmail (string, optional): Email Address of the client. clientName (string, optional): Name of the client. clientPhone (string, optional): Contact number of the client. customFields (object, optional): Custom Fields. Use customField's mergeTag name as key and appropriate value. Custom field that are marked as required are mandatory. Please refer to the list of custom fields in the Organization settings for better clarity. dealSize (number($double), optional): Value of the deal. description (string, optional): A high level description/notes that explains about the entity, dueDate (string($date-time), required): Due data of the entity (project/intake) to be completed. It should be a future date with format, yyyy-MM-dd HH:mm:ss XXX. externalId (string, optional): External Id of the Project. name (string, required): Name of the entity. primaryBU (string, optional): Business unit name to be associated. primaryContact(string, required): Primary contact of the entity(project/intake). The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled. The contact should belong to the same business unit if the business unit field of this project/intake has values. projectStatus (string, optional): Status of the project. Allowed values are IN_PROGRESS,RESPONDED and CANCELED projectType (string, required): Type of the entity (project/intake) from the list of various types configured in the organization settings. Allowed values can be referred from, " + "Organization settings->Project->Type. |
Output
Sample Response |
JSON object containing details of the updated project. { "additionalContacts": [], "category": [], "clientAddress1": "115 2nd Street", "clientAddress2": "New york", "clientEmail": "test@client.com", "clientName": "Microsoft Corporation", "clientPhone": "999-859-896", "companyId": "", "createdBy": "", "createdDate": "2023-07-06T08:19:53.567Z", "crmDetails": { "instanceId": "", "lastUpdateTs": "2023-07-06T08:19:53.567Z", "objectId": "", "objectType": "", "recordId": "", "type": "HUBSPOT" }, "customFields": {}, "dealSize": 123456, "description": "Authorization and Authentication Questionnaire", "displayId": "", "dueDate": "2023-07-06T08:19:53.567Z", "externalId": "EXT-Project-001", "id": "", "lastUpdateTs": "2023-07-06T08:19:53.567Z", "name": "TestEntity", "percentage": 0, "primaryBU": "India", "primaryContact": "janedoe@rfpio.com", "projectStage": "Submitted", "projectType": "RFP", "respondedDate": "2023-07-06T08:19:53.567Z", "sectionCount": 0, "status": "IN_PROGRESS", "teamMembers": [], "totalAnsweredCount": 0, "totalQuestionCount": 0, "updatedBy": "" } |
Response Field Details
ProjectExtVOList List of projects. |
|
projects |
List of projects (Array[ProjectResponseExtVO ]). Please refer ProjectResponseExtVO documentation. |
totalResultsCount |
Total count of matching projects (integer($int32)). |
limit |
The number of records limited in the response (integer($int32)). |
offset |
integer($int32) |
ProjectResponseExtVO Details of a project. |
|
additionalContacts |
List of users(email addresses) to be associated. The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled. The contact should belong to the same business unit if the business unit field has values |
archiveProjectId | string |
archivedBy | string |
archivedDate | string($date-time) |
category | Category of the entity |
clientAddress1 |
string example: 115 2nd Street Address1 of the client |
clientAddress2 |
string example: New york Address2 of the client |
clientEmail |
string example: test@client.com Email Address of the client |
clientName |
string example: Microsoft Corporation Name of the client |
clientPhone |
string example: 999-859-896 Contact number of the client |
companyId | string |
createdBy | string |
createdDate | string($date-time) |
crmDetails | CRM Details |
customFields | Use customField's mergeTag name as key and appropriate value. Custom field that are marked as required are mandatory.Please refer to the list of custom fields in the Organization settings for better clarity |
dealSize |
number($double) example: 123456 Value of the deal |
deletedBy | string |
deletedOnTs | string($date-time) |
description |
string example: Authorization and Authentication Questionnaire A high level description/notes that explains about the entity(project/intake) |
displayId | string |
dueDate* | string($date-time)
Due date of the entity (project/intake) to be completed. It should be a future date with format, yyyy-MM-dd HH:mm:ss XXX |
externalId |
string example: EXT-Project-001 External Id of the Project |
id |
string |
lastUpdateTs |
string($date-time) |
name* |
string example: TestEntity Name |
percentage |
integer($int32) |
primaryBU |
string example: India Business Unit Name to be associated. This is mandatory only if business unit is enabled for the company |
primaryContact* |
string example: janedoe@rfpio.com Primary contact of the entity(project/intake). The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled.The contact should belong to the same business unit if the business unit field of this project/intake has values |
projectStage* |
string example: Submitted Stage of the project from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Stage |
projectType* |
string example: RFP Type of the entity (project/intake) from the list of various types configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Type |
respondedDate |
string($date-time) |
sectionCount |
integer($int32) |
status |
string example: IN_PROGRESS Status of the Project. |
teamMembers |
[string] |
totalAnsweredCount |
integer($int32) |
totalQuestionCount |
integer($int32) |
updatedBy |
string |
ProjectResponseVO Details of a project. |
|
additionalContacts |
List of users(email addresses) to be associated. The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled. The contact should belong to the same business unit if the business unit field has values (Array[String], optional). |
category |
Category of the entity (Array[String]). |
clientAddress1 |
string example: 115 2nd Street Address1 of the client |
clientAddress2 |
string example: New york Address2 of the client |
clientEmail |
string example: test@client.com Email Address of the client |
clientName |
string example: Microsoft Corporation Name of the client |
clientPhone |
string example: 999-859-896 Contact number of the client |
companyId |
string |
createdBy |
string |
createdDate |
string($date-time) |
crmDetails |
CRMDetails |
customFields |
Use customField's mergeTag name as key and appropriate value. Custom field that are marked as required are mandatory.Please refer to the list of custom fields in the Organization settings for better clarity |
dealSize |
number($double) example: 123456 Value of the deal |
description |
string example: Authorization and Authentication Questionnaire A high level description/notes that explains about the entity(project/intake) |
displayId |
string |
clientEmail |
Email address of the client (String). |
dealSize |
Project deal size (Double). |
dueDate* |
string($date-time) Due date of the entity (project/intake) to be completed. It should be a future date with format, yyyy-MM-dd HH:mm:ss XXX |
externalId |
string example: EXT-Project-001 External Id of the Project |
id |
string |
lastUpdateTs |
string($date-time) |
name* |
string example: TestEntity Name |
percentage |
integer($int32) |
primaryBU |
string example: India Business Unit Name to be associated. This is mandatory only if business unit is enabled for the company |
primaryContact* |
string example: janedoe@rfpio.com Primary contact of the entity(project/intake). The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled.The contact should belong to the same business unit if the business unit field of this project/intake has values |
projectStage* |
string example: Submitted Stage of the project from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Stage |
projectType* |
string example: RFP Type of the entity (project/intake) from the list of various types configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Type |
respondedDate |
string($date-time) |
sectionCount |
integer($int32) Number of sections in the project. |
status |
string example: IN_PROGRESS Status of the Project. |
teamMembers |
[string] |
totalAnsweredCount |
integer($int32) |
totalQuestionCount |
integer($int32) |
updatedBy |
string |
ProjectResponseExtVO Details of a project. |
|
additionalContacts |
List of users(email addresses) to be associated. The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled. The contact should belong to the same business unit if the business unit field has values (Array[String], optional). |
archiveProjectId |
String |
archivedBy |
String |
archivedDate |
string($date-time) |
category |
Category of the entity (Array[String]). |
clientAddress1 |
string example: 115 2nd Street Address1 of the client |
clientAddress2 |
string example: New york Address2 of the client |
clientEmail |
string example: test@client.com Email Address of the client |
clientName |
string example: Microsoft Corporation Name of the client |
clientPhone |
string example: 999-859-896 Contact number of the client |
companyId |
string |
createdBy |
string |
createdDate |
string($date-time) |
crmDetails |
CRMDetails |
customFields |
Use customField's mergeTag name as key and appropriate value. Custom field that are marked as required are mandatory.Please refer to the list of custom fields in the Organization settings for better clarity |
dealSize |
number($double) example: 123456 Value of the deal |
description |
string example: Authorization and Authentication Questionnaire A high level description/notes that explains about the entity(project/intake) |
displayId |
string |
clientEmail |
Email address of the client (String). |
dealSize |
Project deal size (Double). |
dueDate* |
string($date-time) Due date of the entity (project/intake) to be completed. It should be a future date with format, yyyy-MM-dd HH:mm:ss XXX |
externalId |
string example: EXT-Project-001 External Id of the Project |
id |
string |
lastUpdateTs |
string($date-time) |
name* |
string example: TestEntity Name |
percentage |
integer($int32) |
primaryBU |
string example: India Business Unit Name to be associated. This is mandatory only if business unit is enabled for the company |
primaryContact* |
string example: janedoe@rfpio.com Primary contact of the entity(project/intake). The user should be a SUPER_ADMIN or RFP_ADMIN or any role with PROJECT_PRIMARY_CONTACT additional role enabled.The contact should belong to the same business unit if the business unit field of this project/intake has values |
projectStage* |
string example: Submitted Stage of the project from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Stage |
projectType* |
string example: RFP Type of the entity (project/intake) from the list of various types configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Type |
respondedDate |
string($date-time) |
sectionCount |
integer($int32) Number of sections in the project. |
status |
string example: IN_PROGRESS Status of the Project. |
teamMembers |
[string] |
totalAnsweredCount |
integer($int32) |
totalQuestionCount |
integer($int32) |
updatedBy |
string |
CRMDetailsVO Details of associated CRMs. |
|
objectId |
CRM object ID to which the project is associated (String). |
recordId |
The ID of the associated Deal/Opportunity (String). |
objectType |
CRM type to which the project is associated. It depends on the CRM. Example: for Salesforce, the value can be Account, Lead, or Opportunity (String). |
type |
CRM to which the project is associated (String). The values can be: SALESFORCE, PIPEDRIVE, PIPELINE_DEALS, XAIT_PORTER, MICROSOFT_TEAMS, MICROSOFT_DYNAMICS_CRM, or HUBSPOT". |
ProjectFileVO Contains detail of an attachment. |
|
fileId |
Unique ID of the file (String). |
filename |
File Name (String). |
projectFileStatus |
Status of the file (String). The values can be: DRAFT, IN_PROGRESS, COMPLETE, or ERROR. |
fileType |
Type of the file (String). For Example: application/vnd.openxmlformats-officedocument.wordprocessingml.document |
size |
File size in bytes (Long). |
uploadType |
The Channel that was used while importing a file into a project (String). The values can be ADVANCED, BASIC, or SUPPORT. |
uploadBy |
The user email address who has uploaded the file (String). |
md5Value |
Hashed value of the content present in the file (String). |
source |
The source from where the file was uploaded in the application (String). The value can be: LOCAL_DRIVE, DROPBOX, GOOGLE_DRIVE, BOX, ONE_DRIVE, SALESFORCE, DOCUMENT_LIBRARY, SECTION_TEMPLATE, SHAREPOINT, PIPEDRIVE, PIPELINE_DEALS, MICROSOFT_DYNAMICS_CRM, or HUBSPOT. |
PackageRequestVO Details of the project response package generated in the project. |
|
Id |
Unique Identifier of the response package that was generated in the project (String). |
companyId |
ID of the company (String). |
requestDate |
Date-Time of when the project response has been generated (Date-Time). |
requestBy |
The person who has generated the project response (String). |
status |
Status of the project response (String). |
fileId |
ID of the generated file (String). |
exportType |
Type of the export (String). The value can be Template, Source, or export PPTX. |
packageName |
Name of the project response package (String). |
MilestoneSummaryVO Details of a task. |
|
id |
Unique identifier of the task (String). |
companyId |
Company Id (String). |
name |
The name of the Task (String). |
linkedId |
ID of the question, if the task is created from a question, else this would be null (String). |
linkedType |
If the task is created from the question, the type would be "QUESTION" else null (String). |
description |
Description of the task (String). |
assignedToList |
List of the people's email addresses to whom the task is assigned (Array[String]). |
dueDate |
The due date of the task (Date-time). |
status |
Status of the task (String). The value can be ASSIGNED, COMPLETED, or CANCELED. |
completedDate |
The task completed date (Date-time). |
startDate |
The task started date (Date-time). |
completedBy |
The email address of the user who has completed the task (String). |
checkList |
List of checklists associated with this task (Array[CheckListVO]). Please refer CheckListVO documentation. |
priority |
Priority of the task (String). The value can be NONE, HIGH, MEDIUM, or LOW. |
progress |
Percentage of the progress made (Integer). |
type |
Type of the task (String). The value can be ANSWER_LIBRARY_REVIEW, SECTION, PROJECT_TASK, SECTION_TEMPLATE_REVIEW, ANSWER_LIBRARY_MODERATION, DOCUMENT_LIBRARY_REVIEW, SECTION_AUTHOR_TASK, or SECTION_REVIEW_TASK. |
CheckListVO Details of a checklist created as part of a task. |
|
name |
Name of the checklist (String). |
isCompleted |
Status of the checklist (Boolean). |
completedDate |
Completed Date, if the checklist is completed (Date-time). |
ProjectQuestionsExtVOList List of question details of a project. |
|
questionsList |
List of questions (Array[QuestionDetailsExternalVO ]). Please refer QuestionDetailsExternalVO documentation. |
totalCount |
Total number of records in the result (Integer). |
limit |
Limited number of records in the result (Integer). |
startIndex |
Start index of the results (Integer). |
endIndex |
End index of the results (Integer). |
QuestionDetailsExternalVO Question Details. |
|
questionId |
Question ID (String). |
projectId |
Project ID (String). |
sectionId |
Section ID (String). |
status |
Status of the Question (String). The value can be NOT_ANSWERED or ANSWERED. |
flag |
Indicator to say if this question is flagged for follow-up (String). If this is flagged the value would be “flag”, else null. |
type |
Indicates the type (String). The values can be QUESTION or CLARIFICATION. |
ansLibUsedType |
By what means the question was answered (String). The value can be AUTO_RESPOND_RAN, AUTO_RESPOND_IDENTIFIED, AUTO_RESPOND, AUTO_RESPOND_EDITED, LIB_USED, LIB_EDITED, or MANUAL. |
contentType |
Type of the content (String). The value can be QUESTION or DESCRIPTION. |
question |
Content of the question (String). |
autoResponded |
Indicator to say if the question is auto-responded (Boolean). |
answers |
List of answers (Array[AnswerVO]). Please refer AnswerVO documentation. |
createTs |
Question created timestamp (Date-time). |
clarifications |
List of clarifications (only unique IDs) raised for this particular question (Array[string]). |
assignedTo |
QuestionAssignToVO List of assignee details. Please refer QuestionAssignToVO documentation. |
authorList |
List of authors email addresses (Array[string]). |
reviewCompletedList |
List of reviewers who have completed reviewing the answer email addresses (Array[string]). |
AnswerVO Answer Details. |
|
id |
Unique identifier of the answer (String). |
answer |
Content of the answer with style such as html tags (String). |
answerText |
Content of the answer without style (String). |
rowNumber |
Row number for answer (String). |
columnName |
Column name for answer (String). |
answerType |
Answer type should be one of these values (String). The value can be TEXT, DATE, MULTISELECT, DROPDOWN, MULTI_COLUMN_DROPDOWN, CHECKBOX, RADIO, MULTI_COLUMN_RADIO, RICH_TEXT, LABEL, or NONE. |
answerOptions |
List of answer option (Array[AnswerOptionsVO]). Please refer AnswerOptionsVO. |
answerHeader |
Header name of the answer which is configured (String). |
optional |
Indicator to say if the answer is mandatory or optional (Boolean). |
textAnsValidation |
If the answer is configured to validate the answer based on content (String). The value can be NUMERIC, ALPHABETIC, or ALPHA_NUMERIC. |
lastUpdateTs |
Recently updated time stamp (Date-Time). |
answeredBy |
Email address of user who has answered (String). |
AnswerOptionsVO Answer Option Details. |
|
key |
The display value of the answer choice (String). |
value |
The actual value of the answer choice (String). |
standardResponse |
Indicates the standard response (String). |
answerColumn |
Column name linked to this answer while import/export (String). |
QuestionAssignToVO Question Assigned Details. |
|
userRole |
Role of the user (String). |
Users |
List of users to whom this question is assigned (Array[string]). |
comments |
Comments given while assigning question (String). |
assignedBy |
Who has assigned this question (String). |
notifyAll |
Indicator to say if all the assignee should be notified (Boolean). |
assignedDate |
The question assigned date (Date-Time). |
ProjectExternalDiscussionVO Contains complete detail of the discussions. |
|
id |
Unique identifier of the project external discussions (String). |
projectId |
Project ID (String). |
entityId |
Question ID (String). |
comments |
List of comments (Array[CommentVO]). Please refer CommentVO documentation. |
createdBy |
Email address of the project creator (String). |
followersList |
Users who are associated with this comment (Array[string]). |
CommentVO Details of the comment. |
|
id |
Unique identifier of the comment (String). |
text |
Comment text (String). |
parent |
Indicates is this is a parent comment (Boolean). The very first comment is the parent comment for all the following comments. |
parentId |
ID of the parent comment (String). |
userName |
Email address of the user who has posted this comment (String). |
status |
Current status of the comment (String). The value can be RESOLVED or UN_RESOLVED. Null value for the status would mean that the comment is open/un_resolved. |
resolvedBy |
The email address of the user who has resolved/closed this comment (String). |
resolvedDate |
Comment resolved/closed date (Date-Time). |
date |
Comment created date time (Date-Time). |
mentions |
List of users @mentioned in the comment (Array[string]). |
files |
List of files attached (Array[ProjectFileVO]). Please refer ProjectFileVO documentation. |
ProjectActivitiesExtVOList List of project activities. |
|
activitiesList |
List of project activities (Array[ProjectActivityExtVO]). Please refer ProjectActivityExtVO documentation. |
ProjectActivityExtVO Project Activity Details. |
|
activityDate |
string($date-time) |
companyId |
Company ID (String). |
description |
Description of the activity (String). |
entityId |
string |
id |
string |
performedBy | string |
projectEntity |
IActivityEntity{ } |
projectId | string |
type |
string Enum: [ ACTIVITY_PACKAGE_PUBLISHED_TO_INTEGRATION, AUDIT_LOGS_DOWNLOADED, COMMENT_ADDED, COMMENT_DELETED, COMMENT_EITDED, COST_CREATED, COST_DELETED, COST_EDITED, CRM_ASSOCIATION_CHANGED, DESCRIPTION_DELETED, DOCUMENT_SETTINGS_EDITED, EMAIL_QUEUE_DELETED, EXPORT_FILE_TRANSLATION_ACKNOWLEDGED, EXPORT_REPONSES_DOWNLOAD, E_SIGNATURE_FIELD_CREATED, E_SIGNATURE_FIELD_DELETED, E_SIGNATURE_FIELD_EDITED, FILE_ACCEPTED, FILE_ADDED, FILE_APPROVED, FILE_BACKUP, FILE_CONVERTED, FILE_DECLINED, FILE_DELETED, FILE_DOWNLOADED, FILE_EDITED, FILE_IMPORTED, FILE_IMPORTED_CONFIG_BACKUP, FILE_IMPORTED_CONFIG_REVERTED, FILE_MOVED, FILE_SHARED, FILE_UPDATED, FILE_VOIDED, FOLDER_ADDED, FOLDER_DELETED, FOLDER_UPDATED, GOOGLE_EDITOR_INTEGRATION, GOOGLE_EDITOR_INTEGRATION_ERR, IMPORT_FILE_TRANSLATION_ACKNOWLEDGED, ISSUE_LINKED, ISSUE_UNLINKED, MERGE_TAG_ADDED, MERGE_TAG_DELETED, MERGE_TAG_EDITED, MILESTONE_ADDED, MILESTONE_DELETED, MILESTONE_DUE_DATE_CHANGED, MILESTONE_INFO_CHANGED, MILESTONE_OWNER_CHANGED, MILESTONE_STATUS_CHANGED, PROJECT_ADDITIONAL_PRIMARY_CONTACT_ADDED, PROJECT_ADDITIONAL_PRIMARY_CONTACT_REMOVED, PROJECT_CLONED, PROJECT_CREATED, PROJECT_DUE_DATE_CHANGED, PROJECT_GUEST_REMOVED, PROJECT_GUEST_SHARED, PROJECT_GUEST_VIEWED, PROJECT_INFO_CHANGED, PROJECT_MARKED_OFFLINE, PROJECT_MARKED_ONLINE, PROJECT_NOTES_CREATED, PROJECT_NOTES_DELETED, PROJECT_NOTES_EDITED, PROJECT_OWNER_CHANGED, PROJECT_PACKAGE_EDITED, PROJECT_PACKAGE_PUBLISH_TO_SALESFORCE, PROJECT_PACKAGE_PUBLISH_TO_ZOHO, PROJECT_PACKAGE_REQUESTED, PROJECT_PACKAGE_REQUEST_COMPLETED, PROJECT_PACKAGE_REQUEST_DELETED, PROJECT_PACKAGE_REQUEST_DOWNLOADED, PROJECT_PERCENTAGE_CHANGED, PROJECT_PUBLISHED, PROJECT_PUBLISH_CONTENT_EDITED, PROJECT_STAGE_EDITED, PROJECT_STATUS_CHANGED, PROJECT_TEAM_MEMBER_ADDED, PROJECT_TEAM_MEMBER_REMOVED, PROJECT_TEMPLATE_OWNER_CHANGED, PROJECT_UNARCHIVED, QUESTION_DELETED, REQUEST_ADDENDUM_DISCARDED, REQUEST_ADDENDUM_EDITED, REQUEST_ADDENDUM_REPUBLISHED, REQUEST_INFO_CHANGED, REQUEST_OWNER_ADDED, REQUEST_OWNER_REMOVED, REQUEST_TEAM_MEMBER_ADDED, RESPONSE_TEMPLATE_ADDED, RESPONSE_TEMPLATE_EDITED, RESPONSE_TEMPLATE_REMOVED, SECTION_ADDED, SECTION_AUTHOR_COMPLETED, SECTION_DELETED, SECTION_DOCUMENT_SETTINGS_UPDATED, SECTION_DUE_DATE_CHANGED, SECTION_GROUP_ADDED, SECTION_GUEST_UPDATED, SECTION_INFO_CHANGED, SECTION_MOVED_TO_TRASH, SECTION_OWNER_CHANGED, SECTION_PRIVACY_UPDATED, SECTION_RESTORED_FROM_TRASH, SECTION_REVIEWER_CHANGED, SECTION_REVIEW_COMPLETED, SECTION_REVIEW_DUE_DATE_CHANGED, SECTION_REVIEW_WORKFLOW_CHANGED, SECTION_STATUS_CHANGED, SETTINGS_CHANGED, TEMPLATE_CREATED, TIMER_ADDED, TIMER_DELETED, TIMER_EDITED, TIMER_ENDED, TIMER_STARTED, TOPIC_CREATED, TOPIC_DELETED, TOPIC_EDITED, VENDOR_ADDED, VENDOR_MILESTONE_ADDED, VENDOR_MILESTONE_DELETED, VENDOR_MILESTONE_EDITED, VENDOR_REMOVED ] |
QuestionActivityExternalVOList List of project question activities. |
|
questionActivityVOList |
Array of question activities (Array[QuestionActivitiesVO]). Please refer QuestionActivitiesVO documentation. |
QuestionActivitiesVO Project Question Activities. |
|
id |
Unique identifier of the activity (String). |
companyId |
Company ID (String). |
description |
Description of the activity (String). |
performedBy |
Activity performer's email address (String). |
activityDate |
Date of the activity (String). |
oldValues |
Old values in the key value map (Map). |
newValues |
New values in the key value map (Map). |
diffValues |
Difference between old values and new values in the key value map (Map). |
additionalProperties |
Additional properties in key value form (Map). |
details |
List of Users @mentioned in the comment (Array[string]). |
projectId |
Project ID (String). |
sectionId |
Section ID (String). |
questionId |
Question ID (String). |
type |
Activity Type (String). |
Access Content from Active and Archived Projects |
|
API URL |
/rfpserver/ext/v1/projects/search-xproject-content |
Description |
Search across projects, both active and archived for keywords or phrases in questions, or answers, or both across projects. Use filter criteria to limit the search to certain projects. This includes project metadata, such as, project status, project type, or any project custom fields. |
Type |
POST |
Body
ProjectDetailsSearchRequestVO
projectId |
Array[string] Optional List of project Id to filter questions |
projectName |
String Optional Project Name. Regex search is allowed |
projectStatus |
Array[string] Optional List of status of the project. Accepted values -[IN_PROGRESS, RESPONDED, CANCELED, DELETED, ARCHIVED] |
projectType |
Array[string] Optional List of Project types from the list of various types configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Type |
projectStage |
Array[string] Optional List of project stages from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Stage |
projectCategory |
Array[string] Optional Project Category |
businessUnits |
Array[string] Optional Business Unit Names |
primaryContact |
Array[string] Optional List of email addresses of Primary Contact of the project. |
additionalContacts |
Array[string] Optional List of email addresses who are the additional primary contacts for this project |
teamMembersList |
Array[string] Optional List of project team members. |
clientName |
String Optional Project client name |
customFields |
Array[string] Optional List of Custom Fields. Use custom field's merge tag name as key and appropriate value. For the custom field's merge tag name, get it from the list of project custom fields in the Organization settings. For "DROPDOWN", "CHECKBOX", "RADIO", "SELECT USER", "MULTI SELECT DROPDOWN" type of custom field's value should be ["value1","value2",...]. "TEXT BOX", "TEXT AREA'', "AUTO INCREMENTAL", "DATE" and "DATE AND TIME" type custom field not searchable |
createdBy |
Array[string] Optional List of email addresses of the users who have created the project |
updatedBy |
Array[string] Optional List of email addresses of the users who have updated the project |
fromDueDate |
Date - Time Optional Projects having a due date equal or more than fromDueDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z) |
toDueDate |
Date - Time Optional Projects having a due date equal or lesser than toDueDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z) |
fromCreatedDate |
Date - Time Optional Projects having created date equal or more than fromCreatedDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z) |
toCreatedDate |
Date - Time Optional Projects having created date equal or lesser than toCreatedDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z |
displayId |
String Optional AUTO INCREMENTAL custom field value to filter project |
projectExternalId |
String Optional External Id of the Project |
limit |
Integer Optional No of limited records to be displayed in the result. If the limit is -1, then only the total number of records(just the count) matched will be returned in the response |
cursor |
String Optional For next pagination get value from response of previous search |
ProjectQuestionSearchExtVO
searchTerm |
String Optional Returns all the questions that match the search term in the question or answer based on searchTermOption. An empty search term returns all questions matching other filters. Regex search is allowed. |
searchTermOption |
String Optional Search terms will match and return questions based on options. Allowed values are [ "QUESTION", "ANSWER", "BOTH'' ] |
sectionId |
Array[String] Optional Returns only the questions from the list of section if sectionId is provided |
questionId |
Array[String] Optional Returns the question if questionId is provided |
status |
Array[string] Optional Status of the Question.It can be either ANSWERED OR NOT_ANSWERED |
reviewStatus |
Array[string] Optional Review Status of the Question. Accepted values - [NOT_ANSWERED,ANSWERED,PENDING_REVIEW,REVIEWED]. Review Status will be NOT_ANSWERED when a reviewer is not assigned to the question. Review Status will be ANSWERED when the question is answered & reviewer is not assigned. Review Status will be PENDING_REVIEW when question is answered & reviewer is assigned. Review Status will be REVIEWED when question is answered & reviewed by assigned users |
reviewWorkFlow |
Array[string] Optional Review Workflow type. Accepted values - [ANY, ALL, SEQUENTIAL] |
flagList |
Array[string] Optional To filter the flagged questions by flag name |
flagSearchOption |
String Optional FlagList will be searched based on flagSearchOption. If value is ANY -> Will fetch records having Any one of the flags from flagList, ALL -> Will fetch records having All flags from flagList, NO -> will fetch records having no flags. = ["ANY" or "ALL" or "NO"] |
tags |
Array[string] Optional List of tags associated with questions in the project |
tagSearchOption |
String Optional Tags will be searched based on tagSearchOption. If value is ANY -> Will fetch records having Any one of the tags from tags, ALL -> Will fetch records having All tags from tags, NO -> will fetch records having no tags. = ["ANY" or "ALL" or "NO"] |
authorList |
String Optional List of email addresses who are authors of the questions in the project |
reviewerList |
Array[string] Optional List of email addresses of reviewers to whom the questions in the project are assigned |
guestUser |
Array[string] Optional List of email addresses of guest to whom the questions in the project are assigned |
helpTextFilter |
String Optional To filter the help text questions by Help Text. "TRUE" to return the help text questions."FALSE" to filter the not help text questions |
autoRespondedFilter |
String Optional To filter the auto responsed questions. "TRUE" to return the auto responded questions. "FALSE" to filter the not auto responded questions |
updatedAnswerContentAvailableFilter |
String Optional To filter the Answer Library updated questions. "TRUE" to return the Answer Library updated questions. "FALSE" to filter the Answer Library not updated questions |
ansLibUsedType |
Array[string] Optional Answer Library Used Type. Allowed Values - [MANUAL,LIB_USED,LIB_EDITED,AUTO_RESPOND,AUTO_RESPOND_EDITED] |
reviewCompletedList |
Array[string] Optional List of email addresses who have completed review of the questions in the project |
questionCreatedBy |
Array[string] Optional List of email addresses of the users who have created the questions in the project |
questionUpdatedBy |
Array[string] Optional List of email addresses of the users who have updated the questions in the project |
fromCreatedDate |
Date - Time Optional Project questions having created date equal or more than fromCreatedDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z |
toCreatedDate |
Date - Time Optional Project questions having created date equal or lesser than toCreatedDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z |
fromUpdatedDate |
Date - Time Optional Project questions having updated date equal or more than fromUpdatedDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z) |
toUpdatedDate |
Date - Time Optional Project questions having updated date equal or lesser than toUpdatedDate will be filtered. Date format should be like this: yyyy-MM-ddTHH:mm:ss.SSSZ eg:(2021-06-16T05:23:33.163Z) |
Response
If the search is successful, the response will be ProjectQuestionDetailsResponseVOList
ProjectQuestionDetailsResponseVOList
questionsList |
Array[ProjectQuestionDetailsResponseVO ] List of questions details. |
nextCursorMark |
String Next cursor value. |
limit |
Integer The number of records limited in the response. |
totalRecords |
Long Total count of matching questions. |
ProjectQuestionDetailsResponseVO:
projectId |
String Project Id of the Question. |
sectionId |
String Section Id of the Question. |
questionId |
String Id of the Question. |
companyId |
String Company Id of the Question. |
status |
String Status of the Question. The value can be NOT_ANSWERED or ANSWERED. |
question |
String Question Text. |
alternateQuestions |
String Alternate Question |
questionReviewStatus |
String Review Status of the question. The value can be [NOT_ANSWERED,ANSWERED,PENDING_REVIEW,REVIEWED] |
reviewWorkflow |
String Review flow of the question. The value can be [ANY, ALL, SEQUENTIAL] |
primaryBU |
String Primary BU of the question |
businessUnits |
Array[String] List of BU names that question belongs to. |
sharedBU |
Array[String] List of BU names that question is shared. |
flags |
Array[String] List of flags for the question. |
tags |
Array[String] List of tags for the question. |
type |
String Indicates the type. The values can be QUESTION or CLARIFICATION. |
contentType |
String Type of the content. The value can be QUESTION or DESCRIPTION. |
ansLibUsedType |
String By what means the question was answered. The value can be AUTO_RESPOND_RAN, AUTO_RESPOND_IDENTIFIED, AUTO_RESPOND, AUTO_RESPOND_EDITED, LIB_USED, LIB_EDITED, or MANUAL. |
questionText |
String Question text. |
authorList |
Array[string] List of users(email address) who are assigned as authors for this question. |
reviewerList |
Array[string] List of users(email address) who are assigned as reviewers for this question. |
guestUserList |
Array[String] List of guest users(email address) who are assigned to the question. |
reviewCompletedList |
Array[string] List of users(email address) who have completed reviewing the answers. |
parentId |
String Id of the parent question. |
helpText |
Boolean Whether Question is a help text or not. |
answers |
Array[AnswerResponseVO ] List of answers for the Question. |
externalId |
String External Id of the Project |
createDate |
Date-Time Created date and time of the question. |
updatedDate |
Date - Time Updated date and time of the question |
createdBy |
String User who created the question. |
updatedBy |
String User who updated the question |
AnswerResponseVO :
id |
String Id of the answer. |
answer |
String This field contains the content of the answer. If the answer type is RICH_TEXT or BASIC_RICH_TEXT html value will be present. |
srcAnswer |
String Source Answer |
answerType |
String Type of the answer. Allowed values are [BASIC_RICH_TEXT, DATE, MULTISELECT, DROPDOWN, MULTI_COLUMN_DROPDOWN, CHECKBOX, RADIO, MULTI_COLUMN_RADIO, RICH_TEXT, LABEL, or NONE]. |
answerHeader |
String Answer Header. |
answerOptions |
Array[AnswerOptionsVO] List of answer options. |
lastUpdateTs |
Date-Time Recently updated timestamp of the answer. |
optional |
Boolean Indicator to say if the answer is mandatory or optional. |
answeredBy |
String Email Address of the user who answered the answer. |
AnswerOptionsExtVO
key |
String Value to be shown in the document while exporting. |
value |
String Value to be shown in the UI as an option. |
Example
Request:
https://dev1.rfpio.com/rfpserver/ext/v1/projects/search-questions
{
"projectId": ["614b48b1984c793d512895bc"],
"projectName": "Vista",
"projectStatus": ["IN_PROGRESS"],
"projectType": ["RFP"],
"projectStage": ["Opportunity"],
"projectCategory": [],
"businessUnits": [],
"primaryContact": ["manoj@rfpio.com"],
"additionalContacts": [],
"teamMembersList": [],
"clientName": "",
"customFields": {
"dropdown" : ["Yes"],
"multi" : ["Yes"],
"user" : []
},
"createdBy": [],
"updatedBy": [],
"fromDueDate": "",
"toDueDate": "",
"fromCreatedDate": "",
"toCreatedDate": "",
"questionFilter": {
"searchTerm": "backup",
"searchTermOption": "QUESTION",
"sectionId": ["614b48c1984c793d512895ca"],
"questionId": [],
"status": ["ANSWERED"],
"reviewStatus": [],
"flagList": ["Follow-up"],
"tags": ["Backup"],
"questionType": "",
"authorList": [],
"reviewerList": [],
"guestUser": [],
"reviewWorkFlow": [],
"ansLibUsedType": [],
"reviewCompletedList": [],
"tagSearchOption": "ANY",
"fromCreatedDate": "",
"toCreatedDate": "",
"fromUpdatedDate": "",
"toUpdatedDate": "",
"helpTextFilter": "ALL",
"autoRespondedSearchOption": "",
"flagSearchOption": "ALL",
"updatedContentAvailableSearchOption": "",
"createdBy": [],
"updatedBy": []
},
"displayId": "",
"projectExternalId": "",
"limit": 10,
"cursor": "*"
}
Response:
{
"questionsList": [
{
"projectId": "614b48b1984c793d512895bc",
"sectionId": "614b48c1984c793d512895ca",
"questionId": "614b48e8984c793d512895eb",
"companyId": "5ea28c478ef3614b6bbd30cb",
"status": "ANSWERED",
"question": "What is the backup option?",
"reviewWorkflow": "ANY",
"primaryBU": "",
"businessUnits": [],
"sharedBU": [],
"flag": [
"Follow-up"
],
"tags": [
"Backup"
],
"type": "QUESTION",
"contentType": "QUESTION",
"ansLibUsedType": "MANUAL",
"authorList": [],
"reviewerList": [],
"guestUserList": [],
"reviewCompletedList": [],
"parentId": "",
"helpText": false,
"answers": [
{
"answer": "<div>Backup options will be available on request with type of data.</div>",
"answerType": "RICH_TEXT",
"answerHeader": "Response",
"optional": false
}
],
"createdDate": "2021-09-22 08:16:56 -07:00",
"updatedDate": "2021-09-22 08:21:57 -07:00",
"createdBy": "manoj@rfpio.com",
"updatedBy": "manoj@rfpio.com"
}
],
"nextCursorMark": "AoIIQFCEpzg2MTRiNDhlODk4NGM3OTNkNTEyODk1ZWI=",
"limit": 10,
"totalRecords": 1
}
Project Notes Report API |
||
API URL |
/rfpserver/ext/v1/reports/project-notes |
|
Description |
Get the project notes only for active projects by applying various filters. |
|
Type |
POST |
Request Body:
ProjectNotesRequestVO
clientName |
String Optional Filter records according to the Client Name. |
createdDateFrom |
date-time Optional Project Date from which the results to be filtered. |
createdDateTo |
date-time Optional Project Date to which the results to be filtered. |
customFields |
Map<string, object> Optional Use custom Fields internal name as key and appropriate value to filter the projects with the respective values. |
lastProjectNoteId |
String Optional This is used for pagination. The Last ProjectNote ID will act as a cursor and mentioning the Last ProjectNote ID Value would fetch the next set of results starting from the given cursor record. |
limit |
Integer Optional No. of limited records to be displayed in the result. Minimum limit:1, Maximum limit:100. |
notesType |
List<String> Optional To filter the project notes according to the notes type available in the organization setting. |
projectIds |
List<String> Optional To filter the project notes according to the ProjectIds. |
projectName |
String Optional To filter records according to the Project Name |
projectStage |
List<String> Optional Stage of the project from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Stage. |
projectStatus |
List<String> Optional Project Status according to which the results need to be filtered. Allowed Values are "IN_PROGRESS", "CANCELED", "RESPONDED". |
projectType |
List<String> Optional Type of the project from the list of stages configured in the organization settings. Allowed values can be referred from, Organization settings->Project->Type. |
Response
ProjectNotesResponseList : List<ProjectNotesResponseVO>
projectNotes |
List<ProjectNotesResponseVO> Optional List of the project notes. |
totalCount |
Long Total count of the records obtained by appling filter. |
ProjectNotesResponseVO
id |
String Optional ID of the Project Note. |
companyId |
String Optional ID of the company |
answer |
Map<String,String> Optional Answer or answers of the question to which the Project Note is associated. |
associatedQuestions |
List<AssociatedQuestion> Optional List of details about the question associated with the project. |
authors |
List<String> Optional List of Authors for the associated Question. |
clientName |
String Optional Client name. |
createdDate |
String Optional Date on which the Project note was created. |
projectId |
String Optional ID of the Project |
projectName |
String Optional Name of the Project |
projectNotesAddedBy |
String Optional Email ID of the User who added the Project Note. |
projectStatus |
String Optional Status of the Project |
projectType |
String Optional Type of the Project |
Question |
String Optional Question to which the project note is associated. |
section |
String Optional Name of the Section |
sectionId |
String Optional ID of the Section |
associatedQuestions
authors |
List<String> Optional List of Authors for the associated Question. |
question |
String Optional Question to which the project note is associated. |
questionId |
String Optional ID of the Question. |
section |
String Optional Name of the Section. |
sectionId |
String Optional ID of the Section |
SectionSummaryResultExtVOList
sections |
[ List of section details. ] |
SectionSummaryResultExtVO
answeredQuestionCount |
integer($int32) Number of questions answered in the section. |
authorDueDate |
string($date-time) Due date of the section to be completed by Authors. |
authorMessage |
string example: Your help is needed in completing the section Compliance Questionnaire. Message to Authors. |
authors |
[ List of users(email address) to be assigned as Authors. string] |
createTs |
string($date-time) Created timestamp of the section. It should be a date with format, yyyy-MM-dd HH:mm:ss XXX |
createdBy |
string example: john@responsive.io Email Address of the user who created the section. |
externalId |
string example: EXT-001 External Id of the Section. |
id |
string Section ID. |
name |
string example: Compliance Questionnaire Name of the Section. |
parentId |
string Parent Section Id. |
questionCount |
integer($int32) Number of questions present in the section. |
reviewWorkflow |
string Workflow type of the review process. Enum: [ ALL, ANY, SEQUENTIAL ] |
reviewerDueDate |
string($date-time) Due date of the section to be completed by Reviewers. |
reviewerMessage |
string example: Please review these answers as soon as possible. Message to Reviewers. |
reviewers |
[ List of users(email address) to be assigned as Reviewers. string] |
sortingOrder |
number($double) Sorting Order |
status |
string Status of the section. Enum: [ ASSIGNED, COMPLETED, DELETED, IN_PROGRESS, LOCKED, PENDING_REVIEW ] |
SectionDetailsExternalVO
answeredQuestionCount |
integer($int32) Number of questions answered in the section. |
authorCompletedList |
[ List of users(email address) who completed author process. string] |
authorDueDate |
string($date-time) Due date of the section to be completed by Authors. |
authorMessage |
string example: Your help is needed in completing the section Compliance Questionnaire. Message to authors. |
authors |
[ List of users(email address) to be assigned as Authors. string] |
createTs |
string($date-time) Created date of the section. |
createdBy |
string User who created the section |
externalId |
string External Id of the Section. |
guestAssignedToList |
[ List of users(email address) to be assigned as guest. string] |
guestMessage |
string example: Your help is needed in completing the section Compliance Questionnaire. Message to guest. |
name |
string Name of the Section. |
parentId |
string Parent Section Id. |
projectId |
string Project Id of the Section. |
questionCount |
integer($int32) Number of questions present in the section. |
reviewCompletedList |
[ List of users(email address) who completed review process. string] |
reviewWorkFlow |
string Workflow type of the review process. Enum: [ ALL, ANY, CUSTOM, SEQUENTIAL ] |
reviewerDueDate |
string($date-time) Due date of the section to be completed by Reviewers. |
reviewerMessage |
string example: Please review these answers as soon as possible. Message to reviewers. |
reviewers |
[ List of users(email address) to be assigned as Reviewers. string] |
sectionId |
string Section Id. |
sortingOrder |
number($double) Sorting Order |
status |
string Status of the section. Enum: [ ASSIGNED, COMPLETED, DELETED, IN_PROGRESS, LOCKED, PENDING_REVIEW ] |
Note: The API endpoints either start with /rfpserver. The baseUrl for most customers is app.rfpio.com. For more details, please reach out to your CSM or contact accountmanagers@responsive.io. |
For details on other endpoints, click here.