Overview
TechnoMile’s Competitive Insights Connector is a solution built for Government Contractors to streamline federal data management, reporting, and gain more actionable intel.
The Competitive Insights Connector does this by centralizing real-time Federal data directly from sources such as USA Spending, Federal Procurement Data Systems (FPDS), and GovSearch. Fed Connect data is also displayed along with SAM and APFS forecast posts.
Upon installation, Competitive Insights data and functionality from these sources are available on multiple entities within your Microsoft Dynamics instance.
Audience
Microsoft Dynamics Administrators
IT Support
Prerequisites
Ensure that the TechnoMile’s Growth Suite package has already been installed and configured on your Microsoft Dynamics instance. Please contact TechnoMile Support or email support@technomile.com for the following information prior to starting your installation:
Competitive Insights Connector installation package
API List - TechnoMile Competitive Insights 2023.4.0.0 (.csv file)
Steps for Installation
Tips:
It is recommended to install TechnoMile’s Competitive Insights Connector in a Sandbox environment for testing, prior to its installation in your Production environment.
Please contact TechnoMile Support or email support@technomile.com for a separate Competitive Insights Connector installation package for your Sandbox/Test environment.
Login to your Microsoft Dynamics instance.
Open App Launcher and click Power Apps.

Click Environment and select an Environment, as per your requirements.

Go to Solutions and click Import.

Click Browse.

Select the TM Analytics Connector installation package that you received from TechnoMile, which is saved on your system.
TM Analytics Connector installation package is selected.
Click Next.

Click Import.
Page displays with the installed TechnoMile Competitive Insights package.
Steps for Configuration
Import API Data
Click the Settings icon and select Advanced settings.

Open the Settings sitemap and click Data Management.

Click Imports.

Click Import Data.

Click Choose File.

Select the TechnoMile Competitive Insights 2023.4.0.0.csv file that you received from TechnoMile, which is saved on your system and click Next.

Click Next again.

Click Next.
.png?sv=2026-02-06&spr=https&st=2026-10-25T15%3A30%3A53Z&se=2026-10-25T15%3A53%3A53Z&sr=c&sp=r&sig=v2PmR4hxeN5TC0HZB6mbKtOG9vw4Emg7mT55kafkiDg%3D)
Click the drop-down menu under the Microsoft Dynamics 365 Record Types column, select Config, and click Next.

Click the drop-down menu next to Mediator Vendor Url Link under Optional Fields and select Mediator Vendor URL.

Similarly, perform the same step as shown above for the Vendor Award Details With Piid field.
Click Next.

Click Next.

Enter Data Map Name as Analytics Mapping and click Submit.

Click Finish.
API Data is imported.
Register an Application on Microsoft Azure
Go to Azure Active Directory using the following URL - https://portal.azure.com/.

Click App registrations and then click New registration.

Perform the following steps:
Enter Name as Competitive Insights.
Choose Supported account types as Accounts in this organizational directory only.
Select Redirect URI as Web.
Click Register.
Competitive Insights application is registered on Microsoft Azure.
Configure Certificates & Secret Settings
Go to Certificates & secrets and click New client secret.

Enter field details such as Description, Expires, Start, and End and click Add.
NOTES:While adding client secret details, the Expires field has multiple options such as 3 months, 12 months, Custom, etc. Here, you can select any option, as per your requirements.
Note that post selecting the Custom option in the Expires field, the Start and End fields also need to be specified.
Client secret details are added.
Copy Value that is placed next to the Expires field as shown in the image below.

Paste the copied Value as Password into an application such as Notepad.

Configure API Permissions Settings
Go to API permissions and click Add a permission.
By default, the Microsoft APIs tab opens.Scroll down and click Dynamics CRM.

Click Grant admin consent.
API Permissions settings are configured.
Configure Manifest Settings
Go to Manifest.
Ensure that both the allowPublicClient and oauth2AllowImplicitFlow values are set as true.


Overview
Go to Overview.
Hover your cursor over the Application ID.
Click the Copy to clipboard icon.
Note that once the Application ID is copied, the hover text Copy to clipboard changes to Copied as highlighted in the image below.
Paste the copied ID as App ID into an application such as Notepad.

Similarly, perform the same step as shown above to copy Directory ID.

Paste the copied ID as Directory ID into an application such as Notepad.

Go to Azure Active Directory and click App registrations.
NOTE: Competitive Insights application displays in the list as highlighted in the image below.
Competitive Insights application is registered on Microsoft Azure.
Configure Application ID in Microsoft Dynamics
After login, click App registrations, then click All applications, enter text Competitive Insights in the search bar, and click Competitive Insights in search results.

Click the Copy to clipboard icon against Application ID.

Paste the copied ID into an application such as Notepad.

After login, click Environments and select TechnoMile FedCap Product.

Click See all under Users.

Click the app users list link.

Click New app user.

Click Add an app.
Create a new app user popup window opens.
Add an app from Azure Active Directory popup window opens.Paste the previously copied Application ID in the search bar, click Competitive Insights in search results, and click Add.

Select a Business unit and click the pencil icon against Security roles.

Select System Administrator and System Customizer and click Save.

Click Create.
Application User is added to Environment.
Copy URL from Power Automate
Open App Launcher and click Power Automate.

Click Environments and select an Environment, as per your requirements.

Go to Solutions, enter text technomile competitive insights in the search bar, and click TechnoMile Competitive Insights in search results.

Click Cloud flow and then click CI Widget - CRM Access Token Flow.

Click Edit.

Click When a HTTP request is received in the flow.
Click the Copy Url icon.

Paste the URL as CRM Access Token Flow URL into an application such as Notepad.

Go back to the previous tab and click Done.

Click CI Widget - MS Flow Register Token API.
Perform the same steps to copy its URL as shown in steps 5 - 7 of Copy URL from Power Automate.Paste the URL as MS Flow Register Token API into an application such as Notepad.

Add Config Entity to Settings Sitemap
Go back to your Microsoft Dynamics instance.
Open App Launcher and click Power Apps.

Click Environment and select an Environment, as per your requirements.

Go to Solutions, enter text default solution in the search bar, and click Default Solution in search results.

Click Tables, enter text config in the search bar, and click Config in search results.
TIP:
Sometimes, it may take up to several minutes to load the Config entity in a Default Solution.

Click Properties.

Click Advanced options.

Select the Appear in search results checkbox and click Save.

Go to Advanced Settings.
Click the funnel icon to access Advanced Find.

Select Config in the Look for: field and click Results.

Click Competitive Insights.

Paste the following:
Paste CRM Access Token Flow URL in the CRM Access Token Flow URL field.
Paste MS Flow Register Token API in the MS Flow Register Token API field.
Click Save.

Configure Growth Account Entity
Go back to Table in Power Apps by performing the same steps as shown in steps 1 - 4 of Add Config Entity to Settings Sitemap.
Click Account.

Go to the Forms tab and click Growth Account.
NOTE: In this scenario, Growth Account form is being used. However, you can use any Main form type (pertaining to the Account entity) here.
Power Apps Form page opens.Click Details and ensure that both the Label and Name fields are set as Details.

Add Sections to Growth Account
Go to Components.
Drag-and-drop 1-Column section onto the Form preview.
Enter both the Label and Name fields as WidgetSection.

Go to Form libraries and click Add library.

Enter text WidgetConnector in the search bar, select WidgetConnector.js, and click Add.
Library is added.
Go to Tree view and click Growth Account.

Expand On Load and click Event Handler.

Select Library as tma_WidgetConnector.js.
Enter Function as Widgetcontroller.
Select the Pass execution context as first parameter checkbox and click Done.
Event is configured on Growth Account.
Add Fields to Growth Account
Go to Components and drag-and-drop 2-Column section onto the Form preview.
Enter Label as Agency Information Powered By TechnoMile and Name as AgencyInfo.

Go to Table columns and clear the Show only unused table columns checkbox selection.

Enter text TM Agency Name in the search bar and drag-and-drop the TM Agency Name field into the Agency Information Powered By TechnoMile section.

Similarly, drag-and-drop the following fields into the same section:
TM Level 2 Agency
TM Address
TM Contact Identified
TM City
TM URL
TM State
TM Agency Phone
TM Country
TM Description
TM Zip

Go to Components and drag-and-drop 2-Column section onto the Form preview.
Enter Label as Vendor Information Powered By TechnoMile and Name as VendorInfo.

Go to Table columns and clear the Show only unused table columns checkbox selection.

Enter text TM Address in the search bar and drag-and-drop the TM Address field into the Vendor Information Powered By TechnoMile section.

Similarly, drag-and-drop the following fields into the same section:
TM Vendor Name
TM City
TM Vendor Parent Name
TM State
TM Current FY Transactions
TM Country
TM Current FY Transactions Amount
TM Zip
TM Description
TM URL
TM DUNS Number

Click Save and then click Publish.

Open App Launcher and go to any Model Driven App in a new tab (in this scenario, TechnoMile Growth app is being used).

Go to Accounts and click to open a Vendor Account record.


Vendor Account record page opens, here you can view the fields as added in step 10.
Similarly, go to an Agency Account record page to view the fields as added in step 5.
Go back to the Power Apps Form page and click Switch to classic.

Add Web Resource to Growth Account
Click Details, go to the INSERT tab, and click Web Resource.

Enter Web resource as tma_Widget_AnalyticsData and Name as Widget_AnalyticsData.
NOTE: Once the Name field value is inserted, then the Label field value is auto-populated accordingly.
Go to the Formatting tab and enter Number of Rows as 1.
Select the Automatically expand to use available space checkbox.

Select Scrolling as Never, clear the Display border checkbox selection, and click OK.

Go to the HOME tab, click Save, and then click Publish.
Publishing customizations… message displays.
NOTE: As a part of this package, we have CI-Account (Main Form) as a reference form.
Configure Contact Entity
Add Field to Contact
Go back to Table in Power Apps by performing the same steps as shown in steps 1 - 4 of Add Config Entity to Settings Sitemap.
Click Contact.
Enter text Contact in the search bar and click Contact in search results.

Click Forms.

Click Growth Contact.
NOTE: In this scenario, Growth Contact form is being used. However, you can use any Main Form type (pertaining to the Contact entity) here.
Enter text GS Office Phone in the search bar and drag-and-drop the GS Office Phone field into the New Contact section.

Click Save and publish.

Go to a Contact record page using App Launcher.
Here, you can view the field as added in step 6.
NOTE: As a part of this package, we have CI-Contact (Main Form) as a reference form.
Add GovSearch Tab to Contact
Go to Components and click 1-column tab.

Enter both the Label and Name fields as GovSearch.

Go to Form libraries and click Add library.

Enter text WidgetConnector in the search bar, select WidgetConnector.js, and click Add.
Library is added.
Go to Tree view and click CI-Contact.

Go to Events, expand On Load, and click Event Handler.


Select Library as tma_WidgetConnector.js.
Enter Function as Widgetcontroller.
Select the Pass execution context as first parameter checkbox and click Done.

Similarly, click Event Handler again, select Library as tma_WidgetConnector.js, enter Function as OnLoadContact, select the Pass execution context as first parameter checkbox, and click Done.
Event is configured on CI-Contact.
Click GovSearch and then click New Section.

Enter both the Label and Name fields as Contact Widget.

Go to Components, click Display, and then click HTML web resource.

Enter text tma_widget_contact in the search bar, select tma_Widget_Contact, and click Add.

Enter both the Label and Name fields as Widget_Contact, Component width as 1 column, and Component height as 12 rows, and select Scrolling as Never.

Click to select the GovSearch tab, go to Events, and click Event Handler.

Select Event Type as On Tab State Change and Library as tma_WidgetConnector.js, enter Function as OnChangeGovSearchContactTab, select the Pass execution context as first parameter checkbox, and click Done.

Click Save and publish.

Go to a Contact record page using App Launcher.
Here, you can view the GovSearch tab on this page.
Configure Growth Opportunity Entity
Add Tab & Section to Growth Opportunity
Go back to Table in Power Apps by performing the same steps as shown in steps 1 - 4 of Add Config Entity to Settings Sitemap.
Enter text Opportunity in the search bar and click Opportunity in search results.
TIP:
Sometimes, it may take up to several minutes to load the Opportunity entity in a Default Solution.
Go to the Forms tab and click Growth Opportunity.
NOTE: In this scenario, Growth Opportunity form is being used. However, you can use any Main Form type (pertaining to the Opportunity entity) here.
Power App Form page opens.Go to Components.
Drag-and-drop 1-column tab next to the Summary tab onto the Form preview.
Enter both the Label and Name fields as Competitive Insights.
NOTE: When you drag-and-drop a tab from Components onto the Form preview, a New Section is added onto that tab by default.
Click New Section and enter both the Label and Name fields as WidgetSection.

Similarly, perform the same steps as shown in steps 1 - 7 of Add Sections to Growth Account for configuring an Event and click Growth Opportunity in Tree view.
Event is configured on Growth Opportunity.
Click Save and then click Publish.

Add Field to Growth Opportunity
Go back to Solutions and click Solution with Growth Opportunity Form.

Click Opportunity.

Click Forms.

Click Growth Opportunity.

Enter text UEI in the search bar and drag-and-drop UEI under Spark.

Click Save and publish.

Go back to Opportunities under TechnoMile Growth - Sales and click to open an Opportunity Record.
Opportunity record page opens with the UEI field on it.
Add Web Resource to Growth Opportunity
Go to the INSERT tab and click Web Resource.

Enter Web resource as tma_Widget_Opportunity and Name as Widget_Opportunity.
NOTE: Once the Name field value is inserted, then the Label field value is auto-populated accordingly.
Go to the Formatting tab and enter Number of Rows as 3.

Select Scrolling as Never, clear the Display border checkbox selection, and click OK.

Go to the HOME tab, click Save, and then click Publish.
Publishing customizations… message displays.
NOTE: As a part of this package, we have CI-Opportunity (Main Form type) as a reference form.
Add Spark Entity
Go to www.make.powerapps.com.
NOTE: Refer to the following image if you want to use another commercial URL.
After login, click Environment and select a suitable Environment (in this scenario, TechnoMile FedCap Product is being used).

Click Solutions, enter text default solution in the search bar, and click Default Solution in search results.

Click Apps and go to any Model Driven App in a new tab (in this scenario, TechnoMile Growth app is being used).

Click the Navigation icon, expand Growth, select TechnoMile Growth - Sales, and click Add.

Select Subarea.

Select Content type as Table and Table as Spark and click Add.
NOTE: The Title field is auto-populated.
Spark View is populated.Click Save and then click Publish.

Click Settings.
Settings popup window opens.Click Features, select Yes under In-app notifications, and click Save.

Click Publish.

Login to your Microsoft Dynamics instance and go to Sparks under TechnoMile Growth - Sales.
Spark View displays.
Assign Security Roles
Go back to Advanced Settings.
Open the Settings sitemap and click Security.

Click Security Roles.

Scroll down and click Sales Manager.

Go to the Custom Entities tab.

Scroll down and click the Config entity multiple times to give full access to Security Role: Sales Manager. Note that all the circular icons against the Config entity MUST turn green.

Click Save and Close.
Updating role… message displays.
Similarly, perform the same steps as shown above for the following Security Roles:
Growth System Customizer
TechnoMile Growth Suite Compliance Role
TechnoMile System Customizer