# LTI Pro attributes

**URL:** <https://devforum.zoom.us/t/lti-pro-attributes/8918>\
**Category:** App Marketplace\
**Created:** [March 18, 2020, 5:47pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918 "2020-03-18T17:47:06Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![vhu](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/vhu/32/3716_2.png) [@vhu](https://devforum.zoom.us/u/vhu)\
**Post date:** [March 18, 2020, 5:47pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/1 "2020-03-18T17:47:06Z")

</div>

**Description**

In the LTI Pro \> “LTI Credentials” tab, there’s a section called “Tracking Field” with the description: “Set tracking field values from LTI attributes.”

Even after I correctly configured the tracking field mappings, I wasn’t able to see the LTI attributes in my active hosts report or API response (see the screenshots section)

Questions:

1. Did I miss any steps? (See the “How To Reproduce” section below)
2. Is the tracking field our only way of retrieving LTI attributes?
3. How are those LTI attributes persisted in your datastore (is it tied directly to the recording or meeting, for how long)?
4. Can the tracking fields be accessible through the API at all?

**Which App?**  
LTI Pro

**How To Reproduce (If applicable)**  
Steps to reproduce the behavior:

1. Install the LTI Pro App
2. Follow the integration steps outlined in [the documentation](https://zoomappdocs.docs.stoplight.io/lti-pro-v2/welcome/getting-started).
3. Congifure the tracking fields to the LTI attributes I need (e.g. custom\_canvas\_course\_id)
4. Record a new meeting by starting one Zoom session from the Canvas integration page (a request was sent to [applications.zoom.us/lti/rich](http://applications.zoom.us/lti/rich))
5. Expect the tracking field to show up in the API response when retrieving the recording.

Unexpected:

- the tracking field columns showed nothing on the “active hosts” report page
- no tracking fields are returned in the `https://api.zoom.us/v2/meetings/176809717/recordings ` API

**Screenshots (If applicable)**  
My tracking field mapping:

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/9/9f1cb7baca669ff2ca30480fa8e5d52e5451f104.png)

**Additional context**

- What we really care about is a way to identify the correct LTI context (course ID) when our customer imports their course recordings, so we can easily map their imports to the correct course folder.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [March 18, 2020, 8:54pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/2 "2020-03-18T20:54:13Z")

</div>

Hey @vhu, thanks for posting and using Zoom!

Let me know if this post asked a few days ago answers your question:

> [@API to retrieve course meetings & recordings](https://devforum.zoom.us/t/api-to-retrieve-course-meetings-recordings/3981/7):
>
> We’re looking into the LTI integration between our LMSes and Zoom. (LTI Pro app I think) This integration lets you schedule meetings for a course in the LMS, hosted by the course instructor and attended by students. When you look in the LMS, it displays the Zoom meetings for the course. These meetings will also show up in people’s Zoom account outside the LMS. We’d like to be able to automate the creation and management of course meetings. I can see in the UI for the LTI integration that it …

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![vhu](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/vhu/32/3716_2.png) [@vhu](https://devforum.zoom.us/u/vhu)\
**Post date:** [March 18, 2020, 9:19pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/3 "2020-03-18T21:19:17Z")

</div>

Thanks for the response, @tommy. I don’t think they are the same question, but maybe @jcalz was trying to achieve something similar.

I do not need to access the [https://applications.zoom.us/api/v1/lti/rich](https://applications.zoom.us/api/v1/lti/rich) API if Zoom can support our use case of revealing certain LTI attributes. The closest solution I found was to use the tracking fields (please read my original post) but that didn’t seem to work correctly.

The TL;DR version of my original questions:

1. I couldn’t get the LTI attributes to be recorded correctly through the Tracking Fields. What did I do wrong?
2. What’s the best way to retrieve the LTI attributes passed from LMS to Zoom?

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [March 18, 2020, 9:46pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/4 "2020-03-18T21:46:48Z")

</div>

Hey @vhu,

Please checkout this guide:

> **[Configuring LTI Pro - Welcome - LTI Pro](https://zoomappdocs.zoom.us/lti-pro-v2/welcome/manage-and-configure#configure-tracking-field)**
>
> Configuring LTI Pro
> 
> Sign In, Manage, and Configure LTI Pro
> 
> LTI Pro must be installed to configure and install on your LMS, for help installing LTI Pro...

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![vhu](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/vhu/32/3716_2.png) [@vhu](https://devforum.zoom.us/u/vhu)\
**Post date:** [March 18, 2020, 10:04pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/5 "2020-03-18T22:04:58Z")

</div>

I have. In fact, that’s how I found out about the tracking field approach.

Can you please answer my questions?

> 1. I couldn’t get the LTI attributes to be recorded correctly through the Tracking Fields. What did I do wrong?
> 2. What’s the best way to retrieve the LTI attributes passed from LMS to Zoom?

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [March 19, 2020, 4:14am UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/6 "2020-03-19T04:14:26Z")

</div>

Hey @vhu,

We are doing our best to get your questions answered, here is an example of how to set an LTI attribute called server\_domain. The same kind of thing could be done to set LTI attributes for tracking fields.

> **[LTI Pro for Canvas - LMS Guides - LTI Pro](https://zoomappdocs.zoom.us/lti-pro-v2/guides/canvas)**
>
> LTI Pro for Canvas
> 
> Overview
> 
> This article provides specific instructions for configuring Zoom's LTI Pro with Canvas. 
> Note: Please ensure that LTI Pro ...

Let me know if this helps!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![vhu](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/vhu/32/3716_2.png) [@vhu](https://devforum.zoom.us/u/vhu)\
**Post date:** [March 19, 2020, 4:51pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/7 "2020-03-19T16:51:16Z")

</div>

Thank you for your response, Tommy, but I am afraid that my question is still not answered.

server\_domain is a static property that one can configure from the LMS (canvas) so it’s passed to Zoom LTI Pro and Zoom can determine which domain the meeting should be tied to.

However, for the custom\_canvas\_course\_id that we are talking about here, it’s an attribute that’s already passed from Canvas to Zoom LTI. My question is, how can I retrieve that very same custom\_canvas\_course\_id attribute when a Zoom recording is imported to our site. We use the [Meetings API](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting) to retrieve relevant metadata, so it will be great if we can somehow access the LTI attributes there.

If you are not familiar with how the LTI attributes are handled after they are passed from LMS (canvas), can you help us connect with someone who may know the answer? Ideally someone technical from the LTI Pro team and the Meeting API team.

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [March 19, 2020, 6:09pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/8 "2020-03-19T18:09:43Z")

</div>

Hey @vhu,

We are having the engineers who built the app look into this. (ZOOM-144471)

Thanks for your patience,  
Tommy

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [March 19, 2020, 9:56pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/9 "2020-03-19T21:56:57Z")

</div>

Hey @vhu,

I believe it is included in the tracking fields list of the [Get Meeting Response](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meeting), which you can call after you receive the [Recording Completed Endpoint.](https://marketplace.zoom.us/docs/api-reference/webhook-reference/recording-events/recording-completed)

 ![Screen Shot 2020-03-19 at 3.56.26 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/7/7a1b5f2ec75f13e869d0acdeeff6a8b38363a115.png)

This is an uncommon flow so apologies for the delays.

The “Course Id” = context\_id(LTI attributes) + “account id” + “domain”

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![vhu](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/vhu/32/3716_2.png) [@vhu](https://devforum.zoom.us/u/vhu)\
**Post date:** [March 20, 2020, 6:11pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/10 "2020-03-20T18:11:21Z")

</div>

I didn’t realize that `tracking_fields` is already supported in the meetings API, so thank you very much for point that out.

On the other hand, can you help me figure out why the tracking fields didn’t show up correctly? I used the LTI attribute key (custom\_canvas\_course\_id) based on the HTTP request sent to [applications.zoom.us/lti/rich](http://applications.zoom.us/lti/rich). Was there anything I did wrong?

Update: the tracking field is only recorded when the meeting is first created. If a tracking field is configured after the meeting is created, it will not be picked up (even if the meeting is started after the tracking field is configured)

Thank you very much for the help on this matter, Tommy!

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [March 20, 2020, 8:42pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/11 "2020-03-20T20:42:30Z")

</div>

Happy to help!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 7:33pm UTC](https://devforum.zoom.us/t/lti-pro-attributes/8918/12 "2020-08-21T19:33:40Z")

</div>


