Footprints API how can I find the proper ItemDefinitionIDs for building my requests?

Modified on Sat, Jun 29, 2024 at 1:30 PM

I'm currently building an internal tool which requires footprints, however, I don't know where to find the itemDefinitionId or contactDefintionId, how can I find these?


All code below will be in C# .NET 6.0 refer to this article here if you're having issues with your C# Footprints project


To find the ItemDefinitionID or ContactDefintionID for your request you have to first send a listContainerDefintions request to Footprints.

ListContainerDefinitionsRequest listContainerDefinitions = new();

listContainerDefinitionsResponse1 response = await serviceClient.listContainerDefinitionsAsync(listContainerDefinitions);

foreach (var defResponse in response.@return)
    Console.WriteLine($"{defResponse._definitionName} + {defResponse._definitionId}");

This will return the following (as of November 29, 2022)

Support Portal + 645
Salesforce + 43923
Sales + 37893
Ontask + 41401
Edocr + 21445
Infor CRM + 1435
Accusoft Support Service Portfolio + 4333
Accusoft Knowledge Base + 1645

These ContainerDefinitionIDs hold the ItemDefinitionIDs for whatever you're trying to work with. So let's say you want, in the end, you want to use the getContactedAssoicatedTickets request, which requires a _contactDefinitionID

You'll pass in the ContainerDefinitionID for Salesforce to the listItemDefinitions request like so and that will return the following:

ListItemDefinitionsRequest definitionsRequest = new()
{
    _containerDefinitionId = 43923
};

listItemDefinitionsResponse1 response = await serviceClient.listItemDefinitionsAsync(definitionsRequest);

foreach (var defResponse in response.@return)
    Console.WriteLine($"{defResponse._definitionName} + {defResponse._definitionId}");
Contact + 43924

Now that we have the _contactDefinitionID (43924) we can pass this into the getContactAssociatedTickets request

getContactAssociatedTicketsResponse1 ticketsResponse1;

GetContactAssociatedTicketsRequest ticketsRequest = new()
{
    _contactDefinitionId = 43924,
    _primaryKeyValue = "customer@email.com"
};

ticketsResponse1 = await serviceClient.getContactAssociatedTicketsAsync(ticketsRequest);
tickets = ticketsResponse1.@return;

foreach (var ticket in tickets)
    Console.WriteLine(ticket._itemId);

Which will return the internal number for the associated tickets with that contact

You can find a runnable project here

A message from FlyCast support:

Bradley,
Thanks for your time today. We were able to run the listContainerDefinitions command to get the Salesforce address book container ID. When then used listItemDefinitions, using the returned value from listContainerDefinitions. We then used the Item definition for the Contact item in your code and was able to get the list of associated tickets for the email address value (primary key) that was specified in the code.
Thanks,
Kyle Harrison

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article