Skip to content

Contacts

A contact is a mobile number, an email address, or the identifier of an external feedback request. The contact endpoints collect what InstantFeedback stores about one contact across all campaigns of your account, anonymise it on request, and show who has looked at it.

A contact matches the feedback requests whose phone, email, or identifier equals it, ignoring case. Mobile numbers are normalised to international format, so +38641279757 and 0038641279757 name the same contact. Put the contact in the path as is, or URL-encoded; + and %2B both work.

Get a contact

GET /contacts/:contact returns the data stored about one contact.

GET https://app.instantfeedback.si/api/contacts/+38641279757

Example response:

{
    "contact": "+38641279757",
    "num_appeals": 11,
    "num_feedback": 8,
    "avg_grade": [{
        "scale": "1-5",
        "avg": 4.125
    }],
    "index_csat": 87.5,
    "index_nps": null,
    "last_appeal": "2026-03-18T14:00:00+01:00",
    "last_grade": "2026-03-18T14:18:56.842105+01:00",
    "last_comment": null,
    "last_survey": null,
    "blacklist": {
        "entry": "+38641279757",
        "date_added": "2026-02-25T12:24:21.501701+01:00"
    },
    "graylist": {
        "entry": "+38641279757",
        "campaigns": [{
            "id": 17,
            "name": "Webshop – after order pickup",
            "date_added": "2026-02-25T12:24:21.501701+01:00"
        }]
    }
}
Field Meaning
contact The contact that was queried, normalised.
num_appeals Number of feedback requests sent to the contact.
num_feedback Number of grades received from the contact.
avg_grade Average grade per grading scale, one object per scale the contact was graded on, with the scale's name in scale and the average in avg.
index_csat CSAT index in percent over the contact's CSAT grades, or null when there are none.
index_nps Net Promoter Score over the contact's NPS grades, or null when there are none.
last_appeal When the last feedback request was scheduled.
last_grade When the last grade was received, or null.
last_comment When the last comment was received, or null.
last_survey When the last survey was completed, or null.
blacklist The contact's blacklist entry, with entry (the contact) and date_added, or null when the contact is not on the blacklist.
graylist The contact's graylist entries, with entry and campaigns (one object per campaign where the contact is on the graylist, with id, name, and date_added), or null when the contact is on no graylist.

The feedback requests themselves are not part of this response. Export them per campaign with List feedback requests.

A contact with no feedback requests in your account returns HTTP 404.

Mask a contact's data

POST /contacts/:contact/mask masks, that is anonymises, the personal data stored about one contact. Use it to honour a customer's request to be forgotten.

POST https://app.instantfeedback.si/api/contacts/+38641279757/mask

On every feedback request of the contact, the mobile number, email address, identifier, and IP address are replaced with a masked value, as are the values of custom fields marked as personal data and the phone numbers on the SMS messages. Grades, comments, and statistics are kept. Masking cannot be undone, and a masked contact can no longer be looked up.

Example response:

{
    "contact": "+38641279757",
    "masked": {
        "appeals": 11
    }
}
Field Meaning
contact The contact whose data was masked.
masked What was masked: appeals is the number of feedback requests masked by this call. Empty when every request was already masked.

A contact with no feedback requests in your account returns HTTP 404.

Access log

GET /contacts/:contact/access-log returns the audit trail of access to one contact's data in the web app, newest entry first.

GET https://app.instantfeedback.si/api/contacts/+38641279757/access-log

Example response:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [{
        "user": "Nina Kovač",
        "action": "app-contact-detail",
        "date_accessed": "2026-03-28T14:58:52.682913+01:00"
    }]
}
Field Meaning
user The InstantFeedback user who accessed the data.
action Where and how the data was accessed, for example app-contact-detail for the contact page in the web app.
date_accessed When the data was accessed.

The log records access by signed-in users of the web app. Requests made with an API key are not recorded.

Troubleshooting

Message or symptom What to do
HTTP 404 Not found. No feedback request in your account has this phone number, email address, or identifier. Check the spelling, and remember that masked contacts cannot be found.
avg_grade is an empty list. The contact has received feedback requests but has not graded any of them.
masked is an empty object. All of the contact's feedback requests were masked by an earlier call.