Rename only if needed

No worries.

Just keep in mind that most software is in some way idiosyncratic, therefore macros tend to have characteristics very specific to the apps they're working with (as well as more general attributes applicable to any app).

That's simple.

I've already showed you mostly how to do it.

Here's the basic methodology of doing this with Keyboard Maestro:

Rename Photo for Capture One Pro.kmmacros (7.0 KB)

I managed to figure out how to do a batch rename with AppleScript. It's a trifle on the kludgy side, but it works.

A) Get the file paths from COP.
B) Rename the files in the Finder.
E) COP will refresh its file list.

The following AppleScript will do this with 1 selected file rather than batch rename all the capture files.

------------------------------------------------------------
# Auth: Christopher Stone
# dCre: 2015/06/01 12:04
# dMod: 2015/06/01 12:04 
# Appl: Capture One, Finder
# Task: Rename Selected File in Session
# Osax: Satimage.osax { http://tinyurl.com/dc3soh } •••• REQUIRED! ••••
# Tags: @Applescript, @Script, @Capture_One, @Finder, @Satimage.osax, @SIO
------------------------------------------------------------
# THE SATIMAGE.OSAX MUST BE INSTALLED FOR THIS TO WORK!
------------------------------------------------------------

tell application "Capture One"
  set selectedVarient1 to (get parent image of (get item 1 of (get selected variants)))
  set photoFilePosix to (id of selectedVarient1)
  set photoFileName to name of selectedVarient1
end tell

if fndBool("\\d{3}\\.[[:alpha:]]{3}$", photoFileName, false, false) of me then
  set photoFileAlias to alias POSIX file photoFilePosix
  set newFileName to cng("\\d{3}(\\.[[:alpha:]]{3})$", "A\\1", photoFileName) of me
  tell application "Finder" to set name of photoFileAlias to newFileName
else
  beep
end if

------------------------------------------------------------
--» HANDLERS
------------------------------------------------------------
on cng(_find, _replace, _data)
  change _find into _replace in _data with regexp without case sensitive
end cng
------------------------------------------------------------
on fndBool(_find, _data, _all, strRslt)
  try
    find text _find in _data all occurrences _all string result strRslt with regexp without case sensitive
    return true
  on error
    return false
  end try
end fndBool
------------------------------------------------------------

NOTE: This script is a demonstration of what is possible and is NOT a turnkey solution to your problem. A production script would need at least some error-checking routines.

Provided your renaming convention is uniform I would rather batch rename all the files at once with a script similar to this one and then move on to the other steps of your macro.

BTW: Figuring this stuff out was a pain in the behind and would have been nearly impossible had I not downloaded the Capture One Pro demo. As such it is a classic example of why as much detail as possible should to be included in a help request.

-Chris