Questions?
They are answered by the XTRF community and our experts

API: in which endPoint can the project's client price profile be set/changed?
Hello:
I was wondering if you could help me find in which endPoint the Client's price profile can be set/change for a project.
Looking at the API documentation, I am afraid it can be done, but then, what if you want to add a receivable for a diferent price profile than the one set by default for the client?
Thanks.

API: How to add custom fields for classic projects (type: selection)
Hello:
I was wondering if you could help me and give me an example on how to add a custom field to a project for a custom field of the type: SELECTION through the API.
In the API documentation I can see that this is the schema for the endPoint (PUT): /projects/{projectId}/customFields
[
{
"type": "TEXT",
"name": "string",
"key": "string",
"value": {}
}
]
But I don't really know what to set for the "value" property.
The custom field is a Single Selection type.
Thanks a lot.
My best regards.

How to get possible values for Custom fields?
I'm using the XTRF API and see the possibility to read and set custom fields from it, but I have found no endpoint which could return the possible values for it, is there a way to do this?
Thanks for your help.

How to access Department, Position, Categories, Industries, Specialization on the API?
I'm using the XTRF API with clients, contacts and quotes but I was not able to find some fields or their possible values on the API.
How can I get the possible values (ids and labels) for Department, Industries, and Categories?
On Contacts API endpoints Department and Categories are missing, is there another way to get these?
On Quotes API endpoints I did not found Specialization, is there a way to get this?
Thanks for your help.

Paralell API requests provides incorrect date fields
Issue: Random dates are provided for date fields, when simultaneous or parallel requests are made.
Steps to reproduce:
1. Take a view with more than 25000 records
2. Save the following file as test.sh, providing appropriate values for VIEW_ID and DOMAIN and ACCESSTOKEN
````
#!/bin/bash
rm $1
ACCESSTOKEN='Removed for security'
for (( i = 1; i < 4; i++ )); do
#statements
echo "https://[DOMAIN].s.xtrf.eu/home-api/browser?viewId=[VIEW_ID]&page=$i&q.task.quote.service=9&maxRows=1000&q.task.invoiceable=yes&q.startDate=from($2)"
curl -X 'GET' \
"https://[DOMAIN].s.xtrf.eu/home-api/browser?viewId=[VIEW_ID]&page=$i&q.task.quote.service=9&maxRows=1000&q.task.invoiceable=yes" \
-H 'accept: application/vnd.xtrf-v1+json;charset=UTF-8' \
-H "X-AUTH-ACCESS-TOKEN: $ACCESSTOKEN">>"$1_$i" &
done
wait
cat $1_*>$1
rm $1_*
````
3. From the terminal run,
./test.sh xtrfRequest1.jsonl 168048709288
4. From the terminal run again,
./test.sh xtrfRequest2.jsonl 168048709288
5. Chech the diff of both files.
Expected Result:
Both xtrfRequest1.jsonl and xtrfRequest2.jsonl are equal and have the same records with the same fields.
Actual result:
Some records(Odds: 4 records in 3000) have their date fields modified to random dates. For eg, xtrfRequest1.jsonl's 1 record maylook like
"columns" : [ "268512", "28.02.2023 16:18 GMT", "Service", , "Closed" ]
and the same record in xtrfRequest2.jsonl may look like
"columns" : [ "268512", "27.02.2022 21:15 BST", "Service", , "Closed" ]
Notes:
- Only Date fields are affected
- Only some records are affected and the affected records are random.
- The dates seem to be put from another record, but it maybe completely random as well.

deleting project and/or quotes via api
This is really frustrating.
I'm writing integration tests for my xtrf frontend interface UI.
I'd like to build up a client, add a project or quote to it, delete the project/quote and delete the client, e.g., cleanup.
There's no provision for deleting a project or quote via the api, and I can't delete the client as there is now a project or quote attached to it.
What's up with this?

API | Create a classic project: body code | log files
Hello:
I am trying to create my first Classic Project with the API and I keep getting the answe 415: Unsupported Media Type.
I assume this error comes due to a non-valid body sent to the endpoint: https://server/home-api/projects.
The thing is that I cannot figure out what's missing or what is not in the right format.
Before implementing the POST call in my code, I am trying to send the request with Postman, and this is the body that I am sending:
{
"customerID": 108,
"serviceID": 27,
"specializationId": 37,
"sourceLanguageId": 73,
"targetLanguagesIds": [84],
"name": "First project create from API",
"categoriesIds": [],
"inputFiles": [],
"dates": {
"startDate": {
"value": 1680403200
},
"deadline": {
"value": 1680613200
},
"actualStartDate": {
"value": 1680403200
},
"actualDeliveryDate": {
"value":1680510000
}
},
"instructions": {
"forCustomer": "",
"forProvider": "",
"internal": "",
"paymentNoteForCustomer": "",
"paymentNoteForVendor": "",
"notes": ""
},
"people": {
"responsiblePersons": {
"projectManagerId": 21,
"projectCoordinatorId": 21
},
"customerContacts": {
"primaryId": 0,
"SendBackToId": 0,
"additionalIds": []
}
}
}
Can anyone see a missing part or an invalid input?
I followed the schema shown in: https://comunicadk.s.xtrf.eu/api-doc#/home-api
Another question would be that I don't seem to find the log that will tell me which is the exact issue with the request. Is there actually one?
Thanks a lot for your help.
My best regards.

Awkward handling of contact addition to non active client
We had a recent discovery with a custom app that, as part of its workflow, creates a client contact if not already defined (by email) in the client.
This app failed to take into account the "status" state of the client and would attempt this regardless.
We found the home API is perfectly fine with creating a "person" with first name, last name, email against a "Potential" client. However, when an attempt is made to edit this new contact with mailing address through the client API will issue a access error.
This seems to be an disconnected decision. I would have expected to not being able to add the person in the first place. As this is, the app would create the contact but then failed trying to complete the process making a mess of the contact state.
How would I post a change request to the home API to change this behavior?

Set Client Project Number with API
Hello,
I am currently using the XTRF API to create classic projects. In the graphical user interface there is an entry "Client project number" at the end. Is it possible to set the value via API? As I have seen it is not a custom field.
Best regards
Norbert

How can we make Power BI reports with XTRF?
Hello everyone,
We have just started implementing this tool in our company and we don't know how to merge our Power Bi with the projects, finances and all the data in XTRF.
We were working in Excel before :(
Any ideas?
Thank you!
Customer support service by UserEcho