Sync Phone Numbers via Automation + Rovo Agent
This guide shows how to automatically convert free-text phone numbers into the structured format that the ACF Validated Phone field requires. It uses a Rovo Agent for parsing and a Jira Automation rule to write the result. No coding required, setup takes about 15 minutes.
Content
Problem
Phone numbers arrive in Jira as free-text, either through JSM portal forms, CSV imports, or plain text custom fields. The ACF Validated Phone field expects a structured JSON format with an internationally formatted number and a country code. Manually reformatting every phone number is not practical at scale.
Typical inputs that need to be handled:
0171 1234567(local format, no country code)+49 (0)30 / 123 456(mixed formatting)00 44 20 7946 0958(international with 00 prefix)0171-9876543 (mobile)(with label hint)
The ACF Validated Phone field expects:
{"numbers":[{"number":"+49 171 1234567","country":"DE"}]}Solution overview
Use a Rovo Agent to parse the free-text phone number into the correct ACF format, then write the result into the ACF field via a Jira Automation rule.
The flow:
User enters a phone number in a plain text field (e.g. "Phone (Jira)")
Jira Automation triggers on field change
The automation sends the text value to the Rovo Phone Agent
The agent returns the structured JSON
The automation writes the JSON into the ACF Validated Phone field
Step 1: Create the Rovo Agent
Go to Rovo > Agents > Create agent and configure it with the following system prompt:
Adjust the default country in the prompt if your users primarily enter numbers from a different region.
Step 2: Test the agent
Before setting up automation, test the agent manually in the Rovo chat. Try these inputs and verify the output:
Input | Expected output |
|---|---|
|
|
|
|
|
|
|
|
You may use the recently introduced “Evaluation“ function. Use this CSV to test it
Step 3: Create the Jira Automation rule
Rovo was not able to create the automation rule reliably via prompt. Create it manually:
Trigger
When: Field value changed
Field: Phone (Jira) (your plain text source field)
Condition
If: Phone (Jira) is not empty
Action 1: Send Rovo Agent request
Action type: Send request to Rovo Agent
Agent: (select the phone formatting agent you created in Step 1)
Prompt:
{{issue.Phone (Jira)}}(use the smart value for your source field)
Action 2: Edit issue
The ACF Validated Phone field is not available in the standard field dropdown. You need to use Additional fields (raw JSON).
Action type: Edit issue
Additional fields:
{
"fields": {
"customfield_XXXXX": {{agentResponse}}
}
}
Replace customfield_XXXXX with the actual custom field ID of your ACF Validated Phone field. You can find the field ID in Jira Settings > Issues > Custom fields, or by inspecting the field in the REST API.
The {{agentResponse}} smart value contains the raw JSON output from the Rovo agent, which is already in the correct ACF format.
Rule name
Sync Phone (Jira) → Phone (ACF)
Step 4: Find your custom field ID
If you do not know the custom field ID:
Go to Jira Settings > Issues > Custom fields
Search for your ACF Validated Phone field
Click on it and check the URL, it will contain something like
customFieldId=10673The field ID for the automation JSON is
customfield_10673
Troubleshooting
Agent returns markdown or explanations instead of pure JSON:
Adjust the system prompt. Make sure the first line clearly states "Only valid JSON output. No explanations, no conversation, no markdown formatting."
Automation fails with "field not found":
Double-check the custom field ID. The field name (e.g. "Phone (ACF)") does not work in the Additional fields JSON, you must use the customfield_XXXXX format.
Phone number is not parsed correctly:
Test the input directly in the Rovo Agent chat. If the agent output is wrong, adjust the parsing rules or default country in the system prompt.
Automation does not trigger:
Verify the trigger field name matches exactly. If the source field is a custom field, it may also require the customfield_XXXXX format in the trigger configuration.