# WebEngage

<p><a href="https://webengage.com/" >WebEngage</a> is a full stack marketing automation tool. It lets you drive growth for your businesses by engaging your users via push and in-app notifications, email campaigns, etc. You can also leverage WebEngage&rsquo;s analytics capabilities to get a 360-degree view of your users and the product.</p>
<p>RudderStack supports WebEngage as a destination to which you can seamlessly send your event data for efficient marketing and analytics.</p>
<p>Find the open source transformer code for this destination in the <a href="https://github.com/rudderlabs/rudder-transformer/tree/main/src/v0/destinations/webengage" >GitHub repository</a>.</p>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="connection-compatibility">Connection compatibility</h2>
  
  
  
  <div class="quick-info">
    <div>
      <div class="connection-modes-column-headers">
        <table>
          <tr class="connection-modes-column-headers">
            <th colspan="4">
            Destination Information
          </th>
        </tr>
          <tr class="destination-info-content">
            <td>
              <ul>
                <li>
                  <b>Status:</b> Generally Available 
                </li>
                <li>
                  <b>Supported sources:</b>  
                  
                      Web,
                  
                  
                      Cloud,
                  
                  
                      Android (Java)
                      ,
                  
                  
                      Android (Kotlin)
                      ,
                  
                  
                      iOS (Obj-C)
                      ,
                  
                  
                      iOS (Swift)
                      ,
                  
                  
                      Unity,
                  
                  
                      AMP
                      ,
                  
                  
                      Warehouse,
                  
                  
                      React Native
                      ,
                  
                  
                      Flutter,
                  
                  
                      Cordova,
                  
                  
                      Shopify
                  
                </li>
                <li>
                  Refer to it as <b>WebEngage</b> in the <a href="/docs/sources/event-streams/sdks/rudderstack-javascript-sdk/filtering/#filtering-destinations">Integrations object</a>.
                </li>
              </ul>
            </td>
          </tr>
        </table>
      </div>
      <div class="table-content connection-modes-table">
        
          <table>
            <tr class="heading connection-modes-header">
              <th colspan="4">
              Connection Modes
              <a href=/docs/destinations/rudderstack-connection-modes>
                <i class="fa-regular fa-circle-info"></i>
              </a>
            </th>
          </tr>
            <tr class="connection-modes-column-headers">
              <th>Source</th>
              <th>Cloud mode</th>
              <th>Device mode</th>
              <th>Hybrid mode</th>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                AMP
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Android (Java)
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Android (Kotlin)
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Cloud
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Cordova
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Flutter
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                iOS (Obj-C)
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                iOS (Swift)
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                React Native
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Shopify
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Unity
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Warehouse
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
            <tr class="connection-modes-row">
              <td>
                Web
                
              </td>
              <td>
                <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
              <td>
                 <img src=/docs/images/no-image.svg loading="lazy"
                    decoding="async" class="img__small" alt="not supported" />
              </td>
            </tr>
            
          </table>
         
      </div>
      <div class="table-content message-types-table">
          <table>
            <tr class="heading message-types-header">
              <th colspan="9">
              Supported Message Types
            </th>
          </tr>
          <tr class="message-types-column-headers">
            <th>Source</th>
            <th>Identify</th>
            <th>Page</th>
            <th>Track</th>
            <th>Screen</th>
            <th>Group</th>
            <th>Alias</th>
            <th>Record</th>
            <th>AudienceList</th>
          </tr>
          
          
          
            
              
              
          
          
          
            
            <tr class="heading message-mode-header">
              <th colspan="9">Cloud mode</th>
            </tr>
              <tr class="message-mode-row">
                <td>Supported sources</td>
                <td>
                  <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
                </td>
                <td>
                  <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
                </td>
                <td>
                  <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
                </td>
                <td>
                  <img src=/docs/images/tick.svg loading="lazy" decoding="async" class="img__small" alt="supported" />
                </td>
                <td>
                   <img src=/docs/images/no-image.svg loading="lazy"
                      decoding="async" class="img__small" alt="not supported" />
                </td>
                <td>
                   <img src=/docs/images/no-image.svg loading="lazy"
                      decoding="async" class="img__small" alt="not supported" />
                </td>
                <td>
                   <img src=/docs/images/no-image.svg loading="lazy"
                      decoding="async" class="img__small" alt="not supported" />
                </td>
                <td>
                   <img src=/docs/images/no-image.svg loading="lazy"
                      decoding="async" class="img__small" alt="not supported" />
                </td>
              </tr>
              
          
            </table>
        </div>
    </div>
  </div>
  

<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="get-started">Get started</h2><p>Once you have confirmed that the source platform supports sending events to WebEngage, follow these steps:</p>
<ol>
<li>From your <a href="https://app.rudderstack.com/" >RudderStack dashboard</a>, add a source. Then, from the list of destinations, select <strong>WebEngage</strong>.</li>
<li>Assign a name to the destination and click <strong>Continue</strong>.</li>
</ol>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="connection-settings">Connection settings</h3><p>To successfully configure WebEngage as a destination, you will need to configure the following settings:</p>

<figure class="image--main "  >
    <a 
         href="/docs/images/event-stream-destinations/webengage-connection-settings.webp"
        
        >
        <img src="/docs/images/event-stream-destinations/webengage-connection-settings.webp" 
         alt="WebEngage connection settings"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>

<ul>
<li><strong>License Code</strong>: Enter your WebEngage license code.</li>
<li><strong>API Key</strong>: Enter your WebEngage API key.</li>
</ul>

<html lang="en">
<blockquote class="info">
  <div class="tip-quote">
    
    <div class="tip-text">To get your WebEngage license code and API key, log into your WebEngage dashboard and go to <strong>Data Platform</strong> &gt; <strong>Integrations</strong> &gt; <strong>REST API</strong>. For more information, refer to the <a href="#faq" >FAQ</a> section below.</div>
  </div>
</blockquote>

</html>
<ul>
<li><strong>Data Center</strong>: Select your WebEngage data center from the dropdown.</li>
</ul>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="identify">Identify</h2><p>The <a href="https://www.rudderstack.com/docs/event-spec/standard-events/identify/" ><code>identify</code></a> method lets you identify a user and associate them to their actions. It also lets you record any traits about them like their name, email, etc.</p>
<p>RudderStack uses the <code>identify</code> call to create or update the customer information in WebEngage. It maps <code>userId</code> or <code>anonymousId</code> (<code>userId</code> is prioritized if both are present ) to WebEngage&rsquo;s <code>userId</code> before sending the data via the <a href="https://docs.webengage.com/docs/rest-api-tracking-users#users" ><code>users</code></a> API.</p>
<p>A sample <code>identify</code> call is shown below:</p>
<div class="rs-code">
  <div class="rs-code__head">javascript<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-javascript" data-lang="javascript">rudderanalytics.identify(&#34;1hKOmRA4GRlm&#34;, {
  email: &#34;alex@example.com&#34;,
  phone: &#34;+1-202-555-0146&#34;,
});</code></pre></div>
</div>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="traits-mapping">Traits mapping</h3><p>RudderStack maps the following <code>identify</code> traits to the corresponding WebEngage attributes:</p>
<table>
  <thead>
      <tr>
          <th>RudderStack trait</th>
          <th>WebEngage attribute</th>
          <th>Presence</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>userId</code></td>
          <td><code>userId</code></td>
          <td>Required if <code>anonymousId</code> is not present.</td>
          <td><code>userId</code> cannot exceed 100 characters.</td>
      </tr>
      <tr>
          <td><code>anonymousId</code></td>
          <td><code>anonymousId</code></td>
          <td>Required if <code>userId</code> is not present.</td>
          <td><code>anonymousId</code> cannot exceed 100 characters.</td>
      </tr>
      <tr>
          <td><code>firstName</code></td>
          <td><code>firstName</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s first name.</td>
      </tr>
      <tr>
          <td><code>lastName</code></td>
          <td><code>lastName</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s last name.</td>
      </tr>
      <tr>
          <td><code>birthday</code>/<code>dateOfBirth</code>/<code>dateofbirth</code>/<code>dob</code>/<code>DOB</code></td>
          <td><code>birthDate</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s birth date in the ISO format: <code>yyyy-MM-dd</code>.</td>
      </tr>
      <tr>
          <td><code>gender</code></td>
          <td><code>gender</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s gender.</td>
      </tr>
      <tr>
          <td><code>email</code></td>
          <td><code>email</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s email.</td>
      </tr>
      <tr>
          <td><code>phone</code></td>
          <td><code>phone</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s phone.</td>
      </tr>
      <tr>
          <td><code>emailOptIn</code></td>
          <td><code>emailOptIn</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s email subscription preference.</td>
      </tr>
      <tr>
          <td><code>smsOptIn</code></td>
          <td><code>smsOptIn</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s SMS subscription preference.</td>
      </tr>
      <tr>
          <td><code>whatsappOptIn</code></td>
          <td><code>whatsappOptIn</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s WhatsApp subscription preference.</td>
      </tr>
      <tr>
          <td><code>company.name</code></td>
          <td><code>company</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s company.</td>
      </tr>
      <tr>
          <td><code>hashedEmail</code></td>
          <td><code>hashedEmail</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s hashed email for email services.</td>
      </tr>
      <tr>
          <td><code>hashedPhone</code></td>
          <td><code>hashedPhone</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s encrypted phone number for SMS services.</td>
      </tr>
      <tr>
          <td><code>postalcode</code> / <code>address.postalCode</code></td>
          <td><code>postalCode</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s postal code.</td>
      </tr>
      <tr>
          <td><code>region</code> / <code>address.region</code></td>
          <td><code>region</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s region.</td>
      </tr>
      <tr>
          <td><code>locality</code> / <code>address.locality</code></td>
          <td><code>locality</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s locality.</td>
      </tr>
      <tr>
          <td><code>city</code> / <code>address.city</code></td>
          <td><code>city</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s city.</td>
      </tr>
      <tr>
          <td><code>country</code> / <code>address.country</code></td>
          <td><code>country</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s country.</td>
      </tr>
      <tr>
          <td><code>attributes</code></td>
          <td><code>attributes</code></td>
          <td>Optional</td>
          <td>The user&rsquo;s custom attributes as key-value pairs.</td>
      </tr>
  </tbody>
</table>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="identify-traits-considerations">Identify traits considerations</h3><p>Note the following when sending <code>identify</code> traits to WebEngage:</p>
<ul>
<li>Either <code>userId</code> or <code>anonymousId</code> must be present in the <code>identify</code> call.</li>
<li>If both <code>userId</code> and <code>anonymousId</code> are present in the <code>identify</code> call, RudderStack ignores <code>anonymousId</code>.</li>
<li>WebEngage prioritizes <code>hashedEmail</code> over <code>email</code>. Hence, once you set <code>hashedEmail</code>, it can then be updated only through a new <code>hashedEmail</code>.</li>
<li>WebEngage prioritizes <code>hashedPhone</code> over <code>phone</code>. Hence, once you set <code>hashedPhone</code>, it can then be updated only through a new <code>hashedPhone</code>.</li>
</ul>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="track">Track</h2><p>The <a href="https://www.rudderstack.com/docs/event-spec/standard-events/track/" ><code>track</code></a> method lets you capture user events along with the properties associated with them.</p>
<p>RudderStack uses the <code>track</code> call to send the custom events to WebEngage via the <a href="https://docs.webengage.com/docs/rest-api-tracking-events#events" ><code>events</code></a> API.</p>
<p>A sample <code>track</code> call is shown below:</p>
<div class="rs-code">
  <div class="rs-code__head">javascript<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-javascript" data-lang="javascript">rudderanalytics.track(&#34;Order Completed&#34;, {
  timestamp: &#34;2022-05-05T14:58:10.000Z&#34;,
  currency: &#34;USD&#34;,
  checkout_id: &#34;X23441&#34;,
  order_id: &#34;ORD00123&#34;
});</code></pre></div>
</div>

<blockquote class="warning">
  <div class="tip-quote">
    
    <div class="tip-text">Make sure you call <code>identify</code> before <code>track</code> for RudderStack to include the <code>userId</code> in the <code>track</code> events. Otherwise, RudderStack will send the <code>track</code> calls to WebEngage with an <code>anonymousId</code>.</div>
  </div>
</blockquote>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="property-mapping">Property mapping</h3><p>RudderStack maps the following event properties to the corresponding WebEngage attributes:</p>
<table>
  <thead>
      <tr>
          <th>RudderStack trait</th>
          <th>WebEngage attribute</th>
          <th>Presence</th>
          <th>Notes</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>userId</code></td>
          <td><code>userId</code></td>
          <td>Required if <code>anonymousId</code> is not present.</td>
          <td><code>userId</code> cannot exceed 100 characters.</td>
      </tr>
      <tr>
          <td><code>anonymousId</code></td>
          <td><code>anonymousId</code></td>
          <td>Required if <code>userId</code> is not present.</td>
          <td><code>anonymousId</code> cannot exceed 100 characters.</td>
      </tr>
      <tr>
          <td><code>eventName</code></td>
          <td><code>event</code></td>
          <td>Required</td>
          <td>The event name.</td>
      </tr>
      <tr>
          <td><code>timestamp</code>/<code>originalTimestamp</code></td>
          <td><code>eventTime</code></td>
          <td>Optional</td>
          <td>The date and time of the event in ISO format: <code>yyyy-MM-ddTHH:mm:ss±hhmm</code>.</td>
      </tr>
      <tr>
          <td><code>properties</code></td>
          <td><code>eventData</code></td>
          <td>Optional</td>
          <td>The custom event attributes as key-value pairs.</td>
      </tr>
  </tbody>
</table>
<!-- end-chunk -->
<!-- begin-chunk -->
<h3 id="setting-custom-attributes">Setting custom attributes</h3><p>WebEngage lets you send custom attributes as key-value pairs in the <code>eventData</code> parameter as described in the <a href="#property-mapping" >above section</a>. However, there are a few things you should keep in mind:</p>
<ul>
<li>WebEngage ignores any custom attributes starting with <code>we_</code> as these are reserved for internal use.</li>
<li>User attribute names must be less than 50 characters, while the <code>string</code> attribute values cannot exceed 1000 characters. WebEngage automatically truncates any additional characters.</li>
<li>You can create a maximum of 25 custom user attributes of each data type.</li>
<li>If the attribute value is a JSON object, it can only be used to personalize your campaigns. These attributes cannot be used to create user segments.</li>
<li>Once defined, the data type of a custom user attribute cannot be changed again.</li>
</ul>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="page">Page</h2><p>The <a href="https://www.rudderstack.com/docs/event-spec/standard-events/page/" ><code>page</code></a> call lets you record your website&rsquo;s page views with any additional relevant information about the viewed page.</p>
<p>RudderStack internally transforms the <code>page</code> call into a <code>track</code> call before sending it as a custom event to WebEngage. It sends the event/category name by transforming it in the <code>Viewed ${category} ${name} page</code> format.</p>
<p>For example, consider the following <code>page</code> call:</p>
<div class="rs-code">
  <div class="rs-code__head">javascript<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-javascript" data-lang="javascript">rudderanalytics.page(&#34;Home&#34;, &#34;Clothes&#34;, {
  path: &#34;/best-seller/1&#34;,
  referrer: &#34;https://www.google.com/search?q=estore+bestseller&#34;,
  search: &#34;estore bestseller&#34;,
  title: &#34;The best sellers offered by EStore&#34;,
  url: &#34;https://www.estore.com/best-seller/1&#34;
});</code></pre></div>
</div>
<p>RudderStack transforms the above event into a <code>track</code> call named <code>Viewed Home Clothes page</code> and sends it to WebEngage as a custom event.</p>

<html lang="en">
<blockquote class="info">
  <div class="tip-quote">
    
    <div class="tip-text">RudderStack sends the <code>page</code> event properties to WebEngage, similar to the <code>track</code> event properties.</div>
  </div>
</blockquote>

</html>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="screen">Screen</h2><p>The <a href="https://www.rudderstack.com/docs/event-spec/standard-events/screen/" ><code>screen</code></a> method lets you record whenever your user views their mobile screen with any additional relevant information about the screen. It is the mobile equivalent of a <a href="#page" ></a> call.</p>
<p>RudderStack internally transforms the <code>screen</code> call into a <code>track</code> call before sending it as a custom event to WebEngage. It sends the event/category name by transforming it in the <code>Viewed ${category} ${name} screen</code> format.</p>
<p>For example, consider the following <code>screen</code> call:</p>
<div class="rs-code">
  <div class="rs-code__head">kotlin<button class="rs-code__copy" type="button">
      
      Copy
    </button>
  </div>
  <div class="highlight"><pre class="chroma"><code class="language-kotlin" data-lang="kotlin">rudderClient.screen(
    &#34;Games&#34;,
    &#34;home&#34;,
    RudderProperty().putValue(&#34;foo&#34;, &#34;bar&#34;),
    null
)</code></pre></div>
</div>
<p>RudderStack transforms the above event into a <code>track</code> call named <code>Viewed Games home screen</code> and sends it to WebEngage as a custom event.</p>

<html lang="en">
<blockquote class="info">
  <div class="tip-quote">
    
    <div class="tip-text">RudderStack sends the <code>screen</code> event properties to WebEngage, similar to the <code>track</code> event properties.</div>
  </div>
</blockquote>

</html>
<!-- end-chunk -->
<!-- begin-chunk -->
<h2 id="faq">FAQ</h2><!-- end-chunk -->
<!-- begin-chunk -->
<h4 id="where-can-i-find-the-webengage-license-code-and-api-key">Where can I find the WebEngage License Code and API key?</h4><p>To get your WebEngage License Code and API key, follow these steps:</p>
<ol>
<li>Log into your <a href="https://dashboard.webengage.com/" >WebEngage dashboard</a>.</li>
<li>Go to <strong>Data Platform</strong> &gt; <strong>Integrations</strong> &gt; <strong>REST API</strong>.</li>
<li>You will find the WebEngage <strong>License Code</strong> and <strong>API Key</strong> listed under <strong>Project Credentials</strong>:</li>
</ol>

<figure class="image--main "  >
    <a 
         href="/docs/images/event-stream-destinations/webengage-license-api-key.webp"
        
        >
        <img src="/docs/images/event-stream-destinations/webengage-license-api-key.webp" 
         alt="WebEngage license code and API key"  
         
         
        decoding="async" loading="lazy" class="img-shortcode"/>
    </a>
    
</figure>


