How to read this page
- Variable is what goes in the text, between double braces. You can type it or pick it in Variables, the menu above every message box (More variables in an integration step’s fields). Contact fields are written
{{contact.first_name}}, as Variables inserts them. Texts that use the older{{lead.first_name}}or the short form{{first_name}}keep working the same way. - In the Variables menu is the name that list shows. Names in a group read “group: name”, for example Contact’s company: Industry. Type it means the list doesn’t offer it, but it works when you type it.
- When it’s empty is what the contact gets when there is no value. Waits means the message never goes out with a hole: the contact waits on that step with Paused: this step needs data the contact doesn’t have until you add the value, give the variable a default, or click Send anyway. See Filters to give any variable a default.
Contact
The person the campaign writes to. Every campaign and step can use these. The Variables menu calls them Contact fields (for example Contact first name). Where the values come from: your import, contacts added by hand, the API or a form. When Kerux reads the contact’s LinkedIn profile, it also fills an empty first name, last name, headline, job title, company and location, without changing what the contact already has. Emails and phones can also come from enrichment.
First name, last name, company, job title, headline, location, city and country have a default, and you can change each one in Integrations > Variables, under When a contact field is empty: type another default, leave the box empty to write nothing, or tick Wait for the data so contacts without it wait. Picking Contact first name inserts it with its default already written:
{{contact.first_name | default: "there"}}.
You (the sender)
Where the values come from: the name of the connected LinkedIn account. They are filled in steps that write to the contact (invitations, messages, InMails, emails, WhatsApp). Steps that don’t send from a LinkedIn account, like Notify the team, Notify on Slack or a webhook, don’t have them: write your name there instead.
Company
The contact’s company, as saved in Contacts > Companies (Kerux links each contact to a company by its name). Where the values come from: the company’s page in Contacts > Companies (you can edit it), enrichment and the API. None of them has a default: an empty company field always waits, unless you give it one in the text.Campaign
Meeting
Only in campaigns that start from Meeting booked, Meeting cancelled, Meeting starts soon or Call summary ready, and in the Always-on boxes about meetings (for example When a meeting is booked). Times are in your workspace’s time zone. See Meetings booked by contacts. Where the values come from: the meeting in your connected calendar or booking tool.Call
Only in campaigns that start from Call recorded or Call summary ready. Times are in your workspace’s time zone. See Automations driven by calls. Where the values come from: the recorded call (Google Meet, Zoom, another tool, an upload or a pasted transcript).Trigger
What the trigger that started the campaign hands over. Each one only exists in campaigns that start from that trigger.
In the builder’s Canvas view, Variables lists the trigger’s variables once the campaign has that trigger. In the Timeline view, type them. See Kerux events, LinkedIn invitations, Reactions on LinkedIn messages and Email opens and clicks.
Personal links
Links made for each contact, so Kerux knows who clicked or answered.Workspace variables
Fixed values every campaign of the workspace can use, like your calendar link.Your custom fields
Extra contact fields you create, like “Pain point” or “Deal size”. Each contact can have its own value.
Where the values come from: the contact page (under Custom fields), imports, the API, the answers and quiz score of a Kerux form (see Surveys and quizzes) and scanned business cards (Website, see Scan business cards). See How do I get a variable for something that isn’t listed?
Data from other steps and other apps
Values a step hands to the steps after it. They are filled when the contact passes that step, so the preview says Filled in when this contact gets here, from an earlier step until then. Empty ones wait. In these variables,research, sendspark or my_step stand for the step’s name: its Step key, under Step key and all settings (JSON) in the step’s panel. Picking the value in Variables writes the right name for you.
Get the exact name of a field the other app sends: on the Wait for webhook (or Call & wait) step, click Listen for test event and send a test from the other app. Kerux shows the data it received: click a field to copy its variable. The fields then also show in Variables as Data from the step. See Webhook steps, Research with AI online, Team and AI steps and Sendspark.
Date and time
Keys of your connections
{{secrets.*}} holds the keys of a connection in Integrations > Connections. It only works inside Webhook / HTTP requests that use that connection. Kerux never writes it in a message, note, task or anything a person reads: there it is flagged with A variable is written incorrectly. and left out.
Filters
A filter changes a value. Write it after the variable, with a|:
{{company.industry | default: "your industry"}}writes “your industry” when it’s empty, so the message goes out instead of waiting. The Handle missing data section in the step’s panel writes this for you.{{meeting.link | optional}}writes nothing when it’s empty, and the message still goes out. An empty default (default: "") doesn’t do this: useoptional.{{company.website | or: "contact.linkedin_url"}}uses another variable when this one is empty.{{contact.first_name | capitalize}}writes “Sam” for “sAM”.upperandlowerwrite it all in capitals or small letters.{{contact.title | first_word}}keeps only the first word.trimremoves spaces around the value.{{company.description | truncate: 80}}keeps the first 80 characters.{{contact.company | replace: "Inc.", ""}}replaces some text with other text.{{meeting.start_utc | date_format: "DD/MM/YYYY"}}writes a date your way (YYYYyear,MMmonth,DDday,HHhour,mmminutes).date_add: 3adds 3 days first.
urlencode (a value inside a link), math (for example math: "+", 1), split, join, length and json_path.
You can chain filters: {{contact.first_name | capitalize | default: "there"}}. A filter’s default always wins over the workspace defaults in Integrations > Variables.
How do I get a variable for something that isn’t listed?
Pick the way that fits where the data is.A new field on every contact (custom field)
1
Create the field
Above any message, open Variables and click Create variable. Type its name (for example “Pain point”) and confirm. Kerux creates the field and puts
{{contact.custom.pain_point}} in your text. You can also create it in Contacts > Custom fields: type the Field name and click Create field.2
Fill it in for your contacts
Open a contact, type the value under Custom fields and click Save. To fill many contacts at once, import them or use the API (below).
From a column of your CSV
- Click Contacts, then Import, and upload your file.
- At the column, open Save as and pick one of Your custom fields, or New custom field: … to create one from the column’s name.
- Finish the import. Each contact gets its value, and the field shows in Variables under Contact custom fields.
Through the API
Send the values in the contact’scustom data when you create or update contacts: POST /v1/leads, POST /v1/leads/bulk or PATCH /v1/leads/{id} (a PATCH only changes the fields you send). Each value can be up to 2,000 characters. Create the field first in Contacts > Custom fields with the same name, so it shows in Variables. See API.
The same value for everyone (workspace variable)
- Go to Integrations > Variables and click Add variable.
- Type a Name (letters, numbers and
_, starting with a letter, for examplecalendar_link) and its Value. - Click Save. Every campaign can now use
{{workspace.vars.calendar_link}}, and Variables lists it.
From another app
Add a Webhook / HTTP, Call & wait, Wait for webhook or Poll until step before the message. The app’s answer becomes variables for the next steps (see Data from other steps and other apps). Use Listen for test event to see the fields and copy their variables. See Webhook steps.From the web or with AI
Research with AI online looks the contact and their company up and gives you a personalization hook, summaries and recent news. Ask AI with Extract values pulls the values you name out of the contact’s data. Transform data can turn a value into another (a date, a number, part of a text) and save it in a contact field or a custom field. See Research with AI online and Team and AI steps.Common problems
The message shows the variable's name instead of the value
The message shows the variable's name instead of the value
Use double braces:
{{contact.first_name}}. Single braces like {Hi|Hello} are Spintax: Kerux picks one of the options.Every contact waits on the step
Every contact waits on the step
The variable is probably misspelled (for example
{{contact.frist_name}}), so it’s empty for everyone. Pick it in Variables instead of typing it. The Preflight check lists the empty variables before you launch.Kerux says a variable is written incorrectly
Kerux says a variable is written incorrectly
The group before the dot doesn’t exist (like
{{person.first_name}}), a filter is misspelled, or the text uses {{secrets.*}}, which only works in webhook requests. Use the names on this page.A meeting or trigger variable doesn't show in Variables
A meeting or trigger variable doesn't show in Variables
They only show in the Canvas view, and only when the campaign has that trigger. In the Timeline view, type them as written on this page.