# Building an Integration

- [Directory Layout](/integrations/build-an-integration/directory-layout.md): Integrations should follow the suggested directory layout to improve readability
- [package.json](/integrations/build-an-integration/package_json.md)
- [Configuration File](/integrations/build-an-integration/configuration-file.md): configure your integration and setup options
- [Integration Main Module](/integrations/build-an-integration/main.md): The integration.js file is the main entry point to your integration on the Polarity server
- [startup](/integrations/build-an-integration/main/startup.md): Initialize your integration and setup logging
- [doLookup](/integrations/build-an-integration/main/dolookup.md): Required function which takes entities from the user and returns enriched results
- [Entity Objects](/integrations/build-an-integration/main/dolookup/entity-objects.md): the dolookup method receives an array of entity objects
- [Result Objects](/integrations/build-an-integration/main/dolookup/result-objects.md): result objects contain the return data for a specific entity being looked up
- [Error Objects](/integrations/build-an-integration/main/dolookup/error-objects.md)
- [onDetails](/integrations/build-an-integration/main/ondetails.md): Run second order queries when a user expands your integration in the Overlay Window
- [onMessage](/integrations/build-an-integration/main/onmessage.md): Implement interactive two-way communication between your component/template and the server
- [validateOptions](/integrations/build-an-integration/main/validateoptions.md): validate user options on your integration before they save them
- [Customizing the Overlay Window](/integrations/build-an-integration/customizing-the-overlay-window.md)
- [Templates](/integrations/build-an-integration/customizing-the-overlay-window/templates.md): Use the Handlebars templating language to customize the look of your integration.
- [Conditionals](/integrations/build-an-integration/customizing-the-overlay-window/templates/conditionals.md): conditionally show information in templates using if, unless, and else helpers.
- [Displaying a List of Items](/integrations/build-an-integration/customizing-the-overlay-window/templates/displaying-a-list-of-items.md)
- [Display Object Properties](/integrations/build-an-integration/customizing-the-overlay-window/templates/objects.md)
- [Built-in Helpers](/integrations/build-an-integration/customizing-the-overlay-window/templates/built-in-helpers.md): Handlebars includes a collection of useful built-in helpers to assist with displaying data
- [Displaying Icons](/integrations/build-an-integration/customizing-the-overlay-window/templates/displaying-icons.md): Make use of Font Awesome icons in your templates
- [Component File](/integrations/build-an-integration/customizing-the-overlay-window/component-file.md): Create computed properties, trigger actions, and add interactive elements to your template
- [Aliased Properties](/integrations/build-an-integration/customizing-the-overlay-window/component-file/aliased-properties.md)
- [Computed Properties](/integrations/build-an-integration/customizing-the-overlay-window/component-file/computed-properties.md): Define new properties using computed properties
- [Event Hooks](/integrations/build-an-integration/customizing-the-overlay-window/component-file/event-hooks.md): Integration relation event hooks
- [CSS Styles](/integrations/build-an-integration/customizing-the-overlay-window/styles.md): Style your integration with less stylesheets
- [Vendor Javascript](/integrations/build-an-integration/vendor.md): Vendor files allow you to include third-party resources as part of your integration
- [Inserting Javascript into DOM](/integrations/build-an-integration/vendor/inserting-javascript-into-dom.md): You can add remote scripts to your integration through the vendor file
- [README Guide](/integrations/build-an-integration/readme-guide.md)
- [Debugging Integrations](/integrations/build-an-integration/debugging.md): Tips and tricks to help you debug your integration
- [Web Inspector](/integrations/build-an-integration/debugging/web-inspector.md): You can enable the Chrome web inspector to help debug and design your integration
- [Using Integration Logs](/integrations/build-an-integration/debugging/using-integration-logs.md): Logging information from your integration is a great way to debug.
- [Testing Main Module](/integrations/build-an-integration/debugging/testing-main-module.md): You can run code from main module in isolation for testing purposes
