Help Center

How can we help?

Answers to the most common questions about setting up and using CI-Addon.

Getting started

What is CI-Addon and who is it for?+
CI-Addon is a set of professional tools built on top of Microsoft Customer Insights – Journey (CIJ). It lets marketing teams translate their CIJ web forms into multiple languages, apply custom branding and styling, automatically route visitors to the correct form variant (e.g. a DOI form for Germany), and publish a branded portal for their CIJ events — all without modifying the CIJ configuration or touching HTML. CI-Addon is for CIJ users who operate across multiple markets and need localised, styled, compliant forms and event pages quickly.
What do I need before I can start?+
You need: - An active Microsoft Customer Insights – Journey licence with at least one published web form. - A CI-Addon account (sign up with your Microsoft account via Microsoft Authenticator). - The embed code from your CIJ web form — found in CIJ under the form's embed/publish settings.
How does my organisation work in CI-Addon?+
When you first sign in, CI-Addon creates an organisation for you automatically. All forms, translations, styling, compliance profiles and events belong to the organisation — not to individual users. You can invite colleagues via Settings → Members so they can collaborate on the same forms and data.
How long is the free trial and what is included?+
When you sign up, your organisation gets 14 days of free trial with every module unlocked — Translation, Styling and Events. After 14 days, if you haven't converted to a paid plan, your account becomes inactive: you won't be able to modify forms, styling or events, though nothing is deleted immediately. If the account remains inactive, everything is permanently deleted after 30 days. If you convert to a paid plan at any point, everything you built during the trial stays exactly as it was — no need to set anything up again. CI-Addon is currently in Public Preview. Pricing will be announced before General Availability, with advance notice before any charges begin.

Adding & setting up forms

Where do I find my CI embed code?+
In Microsoft Customer Insights – Journey, open your web form, go to the Publish or Embed tab, and copy the full script block. It looks similar to: <script src="https://assets-eu.mkt.dynamics.com/..." data-form-id="..." ...></script> Paste this code into CI-Addon when adding a new form. CI-Addon reads the form-id and URL from the embed code to detect your form fields.
What does "Detect fields" do?+
CI-Addon fetches your live CIJ form from Microsoft's servers and analyses its HTML. It identifies all visible input fields, their labels and placeholders, as well as success/error messages. These become the base for your translations. Detection only reads the form — it never changes anything in CIJ.
My form was updated in CIJ. What do I do?+
Open the form in CI-Addon and click "Re-detect". CI-Addon will compare the live form with your saved field list and show you which fields were added or removed. Confirm the changes, then go to the Translations tab and add translations for any new fields. When done, click "Save & deploy" — CI-Addon rebuilds the CDN file automatically under the same filename, so your widget code on the website does not need to change.
Where do I put the widget code on my website?+
After completing all setup steps, CI-Addon generates a small widget script (hosted on our CDN). Replace the original CIJ embed code on your website with this new widget script. The widget loads your translations, applies your styling and handles DOI routing automatically. The original CIJ embed code should be removed from your website — the widget script replaces it entirely.
How many forms can I create?+
During Public Preview, the default limit is 3 forms per organisation. If you need more, contact us and we will adjust the limit for your account.

Translations & auto-translate

How does auto-translate work?+
CI-Addon uses Claude AI (Anthropic) to translate your form field labels, placeholders and messages into the languages you have selected. Common field labels (First name, Email, Submit, etc.) are served from a pre-verified translation dictionary instantly — without an AI call. Only labels not already in the dictionary are sent to Claude. Each new translation is saved to the dictionary, so the second time you translate the same text it is instant and free.
Does "Next" on the translations step save my work?+
In the form editor, the button is labelled "Save & deploy" — clicking it saves your translations to the database and immediately rebuilds the CDN widget file. The widget URL stays the same, so no changes are needed on your website. In the setup wizard (when adding a new form), the step 4 save button stores translations to the database only. The CDN widget is deployed at step 6. Clicking Next in the wizard without saving first will not lose your edits in the current browser session, but they will be lost if you navigate away or close the tab.
How do I add a language after the form is already set up?+
Open the form editor and use the language panel on the left. Click "+ Add language", select the language and save. You can then run auto-translate for the new language and save the result. The CDN widget file is automatically updated with the new language.
What are the cift_ fields in the translation editor?+
Fields starting with cift_ (cift_country, cift_language, cift_consent_ver, cift_timestamp, cift_doi) are hidden system fields set automatically by the CI-Addon widget at runtime. They are shown in read-only mode so you are aware of them, but they cannot be edited — the widget always writes the correct values.
What are "Default field values"?+
Default field values let you pre-fill a hidden field on your form with a fixed value, per language — useful for CRM routing, for example routing a lead to your Danish sales team when the form is shown in Danish. Only fields set to "Hide field" in CIJ's form editor appear in the dropdown — not free text. The cift_ system fields are intentionally excluded, since they are already set automatically. The field must already exist in CIJ (mapped to Dataverse, or unmapped/custom) — CI-Addon can never create new fields, only set a value on one that already exists. If the field isn't listed, click "Re-detect" on the form's detail page first. There is no separate save button — values are saved together with the rest of your translations via "Save & deploy".
What are "Page-specific field values"?+
Page-specific field values set a hidden field's value based on which page the form is shown on — useful when the same form is embedded on several pages (for example three different product pages) and you want to know which page a submission came from. Unlike Default field values (a fixed value per language), this varies per page and is independent of language. Found under "Force language from URL" on the form's detail page — it's a form-level setting, not per language tab. The matcher is a free-text "URL contains" field — a case-insensitive substring search in the page's URL path. For example, "product-a" matches both "/product-a/" and "/en/product-a-xl". This is deliberately loose matching, not an exact path match, since real URLs often carry IDs, language prefixes or a trailing slash. The field to set uses the same dropdown as Default field values — only hidden fields already detected on the form, cift_ system fields excluded. You can add multiple rules; all matching rules run at once — for example, three rows matching "product-a", "product-b" and "product-c" can each set the same field to a different value, all on the same form and the same widget code. If the same field is set by both Default field values and Page-specific field values, Page-specific field values wins — the more specific signal takes priority. Has its own "Save" button, separate from the main translation save.
What does "Force language from URL" do?+
Force language lets the same widget script show a fixed language on a specific site or domain — completely independent of GeoIP, browser language or the visitor's physical location. Useful when you run the same form across multiple markets with a consistent URL structure. Two modes, depending on how your site is structured: - Path-based: one domain with the language in the URL path (e.g. www.example.com/es-es/) — always shows Spanish on that path. - Domain-based: separate country domains (e.g. example.com = English, example.es = Spanish, example.fr = French) — the language is determined by which domain the script runs on. When active, this is a hard override — the path or domain always wins, even if a German visitor is on your .fr domain. This does not necessarily follow DOI/compliance logic for the country — it's a deliberate choice about what language to display. DOI routing is handled separately (see Smart Embed and the country field for residency check). The existing ?lang=xx URL parameter still works and is unaffected. When Force language is off, the normal priority order applies (?lang → browser/GeoIP → fallback language).
Why does the Forms list show "Disable translations" on some forms and "Delete" on others?+
The action shown depends on whether the form is also active in another CI-Addon module (Form Styling). - "Disable translations" — the form has both translations and styling enabled. Disabling translations turns off the translation module for this form, but keeps the form record active so styling continues to work. You can re-enable translations from the form editor at any time. - "Delete" — the form only has translations enabled (no active styling). Deleting removes the form record from CI-Addon entirely and deletes the associated CDN widget file. Your original CIJ form is not affected. In both cases, the action only affects CI-Addon — nothing changes in Customer Insights – Journey.

Preference Centers & compliance

What is a Preference Center in CI-Addon?+
A Preference Center (PC) is a special CIJ form that lets contacts manage their marketing consent. In CI-Addon you register your PC forms as compliance profiles. These profiles are used to link web forms to a PC and to configure DOI (Double Opt-In) settings for markets that require it. You must add at least one Preference Center before you can create web forms in CI-Addon.
What is DOI and which markets require it?+
DOI (Double Opt-In) requires contacts to confirm their subscription via a second email before they are added to marketing lists. It is legally required or strongly recommended in Germany (DE), Austria (AT), Switzerland (CH), Greece (GR), Luxembourg (LU) and Norway (NO). When Smart Embed is active, CI-Addon automatically shows the DOI form variant to visitors from these markets.
Can I translate my Preference Center form?+
No. Microsoft CIJ hosts Preference Center forms directly on their own servers and delivers a unique link per contact via email. It is not technically possible to inject the CI-Addon widget into a CIJ-hosted page, so translation of Preference Centers is not supported.
Why does it say I need to complete compliance setup before adding forms?+
CI-Addon requires at least one Preference Center to be registered before you can create web forms. This ensures DOI requirements for markets like DE, AT and CH are properly configured before any forms go live. Go to Preference Centers, add your PC HTML, and confirm the setup to unlock form creation. This step is a reminder and a safeguard, not a compliance guarantee. CI-Addon does not manage or take responsibility for your compliance setup — that is always configured inside CIJ and remains your organisation's own responsibility.

Smart Embed (DOI routing)

What does Smart Embed do?+
Smart Embed is a GeoIP-based routing feature. When a visitor loads your form, the CI-Addon widget checks the visitor's country (via the request country header on Vercel's edge network). If the visitor is from a DOI-required market (DE, AT, CH, GR, LU, NO), they automatically see the DOI form variant. All other visitors see the standard form. This happens in milliseconds with no visible redirect.
How do I set up Smart Embed?+
Smart Embed is configured on your standard (non-DOI) form only: 1. Create both your standard form and your DOI form in CIJ and in CI-Addon. 2. Open the standard form in CI-Addon and go to the Smart Embed section. 3. Select or paste the DOI form as the routing target. 4. Deploy — the widget on your standard form now routes DOI-market visitors to the DOI form automatically. Do not add a second Smart Embed on the DOI form itself.
What is the "Country field for residency check" in Smart Embed?+
GeoIP alone isn't always enough for global companies — what matters legally is a visitor's residency, not their physical location when they visit. This lets the visitor's own Country field correct Smart Embed's GeoIP-based choice after the form has already loaded. Found in the Smart Embed panel, only available when Smart Embed/DOI routing is active — no separate setup needed elsewhere. Enter the field's name (its data-targetproperty) — e.g. address1_country, the recommended standard field. Not a field like "Preferred Language", which only indicates communication language, not residency. The field can be a free-text input — a dropdown is not required. Recognition covers common spellings for the 6 DOI markets (Germany/Deutschland/DE, etc.) but is deliberately not typo-tolerant — a clear misspelling won't match, and no popup is shown (a safe default, rather than a wrong popup). When a mismatch is found (the visitor types a country that requires DOI but is seeing the standard form, or vice versa), a Yes/No popup appears. Choosing Yes reloads the page and shows the correct form, with already-entered field values preserved. The page reload on confirmation is a deliberate technical limitation, since Microsoft's form script does not support re-rendering the form in place.
How is the visitor's country detected?+
CI-Addon uses the country header injected by Vercel's edge network (similar to Cloudflare's CF-IPCountry). This is a server-side GeoIP lookup based on the visitor's IP address. It works for all visitors without any cookies or consent. Language detection uses the browser's Accept-Language header as a secondary signal.
How can I test Smart Embed?+
Use a VPN to simulate a visitor from a DOI-required country (e.g. Germany). When you submit the form, check the form submission in CIJ — it should have new_cift_country set to "DE" and come from the DOI form variant. You can also check the browser network tab to see which form is loaded.

Form Styling

What can I customise with Form Styling?+
Form Styling lets you change the visual appearance of your CIJ forms without editing the CIJ configuration or the form's HTML. You can adjust colours, fonts, button styles, input borders, spacing and more. You can also paste your website's CSS URL so CI-Addon can extract your brand colours automatically.
How do I set up a styled form?+
Go to Form Styling → New styled form. Paste your CIJ form's HTML (copy it from your browser's page source or from the CIJ editor). CI-Addon detects your existing form styles and lets you adjust them visually. When you are happy with the result, generate the styled version and copy the widget code to your website.
Can I use both styling and translations on the same form?+
Yes. A styled form can also have translations active. The widget applies both the CSS overrides and the translated field labels/messages at runtime. Make sure you have completed the translation setup on the form in addition to the styling setup.

Event portals

How does the CI-Addon event portal work?+
CI-Addon reads your live events directly from Customer Insights – Journey via the Events API and publishes them on a branded portal at events.ci-addon.com/your-org. You manage the portal appearance (logo, colour, description) in CI-Addon. CIJ controls which events are live — an event only appears on the portal when it is published in CIJ.
Do I need to manually sync events?+
You can click "Sync now" in the portal settings to fetch your latest events immediately. CI-Addon also syncs automatically on a daily schedule. When you publish a new event in CIJ, click Sync now to make it appear on your portal right away.
Why should I use a shared registration form template across my events?+
When you translate a registration form in CI-Addon, the translation applies to every event that uses that form. If each event has its own unique form, you would need to set up translations separately for each one — which quickly becomes a lot of work for organisations with many events. By reusing one form template across events of the same type (e.g. one form for all in-person events, one for online events), you only translate once and all events are covered automatically. Recommended setup: - Create one form for in-person events (name, email, dietary preferences, etc.) - Create one form for online events (name, email, time zone, etc.) - Use those two forms across all your events in CIJ This is also good CIJ practice independently of CI-Addon — it keeps your data model clean and consistent.
How do I reuse a registration form across events in CIJ?+
In Customer Insights – Journey: 1. Create your event registration form once — go to Event planning → Forms and build the form with all the fields you need. 2. When creating a new event, go to the Form tab. 3. Under "Registration form", select your existing form from the list instead of creating a new one. 4. CIJ will ask if you want to use the existing form or create a copy. Choose "Use existing form". 5. Your event is now linked to the shared form — and CI-Addon's translations apply automatically. If you need different fields for different event types, create one form per type (e.g. in-person and online) and reuse each consistently.
How do I translate and style my event registration form?+
After syncing events, CI-Addon automatically detects the registration form(s) used across your events. In the portal settings under "Registration Forms", you will see each unique form design listed. Click "Translate →" to add translations or "Style →" to apply visual styling — exactly the same as for regular marketing forms. Once you save and deploy, the translated and styled form appears on all events that use that form design.
Should I create multiple event portals?+
Most organisations need just one portal. Multiple portals make sense if you have distinct audiences with different branding — for example, a portal for public events and a separate portal for internal company events, or if you manage events for multiple brands under the same CIJ environment. Each portal has its own branding, description and CIJ web application token.
How does CI-Addon optimise my event portal for search engines and AI search (GEO)?+
CI-Addon automatically adds structured event data (Schema.org Event markup) to every event page. This means: - Google can show your events as rich results — event cards with date, location and registration link directly in search results. - AI search tools like Perplexity, ChatGPT Search and Google AI Overviews can cite and surface your events when people search for relevant topics. - Social sharing (LinkedIn, Facebook) uses Open Graph tags to show a proper title, description and image. All of this happens automatically — no setup required. We use the event name, description, date, location, format and image that you have already entered in CIJ. For best results, write a clear and specific description in CIJ. Include the date, location, target audience and key topics. The more concrete the description, the better search engines and AI tools understand your event.
Can I customise the SEO title or description per event?+
Currently the meta title and description are taken directly from CIJ (event name and description). If you want a different title or description to appear in search results, update it in CIJ — CI-Addon picks it up automatically on the next sync. Custom per-event SEO overrides (without changing CIJ) are planned for a future release.

Health monitoring & status

What do the status badges on my forms mean?+
Each form has a health status badge: - OK — form is live and fields match what CI-Addon expects. - Fields changed — CI-Addon detected that fields were added or removed in CIJ since your last detection. Open the form and run Re-detect to review and confirm the changes. - Warning — a non-critical issue was found during the last health check. - Down — the form URL was unreachable during the last health check. - Unknown — the form has not been checked yet (runs daily at 06:00 UTC).
How often does CI-Addon check my forms?+
CI-Addon runs a health check once per day at 06:00 UTC. The check fetches your live CIJ form and compares the detected fields with what is stored in CI-Addon. If fields have changed, the status is set to "Fields changed" so you can review and confirm.
How do I resolve a "Fields changed" status?+
Open the form in CI-Addon and click "Re-detect". Review the diff showing added and removed fields. If the changes are expected (e.g. you added a field in CIJ), confirm them. CI-Addon updates your translation setup and redeploys the widget. The status resets to OK.

Still have questions?

We are happy to help. Reach out and we will get back to you as soon as possible.

Email support