We have an integration creating timeline events based on given email addresses. The endpoint is returning 204, contacts are being created if they don't exist, and the timeline events are created in the sense that they are populating a list based on the event properties (https://app.hubspot.com/lists/1570479/list/1516).

Yet, the timeline events are not appearing for all the contacts, only for some of them. I've checked that the filters are available, and the timestamps should be correct.

Can you shed any light on what's happening here? Is the contact not somehow associated with the timeline event?

Also, debugging things like these is a strong vote for the ability to being delete timeline events, to try and fix this sort of behaviour (https://integrate.hubspot.com/t/delete-timeline-event-through-api/2654). Adding that verb would also give some sense of security when testing integrations (as now I have to do this in a sandbox environment and hope everything goes smoothly when migrating to production, meaning I have two integration apps created, two event types etc.).

Another improvement for the timeline API would be getting a response body on event creation. This could at its simplest have the visitor ID of the contact, and possibly an acknowledgement if the contact was newly created (or not). Understandably I'm having a bit of a hard time trusting the 204 right now with the UI issues, so being able to see timeline events on engagements API, or some separate GET endpoint for created timeline events wouldn't hurt either.

Are you using the same ID (as in the event ID) each time you're creating the event? If you're using the same ID with the details for a different contact each time, you'd be moving the existing event instead of creating a new event. Looking at some of the other contacts in the list, only the working contact you linked seems to show the event.

If you're using different IDs each time, can you DM me and send me the full details of some of the events that you're not seeing on the individual contacts?

@dadams, thanks for pointing this out, you may be right! Let me get this checked. Still, the behaviour of lists in this case is quite curious as it then apparently registers a contact for having this event if that event has ever touched that contact (e.g. been updated to that contact, then another contact straight after).

Is there any way of getting the event information from contact level, other than with your internal endpoints? E.g. via something similar like engagements API. Would it be possible to pass a param to engagements related to an entity and be able to see the integration events?

There's of course the workaround of creating a dynamic list based on event properties and getting contacts from that (http://developers.hubspot.com/docs/methods/lists/get_list_contacts), but as we're interested of programmatically generating data to Deal level based on these Contact level events, it would be great if this information would be available via some contact level endpoint (e.g. get contact, get engagements on contact...)